Files
gitea-mcp-remote/src/gitea_http_wrapper/__init__.py
lmiranda 3d1fd2e2a6 Implement core HTTP MCP server
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>
2026-02-03 16:55:49 -05:00

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"]