MCP服务器

Tutto MCP Server是一个基于Python和FastMCP的MCP协议实现,作为语言模型与外部系统之间的桥梁,提供工具和资源的标准化交互。

  • by leandrodpaula
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 leandrodpaula/tutto-mcp-server

使用说明

全部 MCP Server

使用FastMCP在Python中实现的模型上下文协议(MCP)服务器。MCP 协议允许语言模型以标准化的方式与外部工具和资源交互。


🎯 该项目做什么

O 全部 MCP Server 作为语言模型和外部系统之间的桥梁。他展示:

  • **工具(Tools)**LLM可以调用以执行系统操作的可执行函数(例如保存/读取数据,执行计算)。标准工具示例 : hello, add_numbers, create_tenant e get_tenant (与MongoDB的异步集成)
  • **资源(Resources)**以“文本文件或 URI”的形式暴露于模型的动态信息(例如,通过 config://server).

架构具有使用的持久性 MongoDB 通过异步驱动程序 motor.


🏗️ 项目结构

该项目采用以域为中心的模块化架构:

tutto-mcp-server/
├── src/
│   ├── core/                  # Configurações e conexão ao banco de dados (MongoDB)
│   ├── models/                # Modelos de dados e schemas de validação (Pydantic)
│   ├── repositories/          # Data Access Layer
│   ├── services/              # Lógica e regras de negócio
│   ├── mcp/                   # Camada de interface MCP (Tools e Resources)
│   └── main.py                # Ponto inicialização do FastMCP
├── terraform/                 # Infraestrutura as Code (IaC) para GCP
├── .github/workflows/         # Pipeline CI/CD (GitHub Actions)
├── tests/                     # Testes unitários do servidor e das ferramentas
├── Dockerfile                 # Configuração para empacotamento em contêiner
└── pyproject.toml             # Configuração do projeto (uv-ready)

🚀 本地安装和运行

先决条件

  • Python 3.10+
  • (推荐) uv 快速管理依赖关系。
  • MongoDB 数据库实例。

1. 克隆仓库

git clone https://github.com/leandrodpaula/tutto-mcp-server.git
cd tutto-mcp-server

2. 安装依赖关系

使用中 紫外线 (强烈推荐):

uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

使用中 点:

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

3. 环境变量

创建您的 .env 复制示例文件:

cp .env.example .env

填写所需的变量,突出显示数据库连接:

MONGODB_URL="mongodb://seu_usuario:sua_senha@localhost:27017"
MONGODB_DATABASE_NAME="tutto_db"

4. 在本地运行服务器

通过项目注入的 CLI :

tutto-mcp-server

或者使用 Python 模块:

python -m src.main

🐳 通过码头使用

应用程序可以通过包含Astral超快安装程序的Docker运行(uv):

  1. 构建图像:
    docker build -t tutto-mcp-server .
    
  2. 运行容器 (将 MONGODB_URL 替换为 docker 内可访问的连接字符串):
    docker run -p 8080:8080 -e PORT=8080 -e MONGODB_URL="mongodb://..." -e MONGODB_DATABASE_NAME="tutto_db" tutto-mcp-server
    
    注意:容器将使用适当的服务器发送事件(SSE)传输导出FastMCP到独立/云实例。

☁️ 如何在 Google Cloud (GCP) 上运行

应用程序已准备好在原生运行 无服务器 谷歌云平台(GCP)。 资源全部通过 地形 在文件夹中 /terraform/:

  • 谷歌云运行服务本身作为 Cloud Run 中的容器运行。Terraform 可自动扩展地调整实例数量、资源限制(例如 CPU/RAM)和端口映射。
  • 谷歌人工制品注册表在构建中生成的 Docker 映像是私下托管的。
  • 谷歌秘密管理员秘密,如数据库连接字符串(MONGODB_URL),在Cloud Run的分拆期间从Secret Manager中提取,而不是通过Terraform的开放变量泄露。
  • 州地形使用云存储进行记录(backend "gcs").

🔄 管道CI/CD

GitHub Actions 自动化(.github/workflows/deploy.yml专注于中央分支机构:

  1. 构建和推送(build-and-push):
    • 民族之路 push nas分行 develop 哦 main.
    • 根据仓库中的秘密对 GCP 进行身份验证 。
    • 构建 Docker 映像(使用基于 GitHub 运行次数的标签)并将其发送到 Artifact Registry。
  2. 部署 认证deploy-hml):
    • 在分支触发器上激活 develop 哦 main.
    • 读取 Terraform 文件 (terraform/).
    • 在认证工作区中启动并运行 terraform apply.
  3. 生产部署(deploy-prd):
    • 仅在 HML 之后激活,并且仅在分支中激活 main.
    • 在面向生产的工作区中运行 Terraform,并在 Google Cloud Run 中更新服务,以便在生产规模上可用。

🛠️ 开发

运行测试

整个单元测试基础设施都通过 pytest.

# Rodar todos os testes
pytest

# Obter o relatório de cobertura
pytest --cov=src

代码格式和类型

该软件包提供了必要的命令 ([dev] 依赖关系):

# Formatar com Black
black src/ tests/

# Teste estático e Linter Rápido
ruff check src/ tests/

# Type checking Estrito
mypy src/

🤝 贡献

  1. 创建项目分叉
  2. 为您的功能创建一个分支 (git checkout -b feature/MinhaFeature)
  3. 提交您的更改(git commit -m 'feat: Adiciona MinhaFeature')
  4. 推动一个分支(git push origin feature/MinhaFeature)
  5. Abra um Pull请求

📄 许可证

此项目在许可证下 麻省理工学院. 项目链接 : https://github.com/leandrodpaula/tutto-mcp-server