准备:创建MCP项目
建议使用 uv 来管理 Python 项目。
如果尚未创建由 uv 管理的项目,先创建一个:
uv init mcp-server-demo
cd mcp-server-demo
然后将 MCP 添加到您的项目依赖项中:
uv add "mcp[cli]"
或者,对使用 pip 安装依赖项的项目:
pip install "mcp[cli]"
运行独立的 MCP 开发工具,使用 uv 运行 mcp 命令:
uv run mcp
一、基于 Stdio 的 MCP Server
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def sum(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run(transport='stdio')
使用MCP Inspector进行测试:
uv run mcp dev server.py
运行后,输出如下,同时会自动打开一个页面:
% uv run mcp dev server.py
Starting MCP inspector...
⚙️ Proxy server listening on localhost:6277
🔑 Session token: 68095421e4aac67184654f4c9316f21d9eefaa4a3fd04d632a4e7f2695d55194
Use this token to authenticate requests or set DANGEROUSLY_OMIT_AUTH=true to disable auth
基于程序的位置调整:
Command:uv
Arguments:run server.py
效果如下:

二、基于 SSE 的 MCP Server
只要把transport改为sse即可,如:
if __name__ == "__main__":
mcp.run(transport='sse')
运行:
# uv run server.py
INFO: Started server process [99990]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
基于运行的地址调整:
Type:SSE
URL:http://127.0.0.1:8000/sse
效果如下

三、基于 Streamable HTTP 的 MCP Server
注意:在生产环境中,Streamable HTTP 正在取代服务器发送事件(SSE)传输协议。
同样的,只要把transport改为streamable-http即可,如:
if __name__ == "__main__":
mcp.run(transport='streamable-http')
运行:
% uv run server.py
INFO: Started server process [236]
INFO: Waiting for application startup.
[07/11/25 16:39:29] INFO StreamableHTTP session manager started streamable_http_manager.py:111
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
基于程序的位置调整:
Type:Streamable HTTP
URL:http://127.0.0.1:8000/mcp
效果如下:

参考:
https://github.com/modelcontextprotocol/python-sdk
https://zhuanlan.zhihu.com/p/1888176780495525558
https://github.com/liaokongVFX/MCP-Chinese-Getting-Started-Guide
