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>
18 lines
560 B
Python
18 lines
560 B
Python
"""
|
|
Gitea HTTP MCP Wrapper
|
|
|
|
This package provides an HTTP transport wrapper around the official Gitea MCP server.
|
|
It handles configuration loading, tool filtering, and HTTP authentication middleware.
|
|
|
|
Architecture:
|
|
- config/: Configuration loader module
|
|
- middleware/: HTTP authentication middleware
|
|
- filtering/: Tool filtering for Claude Desktop compatibility
|
|
- server.py: Main HTTP MCP server implementation
|
|
"""
|
|
|
|
from .server import GiteaMCPWrapper, create_app, main
|
|
|
|
__version__ = "0.1.0"
|
|
__all__ = ["__version__", "GiteaMCPWrapper", "create_app", "main"]
|