Gitea MCP Tool Inventory
Tools exposed by the gitea MCP server (registered in repo .mcp.json at https://git-mcp.farh.net/mcp). All tool names below are prefixed mcp__gitea__ when invoked.
Many tools are consolidated under a method discriminator (e.g. issue_write(method="create", …)). Where that's the case, the methods are listed in the third column.
Repositories
| Tool |
Purpose |
Notes |
list_my_repos |
List repos accessible to the authenticated user |
Paginated |
list_org_repos |
List repos for a given org |
Required: org |
search_repos |
Search across the instance |
Required: query. Filters: isPrivate, isArchived, keywordIsTopic, keywordInDescription, ownerID, sort, order |
create_repo |
Create a personal or org repo |
Required: name. Optional: organization, private, auto_init, gitignores, license, readme, template, trust_model, default_branch, object_format_name (sha1/sha256), issue_labels, description |
fork_repo |
Fork a repo |
Required: user (source owner), repo. Optional: organization, name |
get_repository_tree |
Recursive tree listing |
Required: owner, repo, tree_sha. Optional: recursive, paging |
Files
| Tool |
Purpose |
Notes |
get_file_contents |
Get a file at a ref |
Required: owner, repo, ref, path. Optional: withLines (numbered output) |
get_dir_contents |
List a directory at a ref |
Required: owner, repo, ref, path |
create_or_update_file |
Write a file in a single commit |
Required: owner, repo, path, content, message, branch_name. Provide sha to update an existing file; omit to create. Use new_branch_name to commit onto a new branch |
delete_file |
Remove a file |
Required: owner, repo, path, message, branch_name, sha |
Branches
| Tool |
Purpose |
Notes |
list_branches |
List branches |
Required: owner, repo |
create_branch |
Create a branch |
Required: owner, repo, branch. Optional: old_branch (defaults to repo default) |
delete_branch |
Delete a branch |
Required: owner, repo, branch |
Commits / Tags
| Tool |
Purpose |
Notes |
list_commits |
List commits |
Required: owner, repo. Optional: sha (start ref), path (filter to commits touching this path) |
get_commit |
Get a commit |
Required: owner, repo, sha |
list_tags |
List tags |
Required: owner, repo |
get_tag |
Get a tag |
Required: owner, repo, tag_name |
create_tag |
Create a tag |
Required: owner, repo, tag_name. Optional: target, message |
delete_tag |
Delete a tag |
Required: owner, repo, tag_name |
Releases
| Tool |
Purpose |
Notes |
list_releases |
List releases |
Required: owner, repo. Optional: is_draft, is_pre_release |
get_release |
Get a release by ID |
Required: owner, repo, id |
get_latest_release |
Latest non-draft release |
Required: owner, repo |
create_release |
Create a release |
Required: owner, repo, tag_name, target, title. Optional: body, is_draft, is_pre_release |
delete_release |
Delete a release |
Required: owner, repo, id |
No "edit release" or "upload asset" tool — fall back to tea releases edit / tea releases assets for those.
Issues
| Tool |
Purpose |
Methods |
list_issues |
Standalone list |
Filters: state, labels[], since, before |
search_issues |
Cross-repo search |
Required: query. Filters: state, type (issues/pulls), labels, owner |
issue_read |
Read details |
get, get_comments, get_labels |
issue_write |
Mutate |
create, update, add_comment, edit_comment, add_labels, remove_label, replace_labels, clear_labels. labels are IDs (numeric). assignees are usernames |
Pull requests
| Tool |
Purpose |
Methods |
list_pull_requests |
List PRs |
Filters: state, milestone, sort (oldest, recentupdate, leastupdate, mostcomment, leastcomment, priority) |
pull_request_read |
Read details |
get, get_diff, get_files, get_status (head commit status), get_reviews, get_review, get_review_comments |
pull_request_write |
Mutate |
create, update, close, reopen, merge, update_branch, add_reviewers, remove_reviewers. Merge styles: merge, rebase, rebase-merge, squash, fast-forward-only. Optional head_commit_id for conflict detection; merge_when_checks_succeed, force_merge, delete_branch for merge |
pull_request_review_write |
Reviews |
create, submit, delete, dismiss. States for create: APPROVED, REQUEST_CHANGES, COMMENT, PENDING. Supports inline comments[] with path + new_line_num/old_line_num |
Labels
| Tool |
Purpose |
Methods |
label_read |
Read |
list_repo_labels, get_repo_label, list_org_labels |
label_write |
Mutate |
create_repo_label, edit_repo_label, delete_repo_label, create_org_label, edit_org_label, delete_org_label. Org labels accept exclusive; repo labels accept is_archived. color is hex #RRGGBB |
Milestones
| Tool |
Purpose |
Methods |
milestone_read |
Read |
list, get |
milestone_write |
Mutate |
create, update (alias edit), delete. State enum: open, closed. due_on is a date string |
Wiki
| Tool |
Purpose |
Methods |
wiki_read |
Read |
list, get (needs pageName), get_revisions (needs pageName) |
wiki_write |
Mutate |
create (needs title, content), update (needs pageName, content), delete (needs pageName). Optional message is the commit message |
See ../../gitea-wiki/SKILL.md for end-to-end wiki examples.
Actions
| Tool |
Purpose |
Methods |
actions_config_read |
Read secrets/variables |
list_repo_secrets, list_org_secrets, list_repo_variables, get_repo_variable, list_org_variables, get_org_variable |
actions_config_write |
Mutate secrets/variables |
upsert_repo_secret, delete_repo_secret, upsert_org_secret, delete_org_secret, create_repo_variable, update_repo_variable, delete_repo_variable, create_org_variable, update_org_variable, delete_org_variable. Secret value field is data; variable value is value |
actions_run_read |
Read workflows/runs/jobs/logs |
list_workflows, get_workflow (workflow_id may be ID or filename), list_runs, get_run, list_jobs, list_run_jobs, get_job_log_preview, download_job_log (output_path required). Log methods accept max_bytes and tail_lines |
actions_run_write |
Trigger/control runs |
dispatch_workflow (needs workflow_id, ref; optional inputs), cancel_run, rerun_run |
Notifications
| Tool |
Purpose |
Methods |
notification_read |
Read |
list (optional owner/repo to scope; filters: status, subject_type, since, before), get (by thread id) |
notification_write |
Mark read |
mark_read (by thread id), mark_all_read (optionally scoped to a repo) |
Packages
| Tool |
Purpose |
Methods |
package_read |
Read |
list (one entry per version; filter via q/type), list_versions, get (needs version) |
package_write |
Mutate |
delete (irreversible) |
Package type: container, npm, maven, pypi, cargo, generic.
Time tracking
| Tool |
Purpose |
Methods |
timetracking_read |
Read |
list_issue_times, list_repo_times, get_my_stopwatches, get_my_times |
timetracking_write |
Mutate |
start_stopwatch, stop_stopwatch, delete_stopwatch, add_time (time in seconds), delete_time |
Users / Orgs / Teams
| Tool |
Purpose |
Notes |
get_me |
Current user |
No args |
get_user_orgs |
Orgs of the current user |
Paginated |
search_users |
Search users |
Required: query |
search_org_teams |
Search teams in an org |
Required: org, query. Optional: includeDescription |
Server
| Tool |
Purpose |
get_gitea_mcp_server_version |
Returns the running MCP server version. Useful for confirming connectivity. |
Coverage gaps (use tea or REST API instead)
The MCP server does not currently expose:
- Webhook CRUD — use
tea webhooks ….
- Admin user CRUD — use
tea admin users ….
- Release asset upload/management — use
tea releases assets ….
- SSH key CRUD — use
tea ssh-keys ….
- Login / instance setup —
tea logins ….
- Repo edit/delete —
tea repos edit / tea repos delete --owner X --name Y --force.
tea pulls checkout / tea clone workflows that need local git state.