模型上下文协议平台

MCP平台是一个支持多种传输方式的综合平台,为AI编码助手提供统一接口,适用于开发效率提升和多语言服务管理。

  • by Consiliency
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 consiliency/mcp-platform

使用说明

MCP平台

一个用于运行具有通用传输支持的模型上下文协议(MCP)服务的综合平台。该平台通过支持stdio、HTTP、WebSocket和SSE传输的强大基础设施,为多个AI编码助手提供了一个统一的接口。

特性

核心平台

  • 🌟 统一MCP网关:所有MCP服务器的单一入口点,具有自动工具命名空间
  • 通用运输支持:stdio、HTTP、WebSocket和SSE传输
  • 服务发现:浏览和搜索可用的MCP服务
  • 服务管理:安装、卸载和管理服务生命周期
  • 流程管理:具有自动重启和资源监控功能的高级流程生命周期
  • API网关:所有传输类型的统一API,具有自动路由

安全和身份验证

  • 认证:API密钥、JWT和OAuth2支持
  • 速率限制:基于Redis的速率限制,具有多种策略
  • 网络安全:服务隔离、CORS管理和TLS支持
  • 安全中间件:Helmet.js集成,XSS保护

监测和可观察性

  • 健康监测:实时服务健康检查和状态跟踪
  • 指标收集:Prometheus与定制出口商的集成
  • 结构化日志记录:基于Winston的轮换日志记录
  • 错误跟踪:哨兵与警报路由集成
  • 交通仪表板:交通连接的实时可视化

开发者体验

  • 多语言SDK:JavaScript/TypeScript、Python和Go
  • CLI工具:具有传输命令的综合命令行界面
  • IDE扩展:VS Code、IntelliJ和Vim/Neovim插件
  • 事件系统:订阅平台和服务活动
  • 热重新加载:自动重启服务的开发模式

安装

平台安装

# Linux/macOS/WSL
curl -fsSL https://raw.githubusercontent.com/Consiliency/mcp-platform/main/mcp-local-setup/install.sh | bash

# Windows PowerShell
iwr -useb https://raw.githubusercontent.com/Consiliency/mcp-platform/main/mcp-local-setup/install.ps1 | iex

SDK安装(本地开发)

SDK目前可用于本地开发。包管理器分发计划在未来的版本中发布。

JavaScript/TypeScript

# Clone the repository
git clone https://github.com/Consiliency/mcp-platform.git

# In your project's package.json:
"dependencies": {
  "@mcp/sdk": "file:../path/to/mcp-platform/sdk/js"
}

python

# Add to your Python path
import sys
sys.path.append('/path/to/mcp-platform/sdk/python')

去

// In your go.mod file:
replace github.com/modelcontextprotocol/go-sdk => ../path/to/mcp-platform/sdk/go

快速开始

平台命令

# Start all services
mcp start

# Check service status
mcp status

# Start unified gateway
mcp gateway start

# Configure AI assistant (e.g., Claude Code)
claude mcp add unified-gateway --transport sse http://localhost:8090/mcp \
  --header "X-API-Key: your-gateway-api-key"

# Generate client configuration
mcp config generate --client claude-code

# View transport connections
mcp transport status

# Install a new service
mcp install postgres-mcp

# Start service with specific transport
mcp server start filesystem --transport http

# View real-time metrics
mcp transport metrics

# Access dashboards
open http://localhost:8080/dashboard
open http://localhost:8080/gateway.html

JavaScript示例

const MCPClient = require('@mcp/sdk');

async function main() {
  // Create client
  const client = new MCPClient({
    apiKey: 'your-api-key'
  });
  
  // Authenticate
  await client.connect('your-api-key');
  
  // List available services
  const services = await client.listServices({
    category: 'database'
  });
  
  // Install and connect to a service
  const db = await client.connectService('postgres-mcp');
  
  // Call service methods
  const result = await db.call('query', {
    sql: 'SELECT * FROM users'
  });
}

Python示例

import asyncio
from mcp_sdk import MCPClient

