waynemarler/mcp-store-server
If you are the rightful owner of mcp-store-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
The MCP Store Server is a meta-layer MCP server designed to manage and route requests to multiple downstream MCP servers, providing discovery, routing, and registry services.
MCP Store Server
A meta-layer MCP (Model Context Protocol) server that provides discovery, routing, and registry services for downstream MCP servers. Deploy this to Vercel to create a centralized hub for managing multiple MCP services.
Features
- Server Discovery: Find MCP servers by capability, category, or other criteria
- Dynamic Routing: Route requests to appropriate downstream MCP servers
- Registry Management: Register and manage MCP server metadata
- Health Monitoring: Track server availability and performance
- Serverless: Deploy on Vercel with automatic scaling
Quick Start
1. Deploy to Vercel
2. Set Up Vercel KV (Optional)
For persistent storage across deployments:
- Go to your Vercel dashboard
- Navigate to Storage → KV
- Create a new KV database
- Add the KV environment variables to your deployment
3. Local Development
npm install
npm run dev
Server will be available at http://localhost:3000
API Endpoints
MCP Protocol Endpoint
POST /api/mcp
Main MCP endpoint supporting both JSON-RPC and direct API calls.
Registry Management
GET /api/registry - List all registered servers POST /api/registry - Register a new server DELETE /api/registry?id=server-id - Remove a server
Discovery
GET /api/discovery - Discover servers by criteria
?capability=weather- Find servers with weather capability?category=data- Find servers in data category?verified=true- Find only verified servers
Health Monitoring
GET /api/health/[serverId] - Get server health status POST /api/health/[serverId] - Perform health check
Usage Examples
Register a Weather MCP Server
curl -X POST http://localhost:3000/api/registry \\
-H "Content-Type: application/json" \\
-d '{
"name": "Weather Service",
"description": "Provides weather data and forecasts",
"category": "data",
"capabilities": ["weather", "forecast", "current-conditions"],
"endpoint": "https://weather-mcp.example.com/api/mcp",
"apiKey": "optional-api-key"
}'
Discover Weather Services
curl "http://localhost:3000/api/discovery?capability=weather"
Route a Request via MCP Protocol
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
const client = new Client({
name: "weather-client",
version: "1.0.0"
}, {
capabilities: {}
});
const transport = new SSEClientTransport(
new URL("http://localhost:3000/api/mcp")
);
await client.connect(transport);
// Discover available services
const result = await client.callTool({
name: "discover_services",
arguments: { capability: "weather" }
});
console.log(result);
MCP Tools Available
discover_services
Find available MCP services by capability or category.
Arguments:
capability(optional): Filter by capabilitycategory(optional): Filter by categoryverified(optional): Filter by verification status
route_request
Route a request to the appropriate downstream MCP server.
Arguments:
capability: Required capabilitymethod: Tool/method name to callparams: Parameters to pass to the downstream serverpreferredServer(optional): Specific server ID to use
register_server
Register a new MCP server in the registry.
Arguments:
name: Server namedescription: Server descriptioncategory: Server categorycapabilities: Array of capabilitiesendpoint: Server endpoint URLapiKey(optional): API key for authentication
list_all_servers
List all registered MCP servers.
Environment Variables
Create a .env.local file for local development:
# Optional: Vercel KV for persistent storage
KV_REST_API_URL=your-kv-url
KV_REST_API_TOKEN=your-kv-token
Architecture
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ MCP Client │───▶│ MCP Store │───▶│ Downstream MCP │
│ │ │ Server │ │ Server 1 │
└─────────────────┘ │ │ └─────────────────┘
│ - Discovery │ ┌─────────────────┐
│ - Routing │───▶│ Downstream MCP │
│ - Registry │ │ Server 2 │
│ - Health Mon. │ └─────────────────┘
└─────────────────┘ ┌─────────────────┐
│ Downstream MCP │
│ Server N │
└─────────────────┘
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally
- Submit a pull request
License
MIT License - see LICENSE file for details