MCP协议服务器

一个基于Python的MCP协议服务器,用于提供示例工具和参考实现,支持快速创建和发布新的MCP服务器。

  • by jon-salazar
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 DioniSilva/mcp-servers

使用说明

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.

  1. 在 PyPI 中,为服务器项目创建 Trusted Publisher
  • 项目名称:例如: mcp-example-server
  • 提供者:GitHub
  • 存储库: <owner>/<repo> (monorepo)
  • 工作流文件名: .github/workflows/publish-mcp-example.yml
  • 环境:(操作)
  1. 在 GitHub 上,Workflow permissions: id-token: write此 monorepo 将工作流程保持在 mcp-servers/.github/workflows/publish-*.yml如果您希望在仓库中自动运行,您可以将此文件复制到 root .github/workflows/.

  2. 版本和标签

  • 选项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).
    • 在推送标签时,工作流程会编译和发布包。
  1. 多个服务器
  • 复制 mcp-servers/.github/workflows/publish-mcp-example.yml 并设置每个新服务器的路径/标签。
  • 此外,在 PyPI 中为每个软件包创建 Trusted Publisher 条目。
  1. 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: name e入口点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。