get_my_user_infoLABSCO SUMMARY
Everything is bounded, which is why it survives a real repository.
Wide forge servers usually fall over on the same thing: one call returns a whole CI log or a whole diff, and the context is gone. Here paging, line ranges, byte offsets and truncation sentinels are built into the tool descriptions, and when a resource truncates a list it names the tool to call for the rest. That is the difference between a demo repository and yours.
What it is
A Go MCP server for Forgejo instances, with an unusually wide surface and a consistent discipline about bounded output: list tools take page and limit and echo them back, file and wiki reads take line ranges, and job logs are resumable. Development, issues, releases and container images now live at git.b4mad.industries/agentic-forges/forgejo-mcp; the Codeberg repository remains as a read-only mirror and no longer publishes images.
What you get
- Issues and labels:
list_repo_issueswith server-side sorting,search_issuesacross an owner's repositories,create_issue,update_issue,issue_state_change,add_issue_labels,create_repo_label,list_org_labels, plus dependencies throughadd_issue_dependencyandlist_issue_dependents - Pull requests and review:
list_repo_pull_requests,create_pull_request,list_pull_request_files,get_pull_request_difffor the whole diff or one file's hunks,create_pull_reviewwith inline comments,merge_pull_requestwith a choice of merge style - Files and commits:
get_file_contentwith an optional line range,create_file,update_file,delete_file,list_repo_commits - Actions:
dispatch_workflow,list_workflow_runs,get_workflow_run,list_action_run_jobs, andget_action_job_logswith resumableoffsetandmax_bytesso a huge log does not arrive all at once - Releases and attachments:
create_release,edit_release,get_latest_release,list_release_attachments,download_release_attachment - Wiki:
list_wiki_pages,get_wiki_pagewith line ranges,create_wiki_page,update_wiki_page,delete_wiki_page - Time tracking:
add_issue_time,start_issue_stopwatch,stop_issue_stopwatch,list_my_tracked_times - Branch protection and webhooks as first-class tools, including
test_repo_hook— which triggers a live HTTP delivery, as its own description warns forgejo://resource templates for owners, repos, commits, issues, PRs, labels and wiki pages, for clients that read resources; every list tool stays available for clients that do not- A CLI mode that invokes any tool from a shell, for scripts and CI without running a server
Requirements
A Forgejo personal access token in FORGEJO_ACCESS_TOKEN, created under Settings, Applications, Access Tokens with the scopes you need, and --url pointing at your instance. Install with go install, a release binary, the AUR packages, Nix from the unstable channel, or the signed container image, which carries a cosign signature and a CycloneDX SBOM. Wiki behaviour was live-tested against Forgejo 15.0.4+gitea-1.22.0 and the full demo replayed against 16.0.0+gitea-1.22.0 — that is the tested range, not a promise about every deployment.
Setup effort
One command plus a key — forgejo-mcp --transport stdio --url <YOUR_FORGEJO_URL>, then supply credentials
USE CASES
Reviewing a pull request properly
List the changed files, pull the diff one file at a time, and leave an approving or change-requesting review with inline comments.
Working out why CI failed
Find the run, list its jobs, and read the tail of the failing job's log with resumable offsets instead of the whole thing.
Triaging a backlog
Search issues across the owner's repositories, apply labels by ID, set due dates, and record dependencies between them.
Keeping the wiki current
List pages, read one with a line range, and update it by its normalised page name.
121 tools
Listed in project docs. Your client may show a different list.
check_notificationsget_notification_threadmark_notification_readmark_all_notifications_readlist_repo_notificationsmark_repo_notifications_readsearch_userslist_my_reposget_repocreate_repofork_repoedit_reposearch_reposlist_branchescreate_branchdelete_branchlist_branch_protectionsget_branch_protectioncreate_branch_protectionedit_branch_protectiondelete_branch_protectionlist_repo_hooksget_repo_hookcreate_repo_hookedit_repo_hookdelete_repo_hooktest_repo_hookget_file_contentcreate_fileupdate_filedelete_filelist_repo_commitslist_repo_issuessearch_issuesget_issue_by_indexcreate_issueadd_issue_labelsremove_issue_labelsupdate_issueissue_state_changelist_issue_dependencieslist_issue_dependentsadd_issue_dependencyremove_issue_dependencylist_repo_milestoneslist_repo_labelslist_org_labelscreate_repo_labeledit_repo_labeldelete_repo_labelget_repo_labelcreate_org_labeledit_org_labeldelete_org_labelget_org_labellist_issue_commentsget_issue_commentcreate_issue_commentedit_issue_commentdelete_issue_commentlist_repo_pull_requestsget_pull_request_by_indexcreate_pull_requestupdate_pull_requestlist_pull_reviewsget_pull_reviewlist_pull_review_commentslist_pull_request_filesget_pull_request_diffmerge_pull_requestcreate_pull_reviewdispatch_workflowlist_workflow_runsget_workflow_runlist_action_run_jobsget_action_job_logssearch_org_teamslist_issue_tracked_timeslist_repo_tracked_timeslist_my_tracked_timesadd_issue_timereset_issue_timedelete_issue_time_entrystart_issue_stopwatchstop_issue_stopwatchcancel_issue_stopwatchlist_my_stopwatcheslist_issue_attachmentsget_issue_attachmentdownload_issue_attachmentcreate_issue_attachmentedit_issue_attachmentdelete_issue_attachmentlist_comment_attachmentsget_comment_attachmentdownload_comment_attachmentcreate_comment_attachmentedit_comment_attachmentdelete_comment_attachmentlist_releasesget_release_by_idget_release_by_tagget_latest_releasecreate_releaseedit_releasedelete_releasedelete_release_by_taglist_release_attachmentsget_release_attachmentdownload_release_attachmentcreate_release_attachmentedit_release_attachmentdelete_release_attachmentlist_wiki_pagesget_wiki_pageget_wiki_revisionscreate_wiki_pageupdate_wiki_pagedelete_wiki_pageget_forgejo_mcp_server_versionBEFORE YOU INSTALL
What to know first
Tools you get
121 tools named in the project's documentation.
Requires
- forgejo-mcp on PATH
- FORGEJO_ACCESS_TOKEN in your environment
INSTALLATION
Connect your client
Add the block to your client, or run the command directly.
Server setup
Configuration file
{
"mcpServers": {
"forgejo": {
"command": "forgejo-mcp",
"args": [
"--transport",
"stdio",
"--url",
"<YOUR_FORGEJO_URL>"
],
"env": {
"FORGEJO_ACCESS_TOKEN": "<YOUR_FORGEJO_ACCESS_TOKEN>",
"FORGEJO_USER_AGENT": "forgejo-mcp/1.0.0"
}
}
}
}The command line the project publishes
forgejo-mcp --transport stdio --url <YOUR_FORGEJO_URL>