All checks were successful
Build and Push Gitea MCP Docker Image / build (push) Successful in 17s
The gitea_api_call tool was failing when MCP clients passed JSON objects for the body or params parameters. The issue was that the tool signature only accepted string types, but MCP frameworks parse JSON strings into dicts before passing them to the tool. This fix updates the function signature to accept Union[str, dict] for both params and body parameters, and handles both cases appropriately. Fixes #1
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
GITEA_URL=https://gitea.example.com
GITEA_TOKEN=your_access_token
Local Development
# Install dependencies
uv pip install -e .
# Run server
python server.py
Docker
# Build and run
docker compose up -d
# Check health
curl http://localhost:8000/health
MCP Client Configuration
Gemini CLI (~/.gemini/settings.json)
{
"mcpServers": {
"gitea": {
"url": "http://localhost:8000/mcp"
}
}
}
API Pass-through Examples
# 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
Description
Languages
Python
97.1%
Dockerfile
2.9%