【无标题】

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服务器

相关推荐
暗黑小白2 小时前
LLM 业务级可观测
大模型·ai agent
大龄码农有梦想2 小时前
AI Agent 目前最大的瓶颈是什么?
人工智能·机器学习·ai agent·智能体·ai工作流·智能体平台
暗黑小白3 小时前
脱敏引擎工程化
后端·ai agent
凉凉的知识库5 小时前
MCP 协议迎来重大升级:2026-07-28 新版核心变化速览
llm·claude·mcp
deepseek237 小时前
GPT-5.6 Luna 降价 80%:从 24% 到 90% 的缓存命中率,OpenAI 的价格战打在了工程层
大模型·openai·ai agent
千桐科技8 小时前
qKnow 开源版 v2.4.0 发布:新增 MCP 远程工具管理,打通 Agent 与外部服务
开源·llm·agent·工作流·mcp·qknow·智能体构建平台
摇曳的精灵8 小时前
HTTP 与 MCP:不是替代,而是分层
网络·网络协议·http·mcp
神奇霸王龙9 小时前
MCP v5 Agent Skills 屠夫榜:5 旗舰子代理
网络·人工智能·ai·aigc·agent·mcp·skills
跨境Jacky19 小时前
亚马逊CLI vs 爬虫:成本维护效率全实测
跨境电商·mcp·sorftime