- 6 curated MCP tools (get_my_user_info, search_repos, list_my_repos, get_repo, list_repo_issues, list_repo_commits) - API pass-through tool (gitea_api_call) for complete API coverage - Curated API reference resource (gitea://api-reference) - Health check endpoint - Docker support with health checks
93 lines
1.7 KiB
Markdown
93 lines
1.7 KiB
Markdown
# 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
|