mcp-store-server

waynemarler/mcp-store-server

3.2

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.

Tools
4
Resources
0
Prompts
0

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

Deploy with Vercel

2. Set Up Vercel KV (Optional)

For persistent storage across deployments:

  1. Go to your Vercel dashboard
  2. Navigate to Storage → KV
  3. Create a new KV database
  4. 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 capability
  • category (optional): Filter by category
  • verified (optional): Filter by verification status

route_request

Route a request to the appropriate downstream MCP server.

Arguments:

  • capability: Required capability
  • method: Tool/method name to call
  • params: Parameters to pass to the downstream server
  • preferredServer (optional): Specific server ID to use

register_server

Register a new MCP server in the registry.

Arguments:

  • name: Server name
  • description: Server description
  • category: Server category
  • capabilities: Array of capabilities
  • endpoint: Server endpoint URL
  • apiKey (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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Test locally
  5. Submit a pull request

License

MIT License - see LICENSE file for details