Описание
Tutto — Model Context Protocol server
README
Um servidor MCP (Model Context Protocol) implementado em Python usando FastMCP. O protocolo MCP permite que modelos de linguagem interajam com ferramentas e recursos externos de forma padronizada.
🎯 O que o projeto faz
O Tutto MCP Server atua como uma ponte entre modelos de linguagem e sistemas externos. Ele expõe:
- Tools (Ferramentas): Funções executáveis que o LLM pode chamar para realizar ações no sistema (ex: salvar/ler dados, realizar cálculos). Exemplo das ferramentas padrão:
hello,add_numbers,create_tenanteget_tenant(com integração assíncrona com MongoDB). - Resources (Recursos): Informações dinâmicas expostas ao modelo na forma de "arquivos textuais ou URIs" (ex: configuração via
config://server).
A arquitetura possui persistência usando MongoDB via driver assíncrono motor.
🏗️ Estrutura do Projeto
O projeto adota uma arquitetura modular focada no domínio:
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)
🚀 Instalação e Execução Local
Pré-requisitos
- Python 3.10+
- (Recomendado)
uvpara gestão rápida de dependências. - Uma instância do banco de dados MongoDB.
1. Clonando o repositório
git clone https://github.com/leandrodpaula/tutto-mcp-server.git
cd tutto-mcp-server
2. Instalando as Dependências
Usando uv (fortemente recomendado):
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"
Usando pip:
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
3. Variáveis de Ambiente
Crie seu .env copiando o arquivo de exemplo:
cp .env.example .env
Preencha as variáveis exigidas, com destaque para a conexão do banco de dados:
MONGODB_URL="mongodb://seu_usuario:sua_senha@localhost:27017"
MONGODB_DATABASE_NAME="tutto_db"
4. Executando o Servidor Localmente
Através da CLI injetada pelo projeto:
tutto-mcp-server
Ou usando módulo Python:
python -m src.main
🐳 Uso via Docker
A aplicação pode rodar através do Docker contendo o instalador super rápido da Astral (uv):
- Build da Imagem:
docker build -t tutto-mcp-server . - Executar o Contêiner (substituindo o MONGODB_URL com uma connection string acessível de dentro do docker):
Nota: O container exportará o FastMCP usando o transporte SSE (Server-Sent Events) apropriado para instâncias stand-alone / cloud.docker run -p 8080:8080 -e PORT=8080 -e MONGODB_URL="mongodb://..." -e MONGODB_DATABASE_NAME="tutto_db" tutto-mcp-server
☁️ Como roda no Google Cloud (GCP)
A aplicação é preparada para rodar nativamente em Serverless na Google Cloud Platform (GCP).
Os recursos são totalmente provisionados via Terraform presente na pasta /terraform/:
- Google Cloud Run: O serviço em si é executado como um contêiner no Cloud Run. O Terraform ajusta o número de instâncias, os limites de recursos (ex: CPU/RAM) e mapeamentos de portas de forma autoescalável.
- Google Artifact Registry: As imagens Docker geradas nos builds são hospedadas de forma privada nele.
- Google Secret Manager: Segredos, como a string de conexão do Banco de Dados (
MONGODB_URL), são extraídos do Secret Manager durante o spin-up do Cloud Run, em vez de vazarem por meio de variáveis abertas do Terraform. - State do Terraform: Fica gravado utilizando Cloud Storage (
backend "gcs").
🔄 Pipeline CI/CD
O projeto conta com automação via GitHub Actions (.github/workflows/deploy.yml) focada em branches centrais:
- Build & Push (
build-and-push):- Acionado via
pushnas branchesdevelopoumain. - Autentica no GCP a partir de secrets no repositório.
- Faz o build da imagem Docker (usando a tag baseada no número de execuções GitHub) e envia para o Artifact Registry.
- Acionado via
- Deploy Homologação (
deploy-hml):- Acionado no trigger da branch
developoumain. - Lê os arquivos do Terraform (
terraform/). - Inicializa no workspace de Homologação e executa o
terraform apply.
- Acionado no trigger da branch
- Deploy Produção (
deploy-prd):- Acionado apenas após o HML e exclusivamente na branch
main. - Roda o Terraform no workspace apontado para Produção e atualiza o serviço no Google Cloud Run que ficará disponível em escala produtiva.
- Acionado apenas após o HML e exclusivamente na branch
🛠️ Desenvolvimento
Executando Testes
Toda a infraestrutura de testes unitários foi organizada e isolada via pytest.
# Rodar todos os testes
pytest
# Obter o relatório de cobertura
pytest --cov=src
Formatação de Código e Typings
O pacote disponibiliza comandos essenciais ([dev] dependencies):
# Formatar com Black
black src/ tests/
# Teste estático e Linter Rápido
ruff check src/ tests/
# Type checking Estrito
mypy src/
🤝 Contribuindo
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'feat: Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
📄 Licença
Este projeto está sob a licença MIT. Link do Projeto: https://github.com/leandrodpaula/tutto-mcp-server
Установка Tutto
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/leandrodpaula/tutto-mcp-serverFAQ
Tutto MCP бесплатный?
Да, Tutto MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Tutto?
Нет, Tutto работает без API-ключей и переменных окружения.
Tutto — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Tutto в Claude Desktop, Claude Code или Cursor?
Открой Tutto на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectAmap Maps Mcp Server
MCP server for using the AMap Maps API
автор: duxiaohuiSupabase
Database, auth and storage
автор: SupabaseEverything
Reference / test server with prompts, resources, and tools.
Git
Tools to read, search, and manipulate Git repositories.
Sequential Thinking
Dynamic and reflective problem-solving through thought sequences.
Time
Time and timezone conversion capabilities.
Compare Tutto with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
