MCP Milvus
A Model Context Protocol (MCP) server for Milvus vector database, providing comprehensive vector database operations.
๐ Features
- Complete Milvus Operations: Full lifecycle management of databases, collections, and indexes
- High-Performance Vector Search: Support for similarity search, hybrid search, and more retrieval methods
- Intelligent Session Management: Efficient connection pooling based on Ristretto cache
- Engineering Architecture: Modular design for easy extension and maintenance
- Middleware Support: Built-in logging, authentication, and other middleware
- Docker Support: Complete containerized deployment solution
- Type Safety: Go's strong type system ensures API safety
๐ Supported Tools
Database Management
milvus_create_database
- Create databasemilvus_list_databases
- List all databasesmilvus_use_database
- Switch database
Collection Management
milvus_create_collection
- Create collectionmilvus_drop_collection
- Drop collectionmilvus_list_collections
- List collectionsmilvus_get_collection_info
- Get collection informationmilvus_rename_collection
- Rename collectionmilvus_load_collection
- Load collection into memorymilvus_release_collection
- Release collection from memory
Index Management
milvus_create_index
- Create indexmilvus_drop_index
- Drop index
Data Operations
milvus_insert_data
- Insert datamilvus_upsert
- Insert or update datamilvus_delete_entities
- Delete entitiesmilvus_query
- Conditional querymilvus_vector_search
- Vector similarity search
Connection Management
milvus_connector
- Establish Milvus connection
๐ ๏ธ Installation and Usage
Prerequisites
- Go 1.24 or higher
- Running Milvus instance
Install from Source
git clone https://github.com/tailabs/mcp-milvus.git
cd mcp-milvus
make deps
make build
Or using Go directly:
git clone https://github.com/tailabs/mcp-milvus.git
cd mcp-milvus
go mod download
go build -o mcp-milvus ./cmd/mcp-milvus
Docker Deployment
# Build image
docker build -t mcp-milvus .
# Run container
docker run -p 8080:8080 mcp-milvus
Usage
- Start the server
# Using Makefile
make run
# Or directly
./build/mcp-milvus
- Connect to MilvusUse the
milvus_connector
tool to establish connection:
{
"address": "localhost:19530",
"token": "username:password",
"db_name": "default"
}
- Perform operationsAfter connection is established, you can use other tools for database operations.
๐๏ธ Project Structure
mcp-milvus/
โโโ cmd/mcp-milvus/ # Main application entry
โโโ internal/
โ โโโ middleware/ # Middleware (logging, auth, etc.)
โ โโโ registry/ # Tool registry
โ โโโ schema/ # Schema builder
โ โโโ session/ # Session management
โ โโโ tools/ # Milvus tool implementations
โโโ Dockerfile # Docker build file
โโโ go.mod # Go module definition
โโโ README.md # Project documentation
๐ง Configuration
Environment Variables
LOG_LEVEL
: Log level (debug/info/warn/error), default: infoPORT
: Service port, default: 8080
Connection Configuration
Supports the following connection parameters:
address
: Milvus service addresstoken
: Authentication token (format: username:password)db_name
: Database name
๐ค Contributing
We welcome all forms of contributions! Please see CONTRIBUTING.md for details.
Development Workflow
- Fork this repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Set up development environment (
make deps && make tools
) - Make your changes and test (
make test && make lint
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Available Make Commands
Run make help
to see all available commands:
make help # Show all available commands
make build # Build binary
make test # Run tests
make lint # Run linter
make fmt # Format code
make run # Build and run
make dev # Run with live reload
make docker # Build Docker image
make build-all # Build for all platforms
make release # Prepare release
make clean # Clean build artifacts
๐ License
This project is licensed under the MIT License - see the LICENSE file for details.
๐ Related Links
๐ Support
If you encounter any issues or have questions:
- Check Issues to see if similar issues exist
- Create a new Issue describing your problem
- Join discussions in Discussions
๐ Acknowledgments
โญ If this project helps you, please give it a Star!