MCP Context Forge é um gateway de Protocolo de Contexto de Modelo (MCP) rico em recursos, impulsionado por FastAPI e de código aberto da IBM, que unifica e federa ferramentas, recursos, prompts, servidores e gateways pares, encapsulando qualquer API REST como uma ferramenta ou servidor virtual compatível com MCP. O projeto suporta a exposição de todas as funcionalidades através de protocolos de transporte HTTP/JSON-RPC, WebSocket, Server-Sent Events (SSE) e stdio, e oferece uma rica UI de gerenciamento interativa, empacotada como um contêiner, suportando qualquer banco de dados suportado pelo SQLAlchemy.
O projeto adota um design de arquitetura modular:
┌─────────────────┐ ┌──────────────────┐
│ 🖥️ Admin UI │ │ 🔐 Autenticação e Autorização │
│ Interface de Gerenciamento │ │ JWT + Basic │
└─────────────────┘ └──────────────────┘
│ │
└────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 🚪 Núcleo do Gateway MCP │
│ Inicialização do Protocolo Ping Concluída │
│ Gerenciador de Federação │
│ Protocolos de Transporte HTTP WS SSE Stdio │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ Camada de Serviço │
│ 🧰 Serviço de Ferramentas 📁 Serviço de Recursos │
│ 📝 Serviço de Prompts 🧩 Serviço de Servidores │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ Camada de Persistência │
│ 💾 Banco de Dados SQLAlchemy │
│ ⚡ Cache Redis/Memory │
└───────────────────────────────┘
/health
e decorador de métricas de latência# Configuração básica da aplicação
APP_NAME=MCP Gateway
HOST=0.0.0.0
PORT=4444
DATABASE_URL=sqlite:///./mcp.db
APP_ROOT_PATH=/gateway # Prefixo de subcaminho opcional
# Autenticação Basic (Interface de Gerenciamento e API)
BASIC_AUTH_USER=admin
BASIC_AUTH_PASSWORD=changeme
# Configuração JWT
JWT_SECRET_KEY=my-test-key
JWT_ALGORITHM=HS256
TOKEN_EXPIRY=10080 # Minutos
# Controle de Autenticação
AUTH_REQUIRED=true
AUTH_ENCRYPTION_SECRET=my-test-salt
# Funcionalidade de Federação
FEDERATION_ENABLED=true
FEDERATION_DISCOVERY=false
FEDERATION_PEERS=["http://peer1:4444","http://peer2:4444"]
FEDERATION_TIMEOUT=30
FEDERATION_SYNC_INTERVAL=300
docker run -d --name mcpgateway \
-p 4444:4444 \
-e HOST=0.0.0.0 \
-e JWT_SECRET_KEY=my-secret-key \
-e BASIC_AUTH_USER=admin \
-e BASIC_AUTH_PASSWORD=changeme \
-e AUTH_REQUIRED=true \
-e DATABASE_URL=sqlite:///./mcp.db \
ghcr.io/ibm/mcp-context-forge:latest
# Crie um ambiente virtual e instale as dependências
make venv install serve
# Ou instale manualmente
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn mcpgateway.main:app --host 0.0.0.0 --port 4444
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 10080 --secret my-test-key)
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"protocol_version":"2025-03-26",
"capabilities":{},
"client_info":{"name":"MyClient","version":"1.0.0"}
}' \
http://localhost:4444/protocol/initialize
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"clock_tool",
"url":"http://localhost:9000/rpc",
"description":"Retorna a hora atual",
"input_schema":{
"type":"object",
"properties":{"timezone":{"type":"string"}},
"required":[]
}
}' \
http://localhost:4444/tools
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"greet",
"template":"Olá, {{ user }}!",
"argument_schema":{
"type":"object",
"properties":{"user":{"type":"string"}},
"required":["user"]
}
}' \
http://localhost:4444/prompts
O projeto oferece suporte completo à implantação no IBM Cloud Code Engine:
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default
IBMCLOUD_PROJECT=my-codeengine-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway
IBMCLOUD_IMAGE_NAME=us.icr.io/myspace/mcpgateway:latest
IBMCLOUD_API_KEY=your_api_key_here
make ibmcloud-check-env # Verifica as variáveis de ambiente
make ibmcloud-cli-install # Instala o IBM Cloud CLI
make ibmcloud-login # Faz login no IBM Cloud
make ibmcloud-ce-login # Seleciona o projeto Code Engine
make ibmcloud-tag # Marca a imagem do contêiner
make ibmcloud-push # Envia para o IBM Container Registry
make ibmcloud-deploy # Implanta no Code Engine
mcpgateway/
├── admin.py # Rotas FastAPI e controlador da UI de gerenciamento
├── cache/
│ └── resource_cache.py # Cache LRU+TTL na memória para recursos
├── config.py # Carregador de configurações Pydantic
├── db.py # Modelos SQLAlchemy ORM e configuração do banco de dados
├── federation/
│ ├── discovery.py # Descoberta de gateway par
│ ├── forward.py # Lógica de encaminhamento RPC
│ └── manager.py # Coordenação de federação e verificação de saúde
├── handlers/
│ └── sampling.py # Manipulador de requisições de amostragem de fluxo MCP
├── services/
│ ├── completion_service.py # Lógica de conclusão de parâmetros de prompt e recurso
│ ├── gateway_service.py # Registro e gerenciamento de gateway par
│ ├── prompt_service.py # CRUD e renderização de templates de prompt
│ ├── resource_service.py # Registro, recuperação, assinatura de recursos
│ ├── server_service.py # Registro de servidor e monitoramento de saúde
│ └── tool_service.py # Registro, invocação, métricas de ferramentas
├── transports/
│ ├── sse_transport.py # Transporte de Server-Sent Events
│ ├── stdio_transport.py # Transporte stdio
│ └── websocket_transport.py # Transporte WebSocket
└── utils/
├── create_jwt_token.py # Ferramenta de geração e verificação de JWT
└── verify_credentials.py # Dependência de autenticação FastAPI
# Instale as dependências de desenvolvimento
make install-dev
# Execute a verificação de código
make lint
# Execute os testes
make test
# Execute os testes de cobertura
make coverage
O projeto integra várias ferramentas de qualidade de código:
MCP Context Forge é uma solução de gateway de protocolo de contexto de modelo completa e pronta para produção, especialmente adequada para as necessidades de integração e gerenciamento de ferramentas de aplicações LLM de nível empresarial. Ele não apenas implementa a funcionalidade completa do protocolo MCP, mas também fornece ricas funcionalidades de extensão, como descoberta de federação, conversão de protocolo, serviços virtualizados, etc., tornando-o um componente de infraestrutura ideal para construir ecossistemas complexos de aplicações de IA.