【无标题】

AI Agent学习 -- MCP篇

MCP是什么

MCP(Model Context Protect,模型上下文协议)是一个开源标准,用于将人工智能应用与外部系统连接起来。

可以将MCP理解成USB端口,USB提供了连接电子设备的标准化方式,MCP对于AI应用来说也是如此,MCP可以连接claude code,cursor,vs等应用。

MCP Server核心概念

三大原语

  • Tools:模型可调用的函数或者可以执行操作,如数据库查询,文件系统操作等。客户端向服务器端
  • Resources:为应用提供上下文数据的数据源,如文件内容,数据库记录等。服务器端向客户端
  • Prompts:用户可调用的模板,帮助结构化与语言模型的交互。服务端向用户
  • Sampling:服务器向LLM发送补全请求。服务端向LLM
  • Logging:服务器能够向客户端发送日志消息,以便进行调试和监控。服务端向客户端

MCP架构的主要参与者

MCP Host :协调和管理一个或多个 MCP 客户端的 AI 应用
MCP 客户端 :一个组件,负责维护与 MCP 服务器的连接,并从该 MCP 服务器获取上下文供 MCP 主机使用
MCP 服务器:为 MCP 客户端提供上下文的程序

传输方式

  • stdio:本地进程场景,客户端启动服务器进程,通过stdin/stdout通信
  • http:远程服务场景,HTTP POST发送请求
  • SSE:远程服务场景,已被HTTP取代

MCP使用

MCP生态有很多个服务器,可以直接在AI应用中使用已经定义好的mcp服务器,也可以自己定制mcp服务器。

Python 用 FastMCP 2.0 的装饰器 API,使用python开发一个MCP案例

首先需要部署环境:

bash 复制代码
python -m pip install uv  #安装uv,使用uv管理mcp
pip install fastmcp
uv init weather   #使用uv初始化一个mcp服务项目
uv add "mcp[cli]"   #添加mcp的依赖项

python代码如下:

python 复制代码
"""
FastMCP quickstart example.
"""

from mcp.server.fastmcp import FastMCP

# 创建一个mcp实例
mcp = FastMCP("Demo", json_response=True)

# 定义tool,即该mcp能提供的功能
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

# 该mcp能获得的资源
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

# 该mcp定义的提示词
@mcp.prompt()
def greet_user(name: str, style: str = "friendly") -> str:
    """Generate a greeting prompt"""
    styles = {
        "friendly": "Please write a warm, friendly greeting",
        "formal": "Please write a formal, professional greeting",
        "casual": "Please write a casual, relaxed greeting",
    }

    return f"{styles.get(style, styles['friendly'])} for someone named {name}."

if __name__ == "__main__":
    mcp.run()

在cursor中使用定制的mcp服务:

1.在cursor中添加mcp服务器

由于我已经添加了两个mcp,所以上面会显示添加的mcp,点击New MCP Server,跳转到mcp.json文件,然后填充mcp.json文件内容如下:

json 复制代码
{
  "mcpServers": {
    "fastmcp_quickstart": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp",
        "path/fastmcp_quickstart.py"
      ]
    }
  }
}

即可看到添加的fastmcp_quickstart的mcp服务器。在cursor中调用实现的mcp服务器。
由于和llm的结果进行区分,因此修改了add的实现 ,实际fastmcp_quickstart的add功能代码为返回a + a + b :

然后在cursor中使用:

可以发现,计算结果是符合预期的,因此能够验证已经调用到自己定制的fastmcp_quickstart的mcp服务器

相关推荐
EatFan6 小时前
从“框架混战“到“运行时收敛“:2026 年 AI Agent 开发框架的三条路线之争
java·数据库·人工智能·多智能体·ai agent·mcp·agent 框架
诺伦13 小时前
AI Agent编排实战:用四层架构搭建增长运营垂类Agent系统 | RiseClaw玄策
人工智能·ai agent·mcp·agent编排·增长运营
大连好光景14 小时前
MCP协议与Function Calling的区别?
functioncalling·mcp
EatFan16 小时前
从云原生到AI原生:2026后端架构“三驾马车”(事件驱动、虚拟线程、AI Agent内嵌)演进解析
spring boot·云原生·架构·虚拟线程·ai-native·ai agent·spring ai
Patrick在香港17 小时前
MCP 的 initialize 握手真的没了?67 行标准库实测 2026-07-28 规范
python·agent·claude·mcp·json-rpc
EatFan1 天前
AI Agent 进入工程化下半场:从多智能体编排走向治理、标准化与运行沙箱
人工智能·多智能体·ai agent·开源框架·mcp·agents.md
code2cat1 天前
【随笔】MCP缓存期限与共享范围:让Agent复用资料时记住边界
java·后端·缓存·ai agent·mcp
一缕82年的清风2 天前
实战指南:如何把现有 REST API 工业级封装为 MCP(Model Context Protocol)服务
python·mcp
网络毒刘2 天前
手写一个最小 MCP Server:stdio 传输、两个 tools、在 Cursor 里验通调用链
cursor·mcp·stdio·atomgit·工具实践
EatFan2 天前
当 CubeMX 遇上 AI Agent:用 MCP 让 AI 直接生成 STM32 HAL 工程
人工智能·stm32·嵌入式硬件·cubemx·stm32cubemx·hal·mcp