Python 开发 MCP Server 实战:协议集成与部署指南
MCP(Model Context Protocol)协议相当于给大模型装上了工具链的翅膀,让它不仅拥有推理和文本生成能力,还能执行具体的任务。本文将通过实战案例,演示如何使用 Python 快速构建一个 MCP 服务器。
一、基础环境搭建
首先安装官方推荐的 SDK:
pip install mcp
1. 使用 FastMCP 快速入门
这是一个最轻量级的实现方式,适合理解 MCP 的基本工作原理。
from mcp.server.fastmcp import FastMCP
import requests
# 创建服务器实例,名称用于标识
mcp = FastMCP("spider")
# 注册工具函数
@mcp.tool()
def crawl(url: str) -> str:
"""获取网页的源代码"""
try:
response = requests.get(url)
return response.text
except Exception as e:
return f"Error: {str(e)}"
if __name__ == "__main__":
# transport='stdio' 表示通过标准输入输出通信,适合本地调试
mcp.run(transport='stdio')
# 如需远程通信,可改为 transport="sse"
代码解析:
这里我们导入了 FastMCP 类并实例化了一个名为 spider 的服务器。@mcp.tool() 装饰器将 crawl 函数注册为外部客户端可调用的工具。文档字符串是客户端展示的工具描述。最后通过 mcp.run 启动服务,stdio 模式意味着它监听命令行输入输出,非常适合本地开发和测试。
2. 结合 FastAPI 进行深度集成
如果你已经在使用 FastAPI 构建业务接口,可以直接通过 fastapi-mcp 库将其暴露为 MCP 服务,无需重复编写逻辑。
pip install fastapi-mcp uvicorn
import requests
fastapi FastAPI, Query
fastapi_mcp add_mcp_server
app = FastAPI(
title=,
description=,
version=,
)
() -> :
response = requests.get(url)
{: response.text}
mcp_server = add_mcp_server(
app,
mount_path=,
name=,
description=,
base_url=,
describe_all_responses=,
describe_full_response_schema=,
)
__name__ == :
uvicorn
uvicorn.run(app, host=, port=)


