MCP 接入使用总结(面向开发人员)

MCP 介绍

MCP 是function call 的升级版,之前function call, 各家可自由定义,MCP 给function call 加上了中间件,统一标准,方便使用者在前端调用。

MCP 是由Host, client,server,resources 4部分组成。

  • Host 是各种大模型客户端,如Claude desktop,cursor,windsur.
  • client是客户端。
  • server 是服务端,提供实际服务。由它来访问resources.
  • resources 可以是本地资源,远程资源。

这种分层的协议,方便的进行权限控制。

MCP 接入的方式

MCP 聚合网站有很多,有cluade官方的,github.com/modelcontex... 有第三方的,如mcp.so, 这些网站列举大量的MCP服务。下面按实现工具的不同分类如下:

网络

css 复制代码
"mcpServers": {
  "time": {
    "url": "http://xxx/mcp",
  }
}

uv

这是一种python实现的接入方式,需要安装python,uv, 下载python的client实现代码。如claude 官方实现的mcp, 都是用这种方式实现的。

css 复制代码
"mcpServers": {
 "time": {
   "command": "uv",
   "args": ["--directory", "/path/to/src","run","server.py"]
 }
}

uv是类似pip的python包管理工具,速度比pip快。

npx

这是前端node实现的接入方式,需要安装node,npx, 下载js的client代码。

css 复制代码
"mcpServers": {
"time": {
  "command": "npx",
  "args": ["-y","mcprouter"]
}
}

npx与node类似,是前端实现包管理的工具,好处在于它不需要安装就可以直接使用。

docker

这是docker 实现的接入方式,需要安装docker, 用docker run的方式实现

css 复制代码
"mcpServers": {
"time": {
  "command": "docker",
  "args": ["run", "-i", "--rm", "mcp/time"]
}
}

以上四种接入的方式,厂商的服务,一般都会有多种的接入方式,可选择方便的方式接入。

自定义服务端

fastapi是python中开发api库,实现mcp接入,非常方便。

ini 复制代码
from fastapi import FastAPI
from fastapi_mcp import add_mcp_server
import uvicorn
app = FastAPI()
# 创建 MCP 服务器并启用高级配置
mcp_server = add_mcp_server(
    app,
    mount_path="/mcp",
    name="My API MCP",
    describe_all_responses=True,   # 显示所有可能的响应模式
    describe_full_response_schema=True# 提供完整 JSON Schema
)

# 额外添加一个 MCP 工具(获取服务器时间)
@mcp_server.tool()
async def get_server_time() -> str:
 from datetime import datetime
 return datetime.now().isoformat()
 
if __name__ == "__main__":
  uvicorn.run(app, host="0.0.0.0", port=8002)

注意事项

  • 在windows中使用,启动客户端时,以管理员方式启动, 否则可能无法启动。启动后,会弹出cmd 窗口,这窗口不能关。

  • 有时按配置写好后,不起作用。需要会调试,MCP Inspector就是这种工具,

    bash 复制代码
    npx @modelcontextprotocol/inspector node path/to/server/index.js args...
    npx @modelcontextprotocol/inspector uv --directory path/to/server run package-name args...

问题

在使用npx -y @modelcontextprotocol/server-sequential-thinking 这种方式时,单独在窗口中可以启动,放到cursor中不行。

相关推荐
卷无止境8 小时前
独立开发者的"富矿地带":哪些垂直领域值得你押注一辈子?
后端·python
狼爷9 小时前
从零用 Java 构建 AI Agent 框架:JavaManus 设计与实现深度解析
后端·langchain·aigc
郑州光合科技余经理9 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
专业程序开发源9 小时前
springboot简历管理系统81389-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
专业程序开发源9 小时前
springboot社区养老系统44071-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
小呆呆6669 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
周杰伦fans10 小时前
8GB显存下模型量化实战指南
人工智能·后端·c#
EatFan10 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
小蒜学长10 小时前
基于SpringBoot的佳新超市管理系统设计与实现系统(代码+数据库+LW)
java·数据库·spring boot·后端·佳新超市管理系统
IT_陈寒11 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端