FastMCP 安装实战:一个最小可运行的 MCP 服务器
【免费下载链接】fastmcp🚀 The fast, Pythonic way to build MCP servers and clients.项目地址: https://gitcode.com/GitHub_Trending/fa/fastmcp
FastMCP 是构建 MCP(Model Context Protocol)服务器与客户端的 Python 框架。本文按 FastMCP 新手教程的思路,围绕一个最小可运行服务器走完 FastMCP 安装全流程:先让服务跑起来,再读懂代码,最后讲配置与排错。
FastMCP 是什么:把 Python 函数变成 MCP 服务器
FastMCP 把普通的 Python 函数包装成符合 MCP 协议的工具(tool)、资源(resource)与提示(prompt),暴露给 LLM 客户端。函数签名和 docstring 会直接变成接口 schema,参数校验和文档自动完成。它适合两类读者:想给 AI 应用做一个小而可用的 MCP 服务器的场景,以及熟悉 Python 但不熟协议细节的开发者。
让服务先跑起来:最小安装与启动
从零搭建到第一次服务,完整路径只有两条命令。合并环境检查与安装(需要 Python 3.10+):
python --version && pip install fastmcp && fastmcp versionfastmcp version能打印版本号,安装就算成功。再写一个最小服务器server.py:
from fastmcp import FastMCP mcp = FastMCP("My Server") @mcp.tool def greet(name: str) -> str: """返回问候语""" return f"Hello, {name}!" if __name__ == "__main__": mcp.run(transport="http", port=8000)运行python server.py,服务即在 8000 端口开始监听。用 CLI 也等价:fastmcp run server.py:mcp,它会直接导入服务器对象,不执行__main__块。默认传输是 stdio,适合"客户端把服务器当子进程启动"的本地场景;改成 http 后它就是可远程访问的服务。
读懂最小代码:工具、资源与运行入口
这 12 行里,每一段都有明确分工:
FastMCP("My Server")创建服务器实例,名字即客户端看到的服务器标识。@mcp.tool把函数变成"工具",类似一个可被调用的 API 端点。LLM 根据 docstring 和参数类型决定何时调用、带什么参数——docstring 就是接口文档。- 资源是让 LLM 读"文档"的组件,比如文件内容、系统状态;需要动态数据时,让资源函数去读文件系统或数据库即可。
mcp.run(transport="http", port=8000)是运行入口:启动传输并阻塞,管理连接生命周期直到停止。放在__main__下,让文件既能当脚本跑、也能被导入复用。
从能跑到好用:MCP 服务器配置、认证与日志
服务跑起来后,MCP 服务器配置有三个方向让它更好用:
- 配置管理:入口、依赖、传输、端口都可以写进一个
fastmcp.json。仓库里有现成示例:examples/fastmcp_config/simple.fastmcp.json与full_example.fastmcp.json。 - 认证与安全:服务对外暴露前先加认证。FastMCP 提供令牌校验、OAuth 服务器、OIDC 代理等能力,见 认证文档。
- 日志:HTTP 部署时可在配置中设置
log_level,方便追踪请求。
不工作时怎么排查 & 接下来看哪里
不工作时先对照这张表:
| 现象 | 可能原因 | 处理方式 |
|---|---|---|
ModuleNotFoundError | 当前虚拟环境没装包 | 在正确的 venv 里重装 |
| 端口被占用 | 8000 已被其他进程使用 | 修改mcp.run的端口 |
| 客户端连不上 | 传输方式不匹配 | 本地用 stdio,远程用 http |
| LLM 找不到工具 | docstring 缺失或不清晰 | 写明工具用途与输入输出 |
继续深入有两个方向:读 快速入门 学会写一个客户端调用自己的服务器;或直接看fastmcp_slim/fastmcp/server/下的源码结构,理解协议如何落地。
把客户端连上服务器的那一刻,第一个 MCP 项目就成立了。
【免费下载链接】fastmcp🚀 The fast, Pythonic way to build MCP servers and clients.项目地址: https://gitcode.com/GitHub_Trending/fa/fastmcp
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考