generated from personal-projects/leo-claude-mktplace
This commit implements the main HTTP server that wraps the Gitea MCP server with HTTP transport. Architecture: - GiteaMCPWrapper class manages subprocess communication with Gitea MCP - Starlette ASGI application for HTTP endpoints - JSON-RPC protocol bridge between HTTP and stdio transport Features: - Subprocess management: Starts/stops Gitea MCP server with proper env vars - HTTP endpoints: - POST /tools/list - List available tools (with filtering) - POST /tools/call - Execute a tool - GET /health, /healthz, /ping - Health checks - JSON-RPC communication via stdin/stdout pipes - Tool filtering integration (blocks filtered tools at call time) - Comprehensive error handling and logging - Graceful startup/shutdown lifecycle Integration: - Uses GiteaSettings from config module (#11) - Uses ToolFilter from filtering module (#12) - Uses BearerAuthMiddleware and HealthCheckBypassMiddleware (#13) - Passes Gitea config to wrapped MCP server via environment Entry points: - main() function for CLI execution - create_app() factory for testing and custom configurations - gitea-http-wrapper console script (defined in pyproject.toml) This server can now be deployed in Docker (#15) and tested (#17). Closes #14 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
8.8 KiB
8.8 KiB