# Windows
docker compose -f docker-compose.yml -f docker-compose.mcp-gateway.yml up -d
# Linux/Mac
docker compose -f docker-compose.yml -f docker-compose.mcp-gateway.yml up -ddocker compose ps | findstr mcp
# OR
docker compose ps -f name=mcp# Discover available tools
# If gateway auth is disabled in your setup, you can omit the Authorization header.
curl -H "Authorization: Bearer agent-key-001" http://localhost:8820/tools/discover
# Call a tool
curl -X POST \
-H "Authorization: Bearer agent-key-001" \
-H "Content-Type: application/json" \
-d '{"tool":"github:list_repos","params":{"owner":"welshDog"}}' \
http://localhost:8820/tools/callfrom shared.mcp_client import MCPClient
async def my_agent():
client = MCPClient()
# GitHub
repos = await client.github.list_repos(owner="welshDog")
# Database
agents = await client.postgres.execute_query("SELECT * FROM agents")
# Search
docs = await client.vectordb.search("HyperCode architecture", limit=5)
await client.close()- mcp-gateway: Central auth + rate limiting for tool access
- model-runner: Local LLM server (phi3 by default)
- mcp-github: Repo operations
- mcp-postgres: Database queries
- mcp-filesystem: Safe file access
- mcp-vectordb: RAG / similarity search
Edit .env.mcp or append to .env:
MCP_GATEWAY_API_KEY=your-secure-key
GITHUB_TOKEN=ghp_your_token
GPU_ENABLED=false
MODEL_RUNNER_DEFAULT_MODEL=phi3:3.8b-mini-instruct-4k-q4_K_MEdit docker-compose.yml:
backend-specialist:
environment:
- MCP_GATEWAY_URL=http://mcp-gateway:8820
- MCP_GATEWAY_API_KEY=${MCP_GATEWAY_API_KEY}
- LLM_ENDPOINT=http://model-runner:11434Then use MCP client in agent code (see above).
Full guide: docs/MCP_GATEWAY_OPERATIONAL_GUIDE.md
Gateway down?
docker logs mcp-gatewayModel won't start?
docker logs model-runnerCan't connect?
docker exec mcp-gateway wget -qO- http://localhost:8820/health