MCP Router
MCP Router is a service discovery and proxy for MCP (Model Control Protocol) services. It allows you to register, discover, and execute tools on remote MCP servers.
Features
- Service Discovery: Register and search for MCP services using vector-based similarity search
- Tool Execution Proxy: Execute tools on remote MCP servers through the router
- MCP Compliance: Fully compliant with the MCP protocol specification
Architecture
The MCP Router consists of two core modules:
- MCP Data Plane: The frontend that interacts with MCP clients, providing service discovery, registration, and tool execution proxying
- MCP Discovery Service: The backend that uses Alibaba Cloud's vector database and embedding models for intelligent search and management of registered MCP services
Prerequisites
- Python 3.11 or higher
- Access to Alibaba Cloud DashScope and DashVector services
- API keys for DashScope and DashVector
Installation
-
Clone the repository:
git clone <repository-url> cd mcp-router -
Install dependencies using uv:
uv add pydantic httpx dashscope dashvector python-dotenv -
Set up environment variables in
.env:DASHSCOPE_API_KEY=your_dashscope_api_key DASHVECTOR_API_KEY=your_dashvector_api_key DASHVECTOR_ENDPOINT=your_dashvector_endpoint COLLECTION_NAME=mcp_services_collection EMBEDDING_DIMENSION=1024
Usage
Run the MCP Router server:
uv run python mcp_router.py
Tools
The MCP Router provides three tools:
- search_mcp_server: Search for registered MCP servers based on a query
- add_mcp_server: Register a new MCP server with the discovery service
- exec_mcp_tool: Execute a tool on a target MCP server
Development
Code Structure
mcp_router.py: Main MCP server implementation (Data Plane)discovery_service.py: Discovery service implementation (Discovery Service)config.py: Configuration management
