MCP服务端

本地环境,Python3.13,FastMCP 2.13.0

from fastmcp import FastMCP

mcp = FastMCP("Demo")

@mcp.tool()
def add(a:int, b:int):
    print(f"{a}+{b}===")
    return a + b + 10



# 以 HTTP 方式启动
if __name__ == "__main__":
    mcp.run(transport="http", host="127.0.0.1", port=8000)

启动成功后如下界面

FastMCP客户端调用

# client_http.py
import asyncio
from fastmcp import Client

config = {
    "mcpServers": {
        "demo": {
            "url": "http://127.0.0.1:8000/mcp",   # 服务端 StreamableHTTP 端点
            "transport": "http"                   # 与 server 保持一致
        }
    }
}

async def main():
    async with Client(config) as client:
        result = await client.call_tool("add", {"a": 3, "b": 5})
        print(">>> add(3,5) =", result)          # 预期 18

if __name__ == "__main__":
    asyncio.run(main())

调用结果

cursor调用

https://cursor.com/cn/  下载注册安装

{
  "mcpServers": {
    "demo": {
      "url": "http://127.0.0.1:8000/mcp"
    }
  }
}

注意启动mcp,会自动和MCP服务连接,如果连接成功会变成绿色,连接失败会是黄色。

连接成功,后端fastmcp服务会答应日志。

回到对话框,添加mcp.json

这里自动执行了add,结果是31(代码故意返回了一个错误值),cursor还进行了比较,然后返回21。

提问前,要带上demo告诉客户端要使用mcp工具。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