找回密码
 立即注册
首页 业界区 业界 [AI/应用/MCP] MCP Server/Tool 开发指南

[AI/应用/MCP] MCP Server/Tool 开发指南

杭环 昨天 11:10
0 序


  • MCP := 模型上下文协议 := AI Agent应用与外部系统集成的标准协议
一言以蔽之,MCP = AI LLM(大语言模型) 与外部系统的集成协议


  • 本文旨在总结和分享 MCP Server 和 MCP Tool 的开发经验。


  • 总结踩坑的日志。
  • 旨在用最精简的方式剖析/展示 MCP 应用的开发过程细节。


  • 欢迎交流。
1 概述: MCP Server/Tool 开发指南

MCP 概念篇


  • [AIGC/Agent] MCP := 模型上下文协议 := AI Agent应用与外部系统集成的标准协议 - 博客园/千千寰宇 【推荐】
MCP 的 典型应用场景


  • 文件系统访问:让 AI 安全地读写本地文件
  • 数据库查询:SQL 执行、数据检索
  • API 集成:GitHub、Slack、自定义业务 API
  • 代码执行:在沙箱中运行 Python/R/Java/... 代码
MCP 核心架构


  • MCP 是一种开放协议,用于标准化 AI 模型与外部数据源、工具之间的连接方式。它采用 Client-Server 架构
  1. ┌─────────────────┐         ┌─────────────────────────┐         ┌─────────────────┐
  2. │   AI 应用/宿主   │  ←──→  │   MCP Client             │  ←──→   │   MCP Server    │
  3. │  (Claude/Cursor)│         │  (Python/Java/... SDK)  │         │  (数据源/工具)    │
  4. └─────────────────┘         └─────────────────────────┘         └─────────────────┘
  5.                                     ↑
  6.                                     │ JSON-RPC 2.0 over stdio/SSE
  7.                                     ↓
  8.                             ┌─────────────────────┐
  9.                             │   MCP Server        │
  10.                             │  (文件系统/数据库/...)│
  11.                             └─────────────────────┘
复制代码

  • 关键技术栈


  • SSE/Server-sent events/SSE (Server-sent Events): 服务器推送事件到客户端;
适用于:需要实时数据推送的场景; 特点:单向通信(服务器 → 客户端),基于 HTTP 长连接


  • JSON-RPC
2 实践案例

2.1 Python 原生版 MCP(Model Context Protocol)

安装 Python MCP
  1. pip install mcp[cli]
复制代码
Python MCP 运行流程

1. 初始化阶段
  1. from mcp.server import Server
  2. from mcp.types import TextContent
  3. # 创建 MCP Server 实例
  4. server = Server("my-data-server")
  5. @server.list_resources()
  6. async def list_resources():
  7.     """声明可用的资源"""
  8.     return [
  9.         {"uri": "file:///data/users.json", "name": "用户数据"}
  10.     ]
  11. @server.read_resource()
  12. async def read_resource(uri: str):
  13.     """实现资源读取逻辑"""
  14.     if uri == "file:///data/users.json":
  15.         return TextContent(text=load_users_json())
复制代码
2. 通信机制

传输方式适用场景特点stdio本地子进程安全隔离,最常见SSE远程服务HTTP 流式传输WebSocket实时双向低延迟交互stdio 模式工作流程:
  1. AI 宿主进程 ──fork──→ Python MCP Server (子进程)
  2.      ↑                    ↓
  3.      └─────── stdin/stdout ←─── JSON-RPC 消息
复制代码
3. 核心协议方法

MCP 定义了三类标准能力:
类型方法示例用途Resourcesresources/list, resources/read暴露结构化数据Toolstools/list, tools/call执行函数/操作Promptsprompts/list, prompts/get提供模板化提示4. 实际运行示例

当 AI 需要查询数据库时:
  1. # server.py - MCP Server 实现
  2. from mcp.server import Server
  3. import sqlite3
  4. server = Server("sqlite-server")
  5. @server.list_tools()
  6. async def list_tools():
  7.     return [{
  8.         "name": "query_sql",
  9.         "description": "执行 SQL 查询",
  10.         "inputSchema": {
  11.             "type": "object",
  12.             "properties": {
  13.                 "sql": {"type": "string"}
  14.             }
  15.         }
  16.     }]
  17. @server.call_tool()
  18. async def call_tool(name: str, arguments: dict):
  19.     if name == "query_sql":
  20.         conn = sqlite3.connect("data.db")
  21.         result = conn.execute(arguments["sql"]).fetchall()
  22.         return [TextContent(text=str(result))]
