【无标题】

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

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案例
首先需要部署环境:

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

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文件内容如下:

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

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值