使用说明
Ferramentas MCP(模型上下文协议)
用Python编写的MCP服务器的存储库。我们只保留一个通用示例服务器作为打包和运行参考。
结构
servers/example最小两个工具的 MCP 服务器 (echo,time_now)AGENTS.md: 贡献指南Makefile:install,test,lint,fmt,codex-config
需求
- Python 3.10+
- SDK MCP:
pip install mcp(通过安装make install也)
示例服务器
安装和运行:
cd servers/example
pip install -e .
python -m example_server.main
# ou via entry point
mcp-example
配置程序无Codex(~/.Codex/config.toml):
make codex-config NAME=example
创建/更新 [mcp_servers.example] 使用 command/args/cwd/env。
使用 MCP Inspector 检查( UV)
您可以使用 MCP SDK CLI 使用交互式检查器上传服务器并测试工具。
要求:之三 mcp 已安装(作为依赖)和 uv 配置。
示例(包装在 servers/example)
- 打开检查器 :
cd servers/example uv run mcp dev src/example_server/main.py:server
注释
- 模式
dev如有必要,临时安装依赖关系并打开检查器。 - 在没有 STDIN (CI) 的环境中,该过程可能会立即关闭,这是正常的。
测试和质量
make install # instala todos os servidores em modo editable com deps de dev
make test # roda pytest em servers/
make lint # ruff + black --check
make fmt # ruff format + black
PyPI Trusted Publishers(可信发布商)
通过 OIDC(推荐)按照 PyPI > Account > Publishing 进行配置。工作流程存在于 mcp-servers/.github/workflows neste monorepo。
完整指南:见 PUBLISHING.md.
- 在 PyPI 中,为服务器项目创建 Trusted Publisher
- 项目名称:例如:
mcp-example-server - 提供者:GitHub
- 存储库:
<owner>/<repo>(monorepo) - 工作流文件名:
.github/workflows/publish-mcp-example.yml - 环境:(操作)
-
在 GitHub 上,Workflow
permissions: id-token: write此 monorepo 将工作流程保持在mcp-servers/.github/workflows/publish-*.yml如果您希望在仓库中自动运行,您可以将此文件复制到 root.github/workflows/. -
版本和标签
- 选项A(推荐):使用发布助手
# bump patch/minor/major make release NAME=example PART=patch # ou defina explicitamente a versão make release NAME=example VERSION=0.1.4 # depois envie a tag criada para o remoto git push origin example-v0.1.4 - 选项 B(手动):
- 临时化
servers/example/pyproject.toml(project.version). - 按照模式创建标签 :
example-v<versão>(例如:example-v0.1.0). - 在推送标签时,工作流程会编译和发布包。
- 临时化
- 多个服务器
- 复制
mcp-servers/.github/workflows/publish-mcp-example.yml并设置每个新服务器的路径/标签。 - 此外,在 PyPI 中为每个软件包创建 Trusted Publisher 条目。
- TestPyPI( 可选)
- 您可以重复工作流程并使用
repository-url: https://test.pypi.org/legacy/在发布步骤中,将 Trusted Publisher 设置为test.pypi.org.
创建新服务器
- 自动(推荐):良好
make server NAME=meu-servidor DESCRIPTION="desc opcional" AUTHOR="nome opcional"servers/<NAME>派对servers/_template设置包/入口点并从服务器创建 README。 - 手动:复印机
servers/example段落servers/<NAME>和调整:pyproject.toml:namee入口点em[project.scripts]- 包装在
src/<nome_do_pacote>/
- 注册商编号Codex:
make codex-config NAME=<NAME>
良好做法
- 每个服务器一个包;没有交叉依赖关系
- 带小工具
input_schema文本和JSON响应 - Git 之外的秘密使用
.env(被忽略) e~/.codex/config.toml - env 可配置的速率限制和超时
—
查询 AGENTS.md 对于样式约定,提交和PR。