async def main():
    async with MCPClient({'api_key': 'your-api-key'}) as client:
        await client.connect('your-api-key')
        
        # List services
        services = await client.list_services({'category': 'database'})
        
        # Connect to service
        db = await client.connect_service('postgres-mcp')
        
        # Query database
        result = await db.query({'sql': 'SELECT * FROM users'})

asyncio.run(main())

Go示例

package main

import (
    "context"
    "log"
    mcp "github.com/modelcontextprotocol/go-sdk"
)

func main() {
    // Create client
    client := mcp.NewClient(mcp.Config{
        APIKey: "your-api-key",
    })
    
    ctx := context.Background()
    
    // Authenticate
    _, err := client.Connect(ctx, "your-api-key")
    if err != nil {
        log.Fatal(err)
    }
    
    // List services
    services, err := client.ListServices(ctx, map[string]interface{}{
        "category": "database",
    })
    
    // Connect to service
    db, err := client.ConnectService(ctx, "postgres-mcp")
    
    // Query database
    result, err := db.Call(ctx, "query", map[string]interface{}{
        "sql": "SELECT * FROM users",
    })
}

建筑

平台体系结构

MCP平台使用微服务架构,具有:

  1. 传输层:通用传输支持(stdio、HTTP、WebSocket、SSE)
  2. API网关:统一的API将请求路由到适当的传输
  3. 流程经理:具有资源监控的生命周期管理
  4. 服务注册中心:通过传输元数据和自动检测得到增强
  5. 监控堆栈:Prometheus、Grafana和自定义仪表板

SDK架构

SDK采用分层架构构建:

  1. 核心SDK:实现MCP协议的低级接口
  2. 语言SDK:每种语言的高级惯用API
  3. 服务代理:个人服务的类型安全包装
  4. 事件系统:实时通知和监控

与IDE和CLI集成

SDK旨在与以下内容无缝集成:

  • IDE扩展:VS Code、IntelliJ和其他编辑器
  • CLI插件:使用自定义命令扩展MCP CLI
  • CI/CD管道:自动化服务部署和测试
  • 监视工具:跟踪服务运行状况和绩效

运输支持

支持的交通工具

  • 标准:本地可执行文件的基于进程的通信
  • 超文本传输协议:带有可选SSE的RESTful API,用于服务器敏感事件
  • 双向通信:双向实时通信
  • 上海证券交易所:服务器发送了流式更新事件

运输选择

平台根据以下情况自动检测适当的运输:

  • 注册表中的服务配置
  • 环境变量
  • 服务命名模式
  • 明确的运输规范

现状和路线图

现在什么有效

  • ✅ 通用传输支持(stdio、HTTP、WebSocket、SSE)
  • ✅ 带有仪表板UI的服务器目录
  • ✅ 多包管理器支持
  • ✅ 本地SDK开发
  • ✅ 基本身份验证(JWT、API密钥)
  • ✅ 健康监测和指标
  • ✅ IDE扩展(VS代码、IntelliJ结构)

即将推出

  • 📦 将SDK发布到npm、PyPI和Go模块
  • 🔐 全面用户管理和RBAC
  • 🔄 备份和恢复功能
  • 📊 高级监控和分布式跟踪
  • 🏢 企业功能(多租户、SSO)

有关详细的功能状态,请参阅 功能.md.

发展

运行测试

# Run all tests
npm test

# Run transport-specific tests
npm test tests/unit/transports/

# Run integration tests
python3 tests/test_phase7_integration.py

建筑文件

npm run docs

贡献

看 贡献.md 关于贡献指南。

版本历史记录

  • v6.0:第7阶段-通用传输支持
  • v5.0:第6阶段-生产就绪,具有完全可观察性
  • v4.0:第5阶段-通过SDK和IDE扩展实现生态系统增长
  • v3.0:第4阶段-企业功能
  • v2.0:第3阶段-生产准备
  • v1.0:第2阶段-开发人员体验
  • v1.0-beta:第1阶段-核心功能

许可证

MIT许可证-有关详细信息,请参阅许可证文件