复制代码
运行时交互序列:
  1. 1. AI 宿主启动: python server.py (子进程)
  2. 2. AI 发送: {"jsonrpc":"2.0","method":"tools/list","id":1}
  3. 3. Server 返回: 可用工具列表 (含 query_sql)
  4. 4. AI 决策: 需要调用 query_sql 查询数据
  5. 5. AI 发送: {"jsonrpc":"2.0","method":"tools/call","params":{"name":"query_sql",...},"id":2}
  6. 6. Server 执行 SQL → 返回结果 → AI 生成回答
复制代码
Python SDK 关键组件

模块功能mcp.server创建服务端mcp.client创建客户端连接mcp.types标准数据类型 (TextContent, ImageContent 等)mcp.shared传输层实现 (stdio, SSE)设计优势


  • 安全隔离:MCP Server 在独立进程中运行,与 AI 宿主隔离
  • 标准统一:任何支持 MCP 的 AI 应用都能使用相同的工具
  • 语言无关:虽然用 Python 编写,但协议是跨语言的
  • 动态发现:AI 可以自动发现可用资源和工具,无需硬编码
2.2 MCP Server(SSE模式) - NACOS MCP Server (Python)版

使用 Nacos MCP Wrapper Python 开发 MCP Server。
step0 前置要求


  • 安装 python / pip 环境


  • 推荐版本: python 3.10


  • 安装 python 依赖
  1. $ pip install python-dotenv
  2. $ pip install nacos-mcp-wrapper-python nacos-sdk-python
  3. $ pip list | findstr nacos
  4. nacos-mcp-wrapper-python              1.1.0
  5. nacos-sdk-python                      3.0.4
复制代码


  • nacos_mcp_wrapper 是一个 MCP (Model Context Protocol) 的 Nacos 集成库。
step1 开发并启动 Mcp Server/Tool (SSE版)

.env


  • 配置环境变量 for register_nacos_mcp_server.py
  1. NACOS_SERVER_ADDR="127.0.0.1:8848"
  2. NACOS_USERNAME="nacos"
  3. NACOS_PASSWORD="nacos"
  4. MCP_APP_SERVER_NAME="nacos-mcp-python"
  5. MCP_APP_SERVER_PORT=18001
