发现优秀的 MCP 服务器
通过 MCP 服务器扩展您的代理能力,拥有 10,066 个能力。
MCP Server Implementation Guide
以下是一个指南和实现,用于创建你自己的 MCP (模型控制协议) 服务器,以便与 Cursor 集成: **标题:创建你自己的 Cursor 集成 MCP 服务器指南与实现** **简介:** Cursor 是一款强大的代码编辑器,它允许通过 MCP (Model Control Protocol) 与外部语言模型进行交互。 本指南将引导你完成创建自己的 MCP 服务器的过程,以便将你自己的语言模型集成到 Cursor 中。 **1. 了解 MCP (Model Control Protocol):** * **目的:** MCP 是一种允许 Cursor 与外部语言模型进行通信的协议。 它定义了 Cursor 如何向模型发送请求以及模型如何返回响应。 * **通信方式:** MCP 通常使用 JSON over WebSocket 进行通信。 * **关键消息类型:** * **`completion` 请求:** Cursor 向模型发送代码补全请求。 * **`completion` 响应:** 模型返回代码补全建议。 * **`chat` 请求:** Cursor 向模型发送聊天请求。 * **`chat` 响应:** 模型返回聊天回复。 * **`edit` 请求:** Cursor 向模型发送代码编辑请求。 * **`edit` 响应:** 模型返回代码编辑建议。 * **`health` 请求:** Cursor 向服务器发送健康检查请求。 * **`health` 响应:** 服务器返回健康状态。 **2. 选择编程语言和框架:** 你可以使用任何你喜欢的编程语言和框架来构建 MCP 服务器。 一些常见的选择包括: * **Python:** 使用 `websockets` 或 `aiohttp` 库。 * **Node.js:** 使用 `ws` 或 `socket.io` 库。 * **Go:** 使用 `gorilla/websocket` 库。 本指南将使用 Python 和 `websockets` 库作为示例。 **3. 设置 WebSocket 服务器:** 首先,你需要设置一个 WebSocket 服务器来监听来自 Cursor 的连接。 ```python import asyncio import websockets import json async def handle_connection(websocket, path): print(f"New connection from {websocket.remote_address}") try: async for message in websocket: print(f"Received message: {message}") try: data = json.loads(message) # 处理消息 response = await process_message(data) await websocket.send(json.dumps(response)) except json.JSONDecodeError: print("Invalid JSON received") await websocket.send(json.dumps({"error": "Invalid JSON"})) except Exception as e: print(f"Error processing message: {e}") await websocket.send(json.dumps({"error": str(e)})) except websockets.exceptions.ConnectionClosedError: print(f"Connection closed unexpectedly from {websocket.remote_address}") except websockets.exceptions.ConnectionClosedOK: print(f"Connection closed normally from {websocket.remote_address}") finally: print(f"Connection closed from {websocket.remote_address}") async def process_message(data): # 在这里处理不同类型的 MCP 请求 if data.get("type") == "completion": return await handle_completion(data) elif data.get("type") == "chat": return await handle_chat(data) elif data.get("type") == "edit": return await handle_edit(data) elif data.get("type") == "health": return await handle_health(data) else: return {"error": "Unknown message type"} async def handle_completion(data): # TODO: 调用你的语言模型进行代码补全 prompt = data.get("prompt") # 示例:返回一个简单的补全建议 completion = f"// This is a completion for: {prompt}" return {"completion": completion} async def handle_chat(data): # TODO: 调用你的语言模型进行聊天 message = data.get("message") # 示例:返回一个简单的聊天回复 response = f"You said: {message}" return {"response": response} async def handle_edit(data): # TODO: 调用你的语言模型进行代码编辑 code = data.get("code") instruction = data.get("instruction") # 示例:返回一个简单的编辑建议 edited_code = f"// Edited code based on: {instruction}\n{code}" return {"edited_code": edited_code} async def handle_health(data): # 返回服务器的健康状态 return {"status": "ok"} async def main(): async with websockets.serve(handle_connection, "localhost", 8765): print("WebSocket server started at ws://localhost:8765") await asyncio.Future() # 保持服务器运行 if __name__ == "__main__": asyncio.run(main()) ``` **4. 处理 MCP 请求:** 在 `process_message` 函数中,你需要根据 `data.get("type")` 的值来处理不同类型的 MCP 请求。 * **`completion` 请求:** * 从 `data` 中提取代码补全所需的上下文信息(例如,当前代码、光标位置等)。 * 调用你的语言模型来生成代码补全建议。 * 将补全建议封装在 `completion` 响应中并返回。 * **`chat` 请求:** * 从 `data` 中提取聊天消息。 * 调用你的语言模型来生成聊天回复。 * 将回复封装在 `chat` 响应中并返回。 * **`edit` 请求:** * 从 `data` 中提取代码和编辑指令。 * 调用你的语言模型来生成代码编辑建议。 * 将编辑后的代码封装在 `edit` 响应中并返回。 * **`health` 请求:** * 返回服务器的健康状态。 **5. 集成你的语言模型:** 在 `handle_completion`、`handle_chat` 和 `handle_edit` 函数中,你需要集成你自己的语言模型。 这可能涉及: * 加载你的语言模型。 * 预处理输入数据。 * 调用语言模型进行推理。 * 后处理输出数据。 **6. 配置 Cursor:** 1. 打开 Cursor 的设置。 2. 搜索 "Model Control Protocol"。 3. 启用 "Enable Model Control Protocol"。 4. 在 "Model Control Protocol URL" 中输入你的 MCP 服务器的 URL (例如,`ws://localhost:8765`)。 **7. 测试:** 1. 运行你的 MCP 服务器。 2. 在 Cursor 中打开一个代码文件。 3. 尝试代码补全、聊天或代码编辑功能。 4. 检查你的 MCP 服务器是否收到请求并返回了正确的响应。 **8. 错误处理:** * 在服务器端,捕获所有可能的异常并返回包含错误信息的 JSON 响应。 * 在 Cursor 端,检查响应中是否包含错误信息并向用户显示。 **9. 优化:** * **性能:** 优化你的语言模型和 MCP 服务器以提高性能。 * **可扩展性:** 设计你的 MCP 服务器以支持多个并发连接。 * **安全性:** 考虑安全性问题,例如身份验证和授权。 **示例 JSON 消息格式:** **Completion Request:** ```json { "type": "completion", "prompt": "def hello_world():\n " } ``` **Completion Response:** ```json { "completion": "print('Hello, world!')" } ``` **Chat Request:** ```json { "type": "chat", "message": "How do I write a for loop in Python?" } ``` **Chat Response:** ```json { "response": "You can write a for loop in Python like this: `for i in range(10): print(i)`" } ``` **Edit Request:** ```json { "type": "edit", "code": "def add(a, b):\n return a + b", "instruction": "Add a docstring to the function." } ``` **Edit Response:** ```json { "edited_code": "def add(a, b):\n \"\"\"Adds two numbers together.\"\"\"\n return a + b" } ``` **Health Request:** ```json { "type": "health" } ``` **Health Response:** ```json { "status": "ok" } ``` **总结:** 通过遵循本指南,你可以创建自己的 MCP 服务器,并将你自己的语言模型集成到 Cursor 中。 这将使你能够利用你自己的模型来增强 Cursor 的代码补全、聊天和代码编辑功能。 记住,这只是一个起点,你需要根据你的具体需求进行调整和优化。 **重要提示:** * 确保你的语言模型符合 Cursor 的使用条款和隐私政策。 * 仔细测试你的 MCP 服务器,以确保其稳定性和可靠性。 * 考虑安全性问题,例如身份验证和授权。 This translation provides a comprehensive guide and implementation example for creating your own MCP server for Cursor integration. It covers the key concepts, steps, and considerations involved in the process. Remember to replace the placeholder comments with your actual language model integration logic. Good luck!
mcp_stdio2sse
标准输入输出流 (Stdio) MCP 服务器的服务器发送事件 (SSE) 版本
Lifetechia Mcp Server
Lifetechia MCP 服务器 (Lifetechia MCP fúwùqì)
mcp-notify
一个简单的 MCP 服务器,用于发送桌面通知。
ClickUp MCP Server
镜子 (jìng zi)
Text-to-Speech MCP Server
一个简单的 MCP (模型上下文协议) 服务器,提供文本转语音转换功能,使用 TypeScript 编写。
onx-mcp-server
通过构建 MCP 服务器来探索模型上下文协议。
MCP Server Obsidian Omnisearch
镜子 (jìng zi)
mcp-server-python
镜子 (jìng zi)
Pet-store-MCP-server-3
MCP服务器测试 (MCP fúwùqì cèshì)
AskTheApi Team Builder
基于AutoGen的、用于与 OpenAPI API 通信的代理网络构建器。
MCP Servers for Developers
DeepChat 好用的图像 MCP Server 集合
一个用于 DeepChat 的图像 MCP 服务器
mcp-server
MCP 演示 (MCP yǎnshì)
proxmox-mcp-server
Proxmox MCP 服务器项目的代码仓库,使 Windsurf 能够执行所有通过 Proxmox API 访问的功能。
TradingView PineScript MCP Server
ScreenshotOne MCP Server
一个 ScreenshotOne API 的简单 MCP (Minecraft Protocol) 服务器实现。
mcp-sse-server-demo
MCP SSE 服务器演示
Slack MCP Server
Slack (思科协作平台)
Planning Center Online API and MCP Server Integration
在线计划中心 MCP 服务器 (Zài xiàn jìhuà zhōngxīn MCP fúwùqì)
SmallCloud MCP Server Demo
镜子 (jìng zi)
Cline Code Nexus
Cline 创建的用于验证 MCP 服务器功能的测试存储库。
Tradovate MCP Server
镜子 (jìng zi)
Mcp Server Danchoicloud
MCP服务器 (MCP fúwùqì)
yunxin-mcp-server
云信 MCP 服务器 (Yúnxìn MCP fúwùqì)
MCP Servers and Tools I Use
好的,请提供您想翻译成中文的关于 MCP 服务器和您与 Claude 一起使用的工具的文档。 我会尽力为您提供准确且自然的翻译。
Remote MCP Server on Cloudflare
MCP Grpcurl
使用 grpcurl 工具与 gRPC 服务交互的 Model Context Protocol (MCP) 服务器
MCP server for kintone by Deno サンプル
zellij-mcp-server
一个通过标准输入输出 (STDIO) 将 MCP 服务器连接到 Zellij 的方案