Labsco
MCP SERVER

Gitea MCP Server

by MushroomFleet

Push a whole project into self-hosted Gitea, then keep updating it with conflict resolution.

Git Hosting & Code Review
Summary
sync_project is for the first push; sync_update is for everything after it.

The split is the thing to get right: sync_project can only create files, so pointing it at a repository that already has them changes nothing. sync_update is the one with SHA-based conflict resolution, change detection and a dry run, which makes it the tool for ongoing work.

What it is

An MCP server for self-hosted Gitea instances. It creates repositories and uploads files while preserving directory structure, across several Gitea instances at once.

What you get
  • create_repository — a new repository on any configured instance, private and auto-initialized by default
  • upload_files — many files in one commit, directory structure preserved, in configurable batches
  • sync_project — discover and push a whole project directory, respecting .gitignore, with a dry-run option
  • sync_update — add, modify or delete files with SHA-based conflict resolution and change detection
  • Conflict handling you choose: fail, overwrite or skip
  • Several Gitea instances side by side, each with its own token and rate limit
Requirements

Node.js 18.0.0 or higher and a personal access token per instance. Instances are configured as JSON in GITEA_INSTANCES, each with an id, base URL, token, timeout and rate limit. Clone, npm install, npm run build, then npm run start:mcp.

Setup effort

Build from source — clone the repository and build it, then point your client at the binary