复制代码
register_nacos_mcp_server.py
  1. import os
  2. from dotenv import load_dotenv
  3. from nacos_mcp_wrapper.server.nacos_mcp import NacosMCP
  4. from nacos_mcp_wrapper.server.nacos_settings import NacosSettings
  5. import logging
  6. # @description 启动 Mcp Server,并注册到 NACOS
  7. # @dependency : pip install python-dotenv nacos-mcp-wrapper-python nacos-sdk-python
  8. # step0 前置准备
  9. # step0.1 加载环境变量 from `.env` 文件
  10. load_dotenv()
  11. # step0.2 配置日志
  12. logging.basicConfig(
  13.     level=logging.INFO,
  14.     format='%(asctime)s - %(levelname)s - %(message)s'
  15. )
  16. logger = logging.getLogger(__name__)
  17. # step1 Create an MCP server instance
  18. nacos_settings = NacosSettings()
  19. # 验证所需的端口是否畅通: ssh 127.0.0.1 -p 8848 -v , ssh 127.0.0.1 -p 9848 -v
  20. nacos_settings.SERVER_ADDR = os.getenv("NACOS_SERVER_ADDR")  # <nacos_server_addr> e.g. "127.0.0.1:8848"
  21. nacos_settings.USERNAME = os.getenv("NACOS_USERNAME") # e.g. "nacos" or ""
  22. nacos_settings.PASSWORD = os.getenv("NACOS_PASSWORD") # e.g. "nacos" or ""
  23. mcp = NacosMCP(
  24.     os.getenv("MCP_APP_SERVER_NAME")
  25.     , nacos_settings=nacos_settings
  26.     , version="1.0.1"
  27.     , port=os.getenv("MCP_APP_SERVER_PORT")
  28. )
  29. # step2 Register some tools for the mcp server / 注册工具(装饰器方式,与官方 MCP SDK 完全一致)
  30. ## Register an addition tool
  31. @mcp.tool()
  32. def add(a: int, b: int) -> int:
  33.     """Add two integers together"""
  34.     return a + b
  35. ## Register a subtraction tool
  36. @mcp.tool()
  37. def minus(a: int, b: int) -> int:
  38.     """Subtract two numbers"""
  39.     return a - b
  40. ## calculate tool
  41. @mcp.tool()
  42. def calculate(expression: str) -> str:
  43.     """执行数学计算表达式"""
  44.     return str(eval(expression))
  45. ## get weather tool
  46. @mcp.tool()
  47. def get_weather(city: str) -> str:
  48.     """获取指定城市的天气"""
  49.     return f"{city} 今天晴天,25°C"
  50. # 运行逻辑:
  51. #   程序启动后会注册几个工具:add / minus / calculate / get_weather / ...
  52. #   使用 SSE 方式运行在端口 (如: 18001)(在第 9 行设置)
  53. #   连接到 Nacos 服务注册中心 (地址:${NACOS_SERVER_ADDR}, 如: 127.0.0.1:8848)
  54. #   服务名称为 nacos-mcp-python,版本 1.0.1
  55. #   异常会被捕获并打印错误信息
  56. if __name__ == "__main__":
  57.     logger.info(f"正在连接 Nacos 服务器:{nacos_settings.SERVER_ADDR}")
  58.     logger.info(f"用户名:{nacos_settings.USERNAME}")
  59.     try:
  60.         # transport/通信模式
  61.         mcp.run(transport="sse") # sse: Server-sent events/SSE (Server-sent Events):服务器推送事件到客户端;适用于:需要实时数据推送的场景; 特点:单向通信(服务器 → 客户端),基于 HTTP 长连接
  62.         # mcp.run(transport="stdio") # stdio :标准输入输出:通过进程的 stdin/stdout 通信; 适用于:本地进程间通信、命令行工具集成; 特点:双向通信,适合本地部署
  63.         # mcp.run(transport="streamable-http") # streamable-http/流式 HTTP:支持流式响应的 HTTP 协议; 适用于:需要双向通信的 Web 场景; 特点:双向通信,支持更复杂的交互模式
  64.     except Exception as e:
  65.         error_msg = str(e)
  66.         # 如果是 404 错误,可能是首次启动,尝试继续
  67.         if "404" in error_msg and "not found" in error_msg:
  68.             logger.warning("⚠ 未在 Nacos 中找到现有配置,将创建新服务...")
  69.             # 可以选择重试或继续
  70.         else:
  71.             print(f"Runtime error: {e}")
  72.             logger.error(f"Runtime error: {e}", exc_info=True)
  73.             print(f"\n连接失败,请检查:")
  74.             print(f"1. Nacos 服务器 {nacos_settings.SERVER_ADDR} 是否可访问")
  75.             print(f"2. 用户名密码是否正确")
  76.             print(f"3. 网络防火墙是否开放端口")
