发现优秀的 MCP 服务器
通过 MCP 服务器扩展您的代理能力,拥有 13,799 个能力。
GitHub MCP Server
GitHub MCP 服务器 (SSE)
Dgraph MCP Server
一个用于 Dgraph 图数据库的模型上下文协议 (MCP) 服务器实现,使用 [mcp-go](
mcp-server-motherduck MCP server
镜子 (jìng zi)
Remote MCP Server on Cloudflare
Custom MCP (Mission Control Panel) with ChatGPT AI Template
从头开始创建的模型上下文协议(MCP 服务器)
github-mcp
GitHub 的 MCP 服务器
StylePilot MCP Server
Byterover MCP Server
字节漫游者 MCP 服务器 (Zìjié mànyóuzhě MCP fúwùqì)
Redis MCP Server
Redis MCP 服务器 - 使用 Docker 的 Python 实现
mkinf SDK
mkinf SDK 用于与 mkinf hub MCP 服务器交互。
mcp-chat
用于测试和评估 MCP 服务器和代理的开源通用 MCP 客户端
typecast-api-mcp-server-sample
镜子 (jìng zi)
Simple MCP Server
好的,这是一个用极简代码演示如何构建一个 MCP (Mesh Configuration Protocol) 服务器的示例,使用 Python 和 gRPC: ```python # server.py import grpc from concurrent import futures import mcp_pb2 import mcp_pb2_grpc class McpService(mcp_pb2_grpc.AggregatedDiscoveryServiceServicer): def StreamAggregatedResources(self, request_iterator, context): for request in request_iterator: print(f"Received request: {request}") # 构造一个简单的响应 response = mcp_pb2.AggregatedDiscoveryResponse( version_info="v1", resources=[], type_url=request.type_url, nonce="nonce-123" ) yield response def serve(): server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) mcp_pb2_grpc.add_AggregatedDiscoveryServiceServicer_to_server(McpService(), server) server.add_insecure_port('[::]:50051') server.start() print("MCP Server started on port 50051") server.wait_for_termination() if __name__ == '__main__': serve() ``` **代码解释:** 1. **导入必要的库:** * `grpc`: gRPC 库。 * `concurrent.futures`: 用于创建线程池。 * `mcp_pb2` 和 `mcp_pb2_grpc`: 从 MCP 的 protobuf 定义生成的 Python 代码。 你需要先安装 `protobuf` 和 `grpcio-tools`,然后使用 `protoc` 命令生成这些文件。 例如: ```bash pip install protobuf grpcio-tools # 假设你的 mcp.proto 文件在当前目录 python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. mcp.proto ``` 确保你的 `mcp.proto` 文件定义了 MCP 的服务和消息。 一个简化的 `mcp.proto` 示例: ```protobuf // mcp.proto syntax = "proto3"; package envoy.service.discovery.v3; service AggregatedDiscoveryService { rpc StreamAggregatedResources(stream AggregatedDiscoveryRequest) returns (stream AggregatedDiscoveryResponse) {} } message AggregatedDiscoveryRequest { string version_info = 1; repeated string resource_names = 2; string type_url = 3; string response_nonce = 4; string error_detail = 5; } message AggregatedDiscoveryResponse { string version_info = 1; repeated google.protobuf.Any resources = 2; string type_url = 3; string nonce = 4; } import "google/protobuf/any.proto"; ``` 2. **`McpService` 类:** * 继承自 `mcp_pb2_grpc.AggregatedDiscoveryServiceServicer`,这是 gRPC 生成的服务基类。 * 实现了 `StreamAggregatedResources` 方法,这是 MCP 服务定义的核心方法。 它是一个双向流 (stream),服务器接收来自客户端的请求流,并返回响应流。 * 在 `StreamAggregatedResources` 中,我们简单地打印接收到的请求,并构造一个简单的 `AggregatedDiscoveryResponse` 作为响应。 这个响应包含一个版本信息、一个空的资源列表、请求的类型 URL 和一个 nonce。 3. **`serve` 函数:** * 创建一个 gRPC 服务器,使用线程池来处理请求。 * 将 `McpService` 注册到服务器。 * 添加一个不安全的端口 `[::]:50051` 用于监听连接。 在生产环境中,你应该使用安全的 TLS 连接。 * 启动服务器并打印一条消息。 * 调用 `server.wait_for_termination()` 使服务器保持运行状态,直到手动停止。 4. **`if __name__ == '__main__':` 块:** * 确保 `serve` 函数只在脚本直接运行时才被调用,而不是作为模块导入时。 **如何运行:** 1. **安装依赖:** ```bash pip install grpcio protobuf grpcio-tools ``` 2. **生成 gRPC 代码:** * 将上面的 `mcp.proto` 文件保存到你的项目目录中。 * 运行以下命令生成 `mcp_pb2.py` 和 `mcp_pb2_grpc.py`: ```bash python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. mcp.proto ``` 3. **运行服务器:** ```bash python server.py ``` **重要说明:** * **极简示例:** 这个示例非常简单,只用于演示 MCP 服务器的基本结构。 它没有实现任何实际的配置分发逻辑。 * **错误处理:** 代码中没有包含任何错误处理。 在生产环境中,你需要添加适当的错误处理机制。 * **安全性:** 这个示例使用不安全的连接。 在生产环境中,你应该使用 TLS 加密来保护通信。 * **资源管理:** 这个示例没有管理任何实际的资源。 你需要根据你的具体需求来实现资源的管理和分发。 * **Protobuf 定义:** `mcp.proto` 文件需要根据你的实际需求进行定义。 上面的示例提供了一个最小化的定义,你需要根据你的配置类型和数据结构来扩展它。 * **客户端:** 你需要一个 MCP 客户端来向服务器发送请求。 客户端的实现取决于你使用的编程语言和框架。 这个示例提供了一个起点,你可以根据你的具体需求来构建一个功能完善的 MCP 服务器。 记住要仔细阅读 MCP 规范,并根据你的应用场景进行适当的调整。 **中文翻译:** 好的,这是一个用极简代码演示如何构建一个 MCP (Mesh Configuration Protocol) 服务器的示例,使用 Python 和 gRPC: ```python # server.py import grpc from concurrent import futures import mcp_pb2 import mcp_pb2_grpc class McpService(mcp_pb2_grpc.AggregatedDiscoveryServiceServicer): def StreamAggregatedResources(self, request_iterator, context): for request in request_iterator: print(f"Received request: {request}") # 构造一个简单的响应 response = mcp_pb2.AggregatedDiscoveryResponse( version_info="v1", resources=[], type_url=request.type_url, nonce="nonce-123" ) yield response def serve(): server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) mcp_pb2_grpc.add_AggregatedDiscoveryServiceServicer_to_server(McpService(), server) server.add_insecure_port('[::]:50051') server.start() print("MCP Server started on port 50051") server.wait_for_termination() if __name__ == '__main__': serve() ``` **代码解释:** 1. **导入必要的库:** * `grpc`: gRPC 库。 * `concurrent.futures`: 用于创建线程池。 * `mcp_pb2` 和 `mcp_pb2_grpc`: 从 MCP 的 protobuf 定义生成的 Python 代码。 你需要先安装 `protobuf` 和 `grpcio-tools`,然后使用 `protoc` 命令生成这些文件。 例如: ```bash pip install protobuf grpcio-tools # 假设你的 mcp.proto 文件在当前目录 python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. mcp.proto ``` 确保你的 `mcp.proto` 文件定义了 MCP 的服务和消息。 一个简化的 `mcp.proto` 示例: ```protobuf // mcp.proto syntax = "proto3"; package envoy.service.discovery.v3; service AggregatedDiscoveryService { rpc StreamAggregatedResources(stream AggregatedDiscoveryRequest) returns (stream AggregatedDiscoveryResponse) {} } message AggregatedDiscoveryRequest { string version_info = 1; repeated string resource_names = 2; string type_url = 3; string response_nonce = 4; string error_detail = 5; } message AggregatedDiscoveryResponse { string version_info = 1; repeated google.protobuf.Any resources = 2; string type_url = 3; string nonce = 4; } import "google/protobuf/any.proto"; ``` 2. **`McpService` 类:** * 继承自 `mcp_pb2_grpc.AggregatedDiscoveryServiceServicer`,这是 gRPC 生成的服务基类。 * 实现了 `StreamAggregatedResources` 方法,这是 MCP 服务定义的核心方法。 它是一个双向流 (stream),服务器接收来自客户端的请求流,并返回响应流。 * 在 `StreamAggregatedResources` 中,我们简单地打印接收到的请求,并构造一个简单的 `AggregatedDiscoveryResponse` 作为响应。 这个响应包含一个版本信息、一个空的资源列表、请求的类型 URL 和一个 nonce。 3. **`serve` 函数:** * 创建一个 gRPC 服务器,使用线程池来处理请求。 * 将 `McpService` 注册到服务器。 * 添加一个不安全的端口 `[::]:50051` 用于监听连接。 在生产环境中,你应该使用安全的 TLS 连接。 * 启动服务器并打印一条消息。 * 调用 `server.wait_for_termination()` 使服务器保持运行状态,直到手动停止。 4. **`if __name__ == '__main__':` 块:** * 确保 `serve` 函数只在脚本直接运行时才被调用,而不是作为模块导入时。 **如何运行:** 1. **安装依赖:** ```bash pip install grpcio protobuf grpcio-tools ``` 2. **生成 gRPC 代码:** * 将上面的 `mcp.proto` 文件保存到你的项目目录中。 * 运行以下命令生成 `mcp_pb2.py` 和 `mcp_pb2_grpc.py`: ```bash python -m grpc_tools.protoc -I. --python_out=. --grpc_python_out=. mcp.proto ``` 3. **运行服务器:** ```bash python server.py ``` **重要说明:** * **极简示例:** 这个示例非常简单,只用于演示 MCP 服务器的基本结构。 它没有实现任何实际的配置分发逻辑。 * **错误处理:** 代码中没有包含任何错误处理。 在生产环境中,你需要添加适当的错误处理机制。 * **安全性:** 这个示例使用不安全的连接。 在生产环境中,你应该使用 TLS 加密来保护通信。 * **资源管理:** 这个示例没有管理任何实际的资源。 你需要根据你的具体需求来实现资源的管理和分发。 * **Protobuf 定义:** `mcp.proto` 文件需要根据你的实际需求进行定义。 上面的示例提供了一个最小化的定义,你需要根据你的配置类型和数据结构来扩展它。 * **客户端:** 你需要一个 MCP 客户端来向服务器发送请求。 客户端的实现取决于你使用的编程语言和框架。 这个示例提供了一个起点,你可以根据你的具体需求来构建一个功能完善的 MCP 服务器。 记住要仔细阅读 MCP 规范,并根据你的应用场景进行适当的调整。 **总结:** 这段代码提供了一个非常基础的 MCP 服务器框架。 你需要根据你的实际需求扩展 `McpService` 类,实现资源的管理、版本控制、错误处理和安全性。 同时,你需要定义合适的 `mcp.proto` 文件来描述你的配置数据结构。 最后,你需要一个 MCP 客户端来与服务器进行通信,请求和接收配置信息。
MCP Server Box
镜子 (jìng zi)
Claude Mcp Test
通过 claude-desktop 使用 github MCP 服务器创建的测试仓库。
UML-MCP: A Diagram Generation Server with MCP Interface
UML-MCP Server 是一个基于 MCP (模型上下文协议) 的 UML 图生成工具,它可以帮助用户通过自然语言描述或直接编写 PlantUML、Mermaid 和 Kroki 来生成各种类型的 UML 图。
dryai-mcp-server
MCP Server demo
这是一个使用 Python 编写的 MCP 服务器的演示,旨在与 vscode Copilot 在 Agent 模式下进行测试。
JIRA MCP Integration
一个模型-上下文-协议 (MCP) 服务器,用于允许 Claude 桌面创建 Jira 工单。
mcp-server-server
MCP 服务器的服务器 (MCP fúwùqì de fúwùqì)
MCP Servers
使用 Deno 构建类型安全的 Minecraft 服务器。
Hello MCP Server 👋
一个简单的“Hello World”服务器,实现了模型上下文协议 (MCP)。
MCP Server for MySQL based on NodeJS
镜子 (jìng zi)
splunk-mcp
MCP 服务器,用于与 Splunk 交互
Claude MCP for Marketing Professionals
面向营销专业人士的 Claude MCP 服务器一键安装程序
Shopify MCP Server
DevOps MCP Servers
由 a37 团队创建和维护的 DevOps 工具和集成 MCP 服务器。
MCPServer
mcp-server
镜子 (jìng zi)
Mcp Agent
使用模型上下文协议和简单工作流模式构建高效的代理