How alessandro-massarotti-jr/mcp-gateway works
MCP Gateway exposes infrastructure operations as MCP tools over stateless HTTP. An agent calls the HTTP endpoint; the server builds an MCP tool set, dispatches the requested operation to a configured provider, and returns a structured response. Providers cover PostgreSQL, MongoDB, RabbitMQ, Redis, and Oracle, plus a gateway health diagnostic. Shared configuration and tool-response handling support this runtime. Provider operations are summarized by subsystem; the README documents capabilities beyond the sampled implementation excerpts.
Main entry points: index.ts Runtime startup · mcp-server.ts MCP server · check-providers-status.tool.ts Provider status · PostgresProvider.ts PostgreSQL tools
Components 19
Gateway entry
- HTTP transport
src/server/http.ts - Runtime startup
src/index.ts
MCP dispatch
- MCP server
src/server/mcp-server.ts - Provider status
src/tools/check-providers-status.tool.ts
Backend providers
- PostgreSQL tools
src/providers/PostgresProvider.ts - MongoDB tools
src/providers/MongoProvider.ts - RabbitMQ tools
src/providers/RabbitMqProvider.ts - Redis tools
src/providers/RedisProvider.ts - Oracle tools
src/providers/OracleProvider.ts
Shared runtime
- Configuration
src/core/Config.ts - Tool execution
src/core/Tool.ts - Error contract
src/errors/CustomError.ts - Logging
src/core/Logger.ts
Other components
- MCP client
- PostgreSQL
- MongoDB
- RabbitMQ
- Redis
- Oracle
Connections 37
- MCP client → HTTP transport: calls endpoint
README.md - Runtime startup → Configuration: loads settings
src/index.ts - Runtime startup → HTTP transport: creates app
src/index.ts - Runtime startup → PostgreSQL tools: initializes provider
src/index.ts - Runtime startup → MongoDB tools: initializes provider
src/index.ts - Runtime startup → RabbitMQ tools: initializes provider
src/index.ts - Runtime startup → Redis tools: initializes provider
src/index.ts - Runtime startup → Oracle tools: initializes provider
src/index.ts - HTTP transport → MCP server: routes requests
src/server/http.ts - MCP server → Provider status: registers diagnostic
src/server/mcp-server.ts - MCP server → PostgreSQL tools: registers tools
src/server/mcp-server.ts - MCP server → MongoDB tools: registers tools
src/server/mcp-server.ts - MCP server → RabbitMQ tools: registers tools
src/server/mcp-server.ts - MCP server → Redis tools: registers tools
src/server/mcp-server.ts - MCP server → Oracle tools: registers tools
src/server/mcp-server.ts - Provider status → PostgreSQL tools: checks status
src/tools/check-providers-status.tool.ts - Provider status → MongoDB tools: checks status
src/tools/check-providers-status.tool.ts - Provider status → RabbitMQ tools: checks status
src/tools/check-providers-status.tool.ts - Provider status → Redis tools: checks status
src/tools/check-providers-status.tool.ts - Provider status → Oracle tools: checks status
src/tools/check-providers-status.tool.ts - PostgreSQL tools → PostgreSQL: queries database
src/providers/PostgresProvider.ts - MongoDB tools → MongoDB: operates database
README.md - RabbitMQ tools → RabbitMQ: publishes and peeks
src/providers/RabbitMqProvider.ts - Redis tools → Redis: reads and writes
README.md - Oracle tools → Oracle: executes queries
src/providers/OracleProvider.ts - PostgreSQL tools → Configuration: reads settings
src/providers/PostgresProvider.ts - MongoDB tools → Configuration: reads settings
src/providers/MongoProvider.ts - RabbitMQ tools → Configuration: reads settings
src/providers/RabbitMqProvider.ts - Redis tools → Configuration: reads settings
src/providers/RedisProvider.ts - Oracle tools → Configuration: reads settings
src/providers/OracleProvider.ts - PostgreSQL tools → Tool execution: defines operations
src/providers/PostgresProvider.ts - MongoDB tools → Tool execution: defines operations
src/providers/MongoProvider.ts - RabbitMQ tools → Tool execution: defines operations
src/providers/RabbitMqProvider.ts - Redis tools → Tool execution: defines operations
src/providers/RedisProvider.ts - Oracle tools → Tool execution: defines operations
src/providers/OracleProvider.ts - Tool execution → Error contract: maps exceptions
src/core/Tool.ts - Runtime startup → Logging: initializes logger
src/index.ts