复制代码
查验


  • mcp server 端 : 日志
  1. C:\Users\xxx\.conda\envs\ai-env\python.exe D:\Workspace\xxx\DemoPythonProject\nacos_mcp\registry_nacos_mcp.py
  2. 2026-03-25 00:28:29,937 - INFO - 正在连接 Nacos 服务器:127.0.0.1:8848
  3. 2026-03-25 00:28:29,938 - INFO - 用户名:nacos
  4. 2026-03-25 00:28:29,953 - INFO - create new rpc client: 9aec5ecb-8ea3-4262-98c5-ac0c3247b228
  5. 2026-03-25 00:28:29,953 - INFO - init app conn labels from client config,{}
  6. 2026-03-25 00:28:29,953 - INFO - init app conn labels from env,{}
  7. 2026-03-25 00:28:29,954 - INFO - final app conn labels: {}
  8. 2026-03-25 00:28:29,954 - INFO - rpc client init label, labels : {'source': 'sdk', 'module': 'ai'}
  9. 2026-03-25 00:28:29,954 - INFO - rpc client register connection listener: AIGrpcRedoService
  10. 2026-03-25 00:28:29,955 - INFO - rpc client register server push request: ConnectResetRequest handler: ConnectResetRequestHandler
  11. 2026-03-25 00:28:29,955 - INFO - rpc client register server push request: ClientDetectionRequest handler: ClientDetectionRequestHandler
  12. 2026-03-25 00:28:29,956 - INFO - rpc client start to connect server, server: 127.0.0.1:9848
  13. 2026-03-25 00:28:30,091 - INFO - [get_access_token] AccessToken: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTc3NDM4NzcxMH0.oLQo0kzFuNDOTQlUpQXcm4QqEE-gNIYjWepdGlXs2-4, TTL: 18000, force_refresh: True
  14. 2026-03-25 00:28:30,099 - INFO - connect to server success,labels:{'source': 'sdk', 'module': 'ai'},tenant:public,connection_id:1774369710005_183.xxx.202.190_7436
  15. 2026-03-25 00:28:30,114 - INFO - receive stream server request, connection_id:1774369710005_183.xxx.202.190_7436, original info: metadata {
  16.   type: "SetupAckRequest"
  17.   clientIp: "172.17.0.2"
  18. }
  19. body {
  20.   value: "{"headers":{},"abilityTable":{"supportPersistentInstanceByGrpc":true,"fuzzyWatch":true,"lock":true,"mcp":true},"module":"internal"}"
  21. }
  22. 2026-03-25 00:28:30,218 - INFO - rpc client successfully connected to server:127.0.0.1:9848, connection_id:1774369710005_183.xxx.202.190_7436
  23. 2026-03-25 00:28:30,223 - INFO - rpc client notify [connected] event to listeners
  24. 2026-03-25 00:28:30,530 - ERROR - failed to invoke nacos config server : Error [404]: MCP server `nacos-mcp-python` not found in namespaceId: `public`
  25. 2026-03-25 00:28:30,531 - INFO - can not found McpServer info from nacos,nacos-mcp-python,version:1.0.1
  26. 2026-03-25 00:28:30,552 - ERROR - failed to invoke nacos config server : Error [404]: MCP server `nacos-mcp-python` not found in namespaceId: `public`
  27. 2026-03-25 00:28:30,553 - INFO - [9aec5ecb-8ea3-4262-98c5-ac0c3247b228] release mcp server: nacos-mcp-python, version 1.0.1
  28. 2026-03-25 00:28:30,890 - INFO - mcp_id:ea9e94c3-18f2-48a7-ae4e-9de982ea8718, namespace_id:public, mcp_name:nacos-mcp-python changed, mcp_server_detail_info:<class 'v2.nacos.ai.model.mcp.mcp.McpServerDetailInfo'>
  29. 2026-03-25 00:28:30,890 - INFO - Register to nacos success,nacos-mcp-python,version:1.0.1
  30. INFO:     Started server process [28956]
  31. INFO:     Waiting for application startup.
  32. INFO:     Application startup complete.
  33. INFO:     Uvicorn running on http://127.0.0.1:18001 (Press CTRL+C to quit)
  34. 2026-03-25 00:28:41,025 - INFO - mcp service changed: nacos-mcp-python -> {"id":"ea9e94c3-18f2-48a7-ae4e-9de982ea8718","name":"nacos-mcp-python","protocol":"mcp-sse","frontProtocol":"mcp-sse","description":"nacos-mcp-python","repository":null,"packages":null,"versionDetail":{"version":"1.0.1","release_data":null,"is_latest":true},"version":"1.0.1","remoteServerConfig":{"serviceRef":{"namespaceId":"public","groupName":"DEFAULT_GROUP","serviceName":"nacos-mcp-python::1.0.1","transportProtocol":null},"exportPath":"/sse","frontEndpointConfigList":[]},"localServerConfig":null,"enabled":true,"status":"active","capabilities":["TOOL"],"backendEndpoints":[{"protocol":null,"address":"192.168.60.18","port":18001,"path":"/sse","headers":null}],"frontendEndpoints":[],"toolSpec":{"specificationType":null,"encryptData":null,"tools":[{"name":"add","description":"Add two integers together","inputSchema":{"properties":{"a":{"title":"A","type":"integer"},"b":{"title":"B","type":"integer"}},"required":["a","b"],"title":"addArguments","type":"object"}},{"name":"minus","description":"Subtract two numbers","inputSchema":{"properties":{"a":{"title":"A","type":"integer"},"b":{"title":"B","type":"integer"}},"required":["a","b"],"title":"minusArguments","type":"object"}},{"name":"calculate","description":"执行数学计算表达式","inputSchema":{"properties":{"expression":{"title":"Expression","type":"string"}},"required":["expression"],"title":"calculateArguments","type":"object"}},{"name":"get_weather","description":"获取指定城市的天气","inputSchema":{"properties":{"city":{"title":"City","type":"string"}},"required":["city"],"title":"get_weatherArguments","type":"object"}}],"toolsMeta":{},"securitySchema":null},"allVersions":[{"version":"1.0.1","release_data":null,"is_latest":true}],"namespaceId":"public"}
  35. 2026-03-25 00:28:41,025 - INFO - mcp_id:ea9e94c3-18f2-48a7-ae4e-9de982ea8718, namespace_id:public, mcp_name:nacos-mcp-python changed, mcp_server_detail_info:<class 'v2.nacos.ai.model.mcp.mcp.McpServerDetailInfo'>
复制代码

  • nacos server 端 : MCP管理 - MCP 列表 (可选步骤)
MCP Server 并不依赖 NACOS Server,只是说 NACOS Server(3.x起) 为 MCP Server 提供了 MCP 服务注册与发现的能力。
1.png

step2 客户端(curl为例): 请求 mcp server 以获得 SessionId
  1. $ curl -N http://127.0.0.1:18001/sse
  2. event: endpoint
  3. data: /messages/?session_id=1deb0a8254604faf8416fc7beb540604
  4. : ping - 2026-03-24 15:29:28.860631+00:00
  5. ...
复制代码
注意:-N 参数至关重要,它告诉 curl 禁用缓冲,立即显示服务器推过来的数据。
2.png

step2 客户端(curl为例): 新建第2个窗口/进程,基于 SessionId 请求 mcp server 完成【会话初始化】操作


  • 为什么 MCP 客户端需要2个窗口?


  • MCP (Model Context Protocol) 在使用 SSE (Server-Sent Events) 传输时,采用了 “读写分离” 的模式:


  • (Read): 一个持久的 HTTP 长连接,服务器通过它源源不断地推送数据(Events)。
  • (Write): 短暂的 HTTP POST 请求,客户端通过它发送指令。
    因此,我们需要打开两个终端窗口:一个负责“听”,一个负责“说”。
  1. $ SESSION_ID=1deb0a8254604faf8416fc7beb540604
  2. echo "${SESSION_ID}"
  3. 1deb0a8254604faf8416fc7beb540604
  4. $ curl -X POST "http://127.0.0.1:18001/messages/?session_id=$SESSION_ID" \
  5.   -H "Content-Type: application/json" \
  6.   -d '{
  7.     "jsonrpc": "2.0",
  8.     "id": 1,
  9.     "method": "initialize",
  10.     "params": {
  11.       "protocolVersion": "2024-11-05",
  12.       "capabilities": {},
  13.       "clientInfo": { "name": "test-client", "version": "1.0.0" }
  14.     }
  15.   }'
复制代码
注:Body: 标准的 JSON-RPC 2.0 格式。


  • MCP 客户端 (2个窗口):
3.png



  • MCP 服务器端


  • 类似日志: "INFO:     127.0.0.1:65285 - "GET /sse HTTP/1.1" 200 OK"
    4.png

注:如果不完成此初始化操作,直接调用 tool ,将调用失败,报类似错误:


  • "WARNING - Failed to validate request: Received request before initialization was complete"
  • "data: {"jsonrpc":"2.0","id":1,"error":{"code":-32602,"message":"Invalid request parameters","data":""}}"
5.png

step3 客户端(curl为例): 在第2个窗口/进程,基于 SessionId 调用 mcp server 的指定 tool
  1. $ curl -X POST "http://127.0.0.1:18001/messages/?session_id=$SESSION_ID" \
  2.   -H "Content-Type: application/json" \
  3.   -d '{
  4.     "jsonrpc": "2.0",
  5.     "method": "tools/call",
  6.     "params": {
  7.       "name": "minus",
  8.       "arguments": {"a": 3, "b": 4}
  9.     },
  10.     "id": 1
  11.   }'
复制代码
注:Body: 标准的 JSON-RPC 2.0 格式。
6.png

调用其他 tool 的示范
7.png

Z FAQ/Troubleshooting for MCP

Q: 发送 POST 后没反应?


  • 检查 客户端窗口1: 结果是异步返回的,一定要看监听窗口。
  • 检查斜杠:确认 POST URL 是 /messages/?... 而不是 /messages?...。可以加 -v 参数查看是否返回了 307 Temporary Redirect。
Q: Session ID 过期?


  • SSE 连接如果断开,Session ID 就会失效。每次重新运行 curl -N .../sse 都会生成一个新的 ID,发 POST 时记得更新。
Q: 乱码或无输出?


  • 确保 curl 加上了 -N (no buffer)。
  • 确保 curl 加上了 -H "Content-Type: application/json",否则服务器可能不解析 Body。
Q: MCP 的 SSE 模式,是否用到了 Websocket 技术?


  • SSE(Server-Sent Events)和 WebSocket 是两种不同的技术,SSE 模式并不使用 WebSocket
它们的区别:
SSE vs WebSocket 对比

特性SSEWebSocket通信方向单向:服务器 → 客户端双向:客户端 ↔ 服务器协议基础HTTP(长连接)WebSocket 协议(ws://)连接建立标准 HTTP GET 请求HTTP Upgrade 握手后切换数据格式纯文本,以 data: 开头的流二进制或文本帧自动重连浏览器原生支持需手动实现MCP 用途Server → Client 推送双向实时通信MCP 中的 SSE 模式原理
  1. ┌─────────────┐                    ┌─────────────┐
  2. │  MCP Client │ ──HTTP GET /sse──→│  MCP Server │
  3. │   (AI 宿主)  │ ←──text/event-stream│  (Python)   │
  4. └─────────────┘                    └─────────────┘
  5.         ↑                                  ↓
  6.         └────────HTTP POST /message────────┘
  7.               (客户端发送请求)
复制代码
SSE 数据流格式:
  1. HTTP/1.1 200 OK
  2. Content-Type: text/event-stream
  3. Cache-Control: no-cache
  4. Connection: keep-alive
  5. data: {"jsonrpc":"2.0","method":"resources/list","id":1}
  6. data: {"jsonrpc":"2.0","result":[...],"id":1}
  7. data: {"jsonrpc":"2.0","method":"notifications/resources/updated",...}
复制代码
MCP 三种传输方式的技术栈

MCP 传输方式底层技术双向通信实现stdio操作系统管道 (stdin/stdout)两个单向流组合SSEHTTP + SSE 流SSE 流 + 独立 HTTP POST 请求WebSocketWebSocket 协议原生双向帧Python MCP SSE 服务端示例
  1. from mcp.server.sse import SseServerTransport
  2. from starlette.applications import Starlette
  3. from starlette.routing import Route
  4. # SSE 传输层
  5. sse = SseServerTransport("/messages")
  6. async def handle_sse(request):
  7.     """处理 SSE 连接:服务器推送消息给客户端"""
  8.     async with sse.connect_session(request) as streams:
  9.         await server.run(streams[0], streams[1], server.create_initialization_options())
  10. async def handle_message(request):
  11.     """处理客户端 POST 请求"""
  12.     await sse.handle_post_message(request)
  13.     return Response(status_code=202)
  14. app = Starlette(routes=[
  15.     Route("/sse", handle_sse),           # 建立 SSE 连接
  16.     Route("/messages", handle_message, methods=["POST"])  # 接收客户端消息
  17. ])
复制代码
关键区别总结

SSE 模式的双向通信是这样实现的:

  • Server → Client:SSE 流(text/event-stream)
  • Client → Server:独立的 HTTP POST 请求
WebSocket 模式:

  • 单个 ws:// 连接同时处理双向通信
MCP 协议设计时,SSE 和 WebSocket 是并列的两种传输选项,不是包含关系。Python mcp SDK 中:

  • mcp.server.sse → SSE 实现
  • mcp.server.websocket → WebSocket 实现(如果存在)
如果你需要真正的双向实时流(比如高频数据推送),WebSocket 更合适;如果只是 AI 工具调用场景,SSE 足够且更简单。
Y 推荐文献


  • [AIGC/Agent] MCP := 模型上下文协议 := AI Agent应用与外部系统集成的标准协议 - 博客园/千千寰宇 【推荐】


  • [Nacos/Docker/MCP] Nacos 3.x : 为 AI MCP 而生 - 博客园/千千寰宇 【推荐】
  • NACOS


  • MCP Server 自动注册与发现手册 - NACOS
  • Nacos MCP Router手册 - NACOS
  • MCP模版配置手册 - NACOS


  • 第三方


  • https://open-mcp-client.vercel.app
一个免费的mcp在线客户端
X 参考文献


  • 如何使用 curl 命令行测试 FastMCP (SSE 模式) - CSDN 2026.01.03
  • Model Context Protocol(MCP)的SSE使用 - blog.kala.love //todo
pip install mcp[cli]
from mcp.server import FastMCP


  • 如何搭建sse的MCP本地服务器以及Cursor应用 - Zhihu

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册