Gitea MCP Server
Gitea repositories managed directly through custom file upload and sync tools.
Data last scanned today · Reviewed today
Overview
The Gitea MCP Server provides a bridge for AI agents to interact with self-hosted Gitea instances. It supports core repository management tasks including the creation of new repositories and the bulk uploading of files while maintaining original folder structures. Built in TypeScript, the server handles project synchronization and modification of existing files with integrated conflict resolution. Users can configure connections to multiple Gitea instances simultaneously, utilizing environment variables to manage API rate limits, request timeouts, and batch processing parameters.
Our verdict
This server carries a high risk level with a security score of 24/100. Key contributors to this assessment include the lack of editorial review and the fact that it is a community-maintained project rather than an official vendor release. Given these factors, it is recommended for use in non-critical environments or personal sandboxes where the underlying infrastructure is strictly controlled.
- Supports multi-instance Gitea configurations simultaneously
- Preserves directory structure during file upload operations
- Small dependency footprint with only 9 direct dependencies
- Provides built-in logic for API rate limiting and retries
- Community-maintained with no official vendor support
- Security aspects like OAuth and read-only modes remain unreviewed
- Low bus-factor risk with only a single contributor
- Inactivity concerns with the last commit 115 days ago
Setup
{
"mcpServers": {
"gitea-mcp": {
"args": [
"-y",
"gitea-mcp"
],
"command": "npx"
}
}
}Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.
- No read-only mode — running this grants full read/write access.
- No built-in authentication — anyone with access to this config can invoke every tool it exposes.
Tools
| Tool | Description | Risk |
|---|---|---|
| create_repository | Create a new repository on a specified Gitea instance. | medium |
| upload_files | Upload multiple files to a repository while preserving directory structure. | medium |
| sync_project | Automatically discover and sync an entire project directory to a Gitea repository while respecting .gitignore rules. | medium |
| sync_update | Advanced tool for updating existing files in Gitea repository with intelligent conflict resolution and change detection. | high |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›What are the prerequisite system requirements to run this server?
You need Node.js version 18.0.0 or higher installed, along with access to one or more Gitea instances and the corresponding personal access tokens.
›How do I configure multiple Gitea instances?
You can define multiple instances within the GITEA_INSTANCES environment variable, which accepts a JSON array of objects, each requiring a unique id, name, baseUrl, and personal access token.
›What permissions are required for the Gitea personal access token?
Your token must be created with 'repo' (full repository access), 'write:repository' (for creating repositories), and 'read:user' permissions.
›Does this server handle API rate limiting?
Yes, you can configure rate limiting per instance within the GITEA_INSTANCES environment variable by defining the requests count and windowMs duration.
›Why might the build script fail on Windows?
The default build script uses the 'chmod' command, which is not natively available on Windows; however, the package.json is updated to include a Windows-compatible build script.
›How can I enable debug logging?
You can enable debug logging by setting the LOG_LEVEL environment variable to 'debug' and running the 'npm run start:mcp' command. If you encounter configuration issues, ensure the 'pino-pretty' package is installed as a development dependency.
Badge
Maintain this server? Add the live badge to your README.