全部 MCP Server
使用FastMCP在Python中实现的模型上下文协议(MCP)服务器。MCP 协议允许语言模型以标准化的方式与外部工具和资源交互。
______________________________________________________________________
🎯 该项目做什么
O 全部 MCP Server 作为语言模型和外部系统之间的桥梁。他展示:
- 工具(Tools)LLM可以调用以执行系统操作的可执行函数(例如保存/读取数据,执行计算)。标准工具示例 :
hello,add_numbers,create_tenanteget_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-server2. 安装依赖关系
使用中 紫外线 (强烈推荐):
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):
- 构建图像:
docker build -t tutto-mcp-server .- 运行容器 (将 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专注于中央分支机构:
- 构建和推送(
build-and-push):
- 民族之路 push nas分行 develop 哦 main. - 根据仓库中的秘密对 GCP 进行身份验证 。 - 构建 Docker 映像(使用基于 GitHub 运行次数的标签)并将其发送到 Artifact Registry。
- 部署 认证
deploy-hml):
- 在分支触发器上激活 develop 哦 main. - 读取 Terraform 文件 (terraform/). - 在认证工作区中启动并运行 terraform apply.
- 生产部署(
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/______________________________________________________________________
🤝 贡献
- 创建项目分叉
- 为您的功能创建一个分支 (
git checkout -b feature/MinhaFeature) - 提交您的更改(
git commit -m 'feat: Adiciona MinhaFeature') - 推动一个分支(
git push origin feature/MinhaFeature) - Abra um Pull请求
______________________________________________________________________
📄 许可证
此项目在许可证下 麻省理工学院. 项目链接 :
