news 2026/9/4 13:15:23

FastMCP 安装实战:一个最小可运行的 MCP 服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FastMCP 安装实战:一个最小可运行的 MCP 服务器

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 version

fastmcp 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.jsonfull_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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 13:14:25

4GB 显存跑通 Qwen1.5-4B:llama.cpp 本地部署实测笔记

4GB 显存跑通 Qwen1.5-4B:llama.cpp 本地部署实测笔记 【免费下载链接】Qwen1.5 Qwen3 is the large language model series developed by Qwen team, Alibaba Cloud. 项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen1.5 想在 4GB 显存的笔记本上跑 …

作者头像 李华
网站建设 2026/9/4 13:13:15

深入理解C++ 模板<六> 模板模板参数

模板模板参数(Template Template Parameter),简单说就是:让模板参数本身也是一个模板。通常情况下,我们传的是类型(如 int)或常量值(如 10)。而模板模板参数允许你传入一…

作者头像 李华
网站建设 2026/9/4 13:11:57

STM32F103驱动ICM20948九轴传感器:DMP移植与姿态解算实战

简介:本资源是一套专为STM32F103微控制器适配ICM20948九轴传感器的完整DMP驱动库,面向嵌入式初学者、智能硬件开发者及运动感知类项目实践者,解决在Cortex-M3平台高效调用ICM20948内置数字运动处理器(DMP)的技术门槛问…

作者头像 李华
网站建设 2026/9/4 13:11:54

Czkawka 重复文件清理实战:零上传扫出硬盘里的 20 GB 冗余

Czkawka 重复文件清理实战:零上传扫出硬盘里的 20 GB 冗余 【免费下载链接】czkawka Multi functional app to find duplicates, empty folders, similar images etc. 项目地址: https://gitcode.com/GitHub_Trending/cz/czkawka Czkawka 是一款用 Rust 编写…

作者头像 李华
网站建设 2026/9/4 13:10:56

Element Plus 上手指南:Vue 3 企业级组件库的 80+ 组件怎么用

Element Plus 上手指南:Vue 3 企业级组件库的 80 组件怎么用 【免费下载链接】element-plus 🎉 A Vue.js 3 UI Library made by Element team 项目地址: https://gitcode.com/GitHub_Trending/el/element-plus 做 Vue 3 后台项目,最耗…

作者头像 李华
网站建设 2026/9/4 13:10:54

Agno Workflow 工作流编排实战:条件分支与并行速查

Agno Workflow 工作流编排实战:条件分支与并行速查 【免费下载链接】agno Build, run, and manage agent platforms. 项目地址: https://gitcode.com/GitHub_Trending/ag/agno 假设一条内容要经过采集、摘要、事实核查、写作、审阅。手写 if-else 链路&#…

作者头像 李华