模块化MCP服务器

FastMcp是一个模块化、安全且可扩展的MCP服务器,提供多种工具和功能,适用于开发和安全运行环境。

  • by kekurttel
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 kekurttel/FastMcp

使用说明

NGROK IS SET TO ON MODE IS 在发布部分

FastMcp

FastMcp是一个模块化、安全且可扩展的MCP服务器,具有干净的CLI。

特性

  • 33种分类工具(系统、身份验证、文件系统、数据库、运行时、git、http、云、ai、内存、工作流、可观察性、安全性、转换、搜索、消息传递、秘密)
  • JSON模式验证工具I/O
  • 基于角色的授权(RBAC)
  • 每个工具的速率限制和超时
  • 审计日志+结构化日志+指标
  • 命令/代码执行的运行时沙盒限制
  • 通过Gradio实现MCP兼容端点(/gradio_api/mcp/ 和 /gradio_api/mcp/sse)

快速开始

./install_and_run.sh

脚本创建/使用 .venv,悄悄安装依赖项,然后启动 fastmcp run.

命令行界面

python -m fastmcp run --ngrok off
python -m fastmcp run --host 127.0.0.1 --ngrok on
python -m fastmcp doctor
python -m fastmcp tools
python -m fastmcp tools --format json

安装软件包后:

fastmcp run --ngrok off

认证

从env设置角色令牌(推荐):

export MCP_AUTH_TOKENS_JSON='{"admin":"change-me-admin-token","operator":"change-me-operator-token","reader":"change-me-reader-token"}'

然后通过 _auth 在工具有效载荷中:

{
  "_auth": {
    "role": "admin",
    "auth_token": "change-me-admin-token"
  }
}

如果 MCP_AUTH_TOKENS_JSON 如果未设置,FastMcp将退回开发令牌供本地使用。

环境变量

  • MCP_HOST (默认值: 127.0.0.1)
  • MCP_PORT (默认值: 7860)
  • MCP_WORKSPACE (默认值: ./workspace)
  • MCP_AUTH_TOKENS_JSON (角色令牌映射)
  • NGROK_MODE (默认值: off,值: off|auto|on)
  • FASTMCP_VERBOSE_LOGS=1 将结构化日志打印到stdout

看 SECURITY.md 用于部署检查表。

发展

source .venv/bin/activate
python -m pip install -e .[dev]
python -m pytest -q

许可证

麻省理工学院