使用 FastMCP 在 Python 中构建 MCP 服务器,在本地进行验证,将其安装到 MCP 客户端,并作为 HTTP 端点进行部署。

当任务涉及以下内容时,使用此技能:
当服务器已存在且仅需连接到 Hermes 时,请使用 native-mcp。如果目标是临时通过 CLI 访问现有 MCP 服务器,而不是构建新服务器,请使用 mcporter。
首先在工作环境中安装 FastMCP:
pip install fastmcpfastmcp version
对于 API 模板,如果尚未安装 httpx,请进行安装:
pip install httpxtemplates/api_wrapper.py - 支持认证标头的 REST API 封装器templates/database_server.py - 只读 SQLite 查询服务器templates/file_processor.py - 文本文件检查和搜索服务器scripts/scaffold_fastmcp.py - 复制起始模板并替换服务器名称占位符references/fastmcp-cli.md - FastMCP CLI 工作流、安装目标和部署检查首先选择最狭窄且有价值的交互面:
宁可选一个命名良好、文档字符串清晰、模式规范的简洁服务器,也不要一个工具定义模糊的大型服务器。
直接复制模板或使用脚手架辅助工具:
python ~/.hermes/skills/mcp/fastmcp/scripts/scaffold_fastmcp.py \--template api_wrapper \--name "Acme API" \--output ./acme_server.py
可用的模板:
python ~/.hermes/skills/mcp/fastmcp/scripts/scaffold_fastmcp.py --list如果手动复制,请将 __SERVER_NAME__ 替换为实际的服务器名称。
在添加资源或提示之前,先使用 @mcp.tool 函数开始。
工具设计规则:
良好的工具示例:
get_customersearch_ticketsdescribe_tablesummarize_text_file
较差的工具示例:
runprocessdo_thing
当客户端需要获取稳定的只读内容(如模式、策略文档或生成的报告)时,添加 @mcp.resource。
当服务器应为已知工作流提供可重用的提示模板时,添加 @mcp.prompt。
不要将每个文档都变成提示。应优先考虑:
使用 FastMCP CLI 进行本地验证:
fastmcp inspect acme_server.py:mcpfastmcp list acme_server.py --jsonfastmcp call acme_server.py search_resources query=router limit=5 --json
对于快速的迭代调试,请在本地运行服务器:
fastmcp run acme_server.py:mcp在本地测试 HTTP 传输:
fastmcp run acme_server.py:mcp --transport http --host 127.0.0.1 --port 8000fastmcp list http://127.0.0.1:8000/mcp --jsonfastmcp call http://127.0.0.1:8000/mcp search_resources query=router --json
在声称服务器可以工作之前,始终对每个新工具至少运行一次真实的 fastmcp call。
FastMCP 可以将服务器注册到受支持的 MCP 客户端:
fastmcp install claude-code acme_server.pyfastmcp install claude-desktop acme_server.pyfastmcp install cursor acme_server.py -e .
使用 fastmcp discover 检查机器上已配置的命名 MCP 服务器。
当目标是集成到 Hermes 时,请执行以下任一操作:
native-mcp 技能在 ~/.hermes/config.yaml 中配置服务器,或对于托管服务,Prefect Horizon 是 FastMCP 文档中最直接提及的路径。部署前:
fastmcp inspect acme_server.py:mcp确保仓库包含:
requirements.txt 或 pyproject.toml对于通用 HTTP 托管,先在本地验证 HTTP 传输,然后在任何能够暴露服务器端口的 Python 兼容平台上进行部署。
当需要将 REST 或 HTTP API 暴露为 MCP 工具时使用。
推荐的首个切片:
实现说明:
从 templates/api_wrapper.py 开始。
当需要暴露安全的查询和检查功能时使用。
推荐的首个切片:
list_tablesdescribe_table实现说明:
SELECT 的 SQL从 templates/database_server.py 开始。
当服务器需要按需检查或转换文件时使用。
推荐的首个切片:
实现说明:
从 templates/file_processor.py 开始。
在交付 FastMCP 服务器之前,请验证以下所有内容:
fastmcp inspect <file.py:mcp> 执行成功fastmcp list <server spec> --json 执行成功fastmcp call在活动环境中安装该包:
pip install fastmcpfastmcp version
fastmcp inspect失败检查:
<file.py:object> 中命名正确运行:
fastmcp list server.py --jsonfastmcp call server.py your_tool_name --json
这通常能暴露命名不匹配、缺少必需参数或无法序列化的返回值等问题。
服务器构建部分可能正确,但 Hermes 配置有误。加载 native-mcp 技能,在 ~/.hermes/config.yaml 中配置服务器,然后重启 Hermes。
有关 CLI 详细信息、安装目标和部署检查,请阅读 references/fastmcp-cli.md。
请在微信客户端打开
安装命令
npx skills add https://github.com/nousresearch/hermes-agent --skill fastmcpGithub地址
https://github.com/nousresearch/hermes-agent
更多技能>>>
find-skills 技能搜索工具 - 让AI更智能的skill
Skills之Claude API 使用技能:Python/TypeScript SDK 安装、模型选择与工具调用教程
Skills之Python PDF处理技能:合并拆分、文本提取、表格解析与PDF创建教程
Skills之Scrapling:Python网络爬虫框架,支持反机器人绕过、JS渲染和Cloudflare保护网站抓取 GitHub Stars 13.9万+
Skills之AI SEO优化指南:让内容被元宝,百度,ChatGPT、Google AI概览等AI系统引用为来源 GitHub Stars 2.7万+
Skills之Laravel TDD 测试驱动开发指南:PHPUnit 与 Pest 实现 80% 以上测试覆盖率 GitHub Stars 17.8万+
Skills之UI/UX Pro Max 前端设计技能:50+样式、97调色板、57字体配对、99条UX规则,前端设计降AI率 GitHub Stars 7.4万+
