# Gitea MCP Server A lightweight Model Context Protocol (MCP) server for Gitea, following the **Hybrid MCP Light** pattern. ## Features - **5 Curated Tools** for common operations - **API Pass-through** for complete API coverage - **Embedded API Reference** for agent self-service - **Health Check Endpoint** for Docker/Kubernetes ## Tools | Tool | Description | |:-----|:------------| | `get_my_user_info` | Get authenticated user info | | `search_repos` | Search repositories by keyword | | `list_my_repos` | List user's accessible repositories | | `get_repo` | Get repository details | | `list_repo_issues` | List issues for a repository | | `list_repo_commits` | List commits for a repository | | `gitea_api_call` | Raw API pass-through for any endpoint | ## Resources | Resource URI | Description | |:-------------|:------------| | `gitea://api-reference` | Quick reference for common API endpoints | ## Setup ### Environment Variables ```bash GITEA_URL=https://gitea.example.com GITEA_TOKEN=your_access_token ``` ### Local Development ```bash # Install dependencies uv pip install -e . # Run server python server.py ``` ### Docker ```bash # Build and run docker compose up -d # Check health curl http://localhost:8000/health ``` ## MCP Client Configuration ### Gemini CLI (`~/.gemini/settings.json`) ```json { "mcpServers": { "gitea": { "url": "http://localhost:8000/mcp" } } } ``` ## API Pass-through Examples ```python # Create a release gitea_api_call( endpoint="/repos/myorg/myrepo/releases", method="POST", body='{"tag_name": "v1.0.0", "name": "Release 1.0"}' ) # Get file contents gitea_api_call( endpoint="/repos/myorg/myrepo/contents/README.md", params='{"ref": "main"}' ) ``` ## License MIT