Python 开发 MongoDB 数据库 MCP Server 实战指南
前言
目前 MCP(Model Context Protocol)协议是给大模型插上工具链的翅膀,让大模型不仅拥有超高的推理和文本生成能力,还能具备执行大脑意识的工具能力。
如何开发一个 MCP Server
MCP 是一种协议,指的是模型上下文协议 (Model Context Protocol)。
官方 SDK 方式
安装依赖:
pip install mcp
代码示例:
from mcp.server.fastmcp import FastMCP
import requests
mcp = FastMCP("spider")
@mcp.tool()
def crawl(url: str) -> str:
"""获取网页的源代码"""
response = requests.get(url)
return response.text
if __name__ == "__main__":
mcp.run(transport='stdio')
# mcp.run(transport="sse")
以上代码实现了 FastMCP 库来创建一个简单的 MCP 服务器,它提供一个基本的工具(工具名:crawl),用于实现源代码的获取。这是一个非常简单的爬虫 MCP 入门示例,适合理解 MCP 服务器的工作原理和 FastMCP 的基本用法。
代码分析
- 从
mcp.server.fastmcp模块中导入了 FastMCP 类。 - 创建了一个 FastMCP 类的实例,命名为 spider。
@mcp.tool()是一个装饰器,它将crawl函数注册为一个可供客户端调用的工具。- 文档字符串是函数的描述,客户端会显示这个描述,帮助用户理解工具的功能。
mcp.run(transport='stdio')启动 MCP 服务器,进入监听状态。transport='stdio'指定了通信方式为标准输入输出,适合本地开发和测试。- 如果需要远程通信,可以更改为其他传输方式(如 'sse',Server-Sent Events)。
FastAPI-MCP 集成方式
安装依赖:
pip install fastapi-mcp
案例分析:
import requests
from fastapi import FastAPI, HTTPException, Query
from pydantic import BaseModel
typing
fastapi_mcp add_mcp_server
app = FastAPI(
title=,
description=,
version=,
)
() -> :
:
response = requests.get(url)
{: response.text}
Exception e:
HTTPException(status_code=, detail=(e))
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=)


