Forgejo MCP Server
JSON →Manage Forgejo repositories and execute commands through an MCP-compatible chat interface.
Tools · 87
- get_my_user_info Get information about the authenticated user
- check_notifications Check and list user notifications
- get_notification_thread Get detailed info on a single notification thread
- mark_notification_read Mark a single notification thread as read
- mark_all_notifications_read Acknowledge all notifications
- list_repo_notifications Filter notifications scoped to a single repository
- mark_repo_notifications_read Mark all notifications in a specific repo as read
- search_users Search for users
- list_my_repos List all repositories you own
- create_repo Create a new repository
- fork_repo Fork a repository
- search_repos Search for repositories
- list_branches List all branches in a repository
- create_branch Create a new branch
- delete_branch Delete a branch
- get_file_content Get the content of a file. Optional `start_line`/`end_line` request a 1-indexed inclusive line range (clamps to file extent; ignored when `with_metadata=true`).
- create_file Create a new file
- update_file Update an existing file
- delete_file Delete a file
- list_repo_commits List commits in a repository
- list_repo_issues List issues in a repository
- get_issue_by_index Get a specific issue
- create_issue Create a new issue
- add_issue_labels Add labels to an issue (requires numeric label IDs)
- remove_issue_labels Remove labels from an issue (requires numeric label IDs)
- update_issue Update an existing issue (requires numeric milestone ID)
- issue_state_change Open or close an issue
- list_repo_milestones List milestones with their IDs (use with `update_issue`)
- list_repo_labels List labels with their IDs. Merges org-level labels for org-owned repos (set `include_org_labels=false` to opt out). Each entry carries a `scope` field (`"repo"` or `"org"`).
- list_org_labels List organization-level labels with their IDs (use with `add_issue_labels`, `remove_issue_labels`).
- list_issue_comments List comments on an issue or PR
- get_issue_comment Get a specific comment
- create_issue_comment Add a comment to an issue or PR
- edit_issue_comment Edit a comment
- delete_issue_comment Delete a comment
- list_repo_pull_requests List pull requests in a repository
- get_pull_request_by_index Get a specific pull request
- create_pull_request Create a new pull request
- update_pull_request Update an existing pull request
- list_pull_reviews List reviews for a pull request
- get_pull_review Get a specific pull request review
- list_pull_review_comments List comments on a pull request review
- list_pull_request_files List changed files in a pull request (paginated). Use the returned filenames as the `file_path` argument to `get_pull_request_diff`.
- get_pull_request_diff Get the unified diff of a pull request. Optional `file_path` returns only that file's hunks (matches on either pre- or post-rename path).
- merge_pull_request Merge a pull request (style: merge/rebase/rebase-merge/squash; optional title/message/delete-branch/force-merge/wait-for-checks).
- create_pull_review Create a review on a pull request (state: APPROVED/REQUEST_CHANGES/COMMENT) with optional inline comments.
- dispatch_workflow Trigger a workflow run via `workflow_dispatch` event
- list_workflow_runs List workflow runs with optional filtering by status, event, or SHA
- get_workflow_run Get details of a specific workflow run by ID
- search_org_teams Search for teams in an organization
- list_issue_tracked_times List tracked time entries on an issue or PR
- list_repo_tracked_times List tracked time entries across a repository
- list_my_tracked_times List your own tracked time entries
- add_issue_time Log time against an issue or PR (accepts seconds or duration like `15m`)
- reset_issue_time Delete ALL tracked time entries on an issue or PR (destructive)
- delete_issue_time_entry Delete a single tracked time entry by ID
- start_issue_stopwatch Start a stopwatch on an issue or PR
- stop_issue_stopwatch Stop a running stopwatch and record the elapsed time
- cancel_issue_stopwatch Cancel a running stopwatch without recording
- list_my_stopwatches List currently running stopwatches
- list_issue_attachments List attachments on an issue or PR
- get_issue_attachment Get metadata for a single issue/PR attachment
- download_issue_attachment Download an issue/PR attachment (inline if < 1 MiB; metadata + URL otherwise)
- create_issue_attachment Upload a new attachment to an issue or PR (base64 content)
- edit_issue_attachment Rename an issue/PR attachment
- delete_issue_attachment Delete an issue/PR attachment
- list_comment_attachments List attachments on an issue/PR comment
- get_comment_attachment Get metadata for a single comment attachment
- download_comment_attachment Download a comment attachment (inline if < 1 MiB; metadata + URL otherwise)
- create_comment_attachment Upload a new attachment to an issue/PR comment (base64 content)
- edit_comment_attachment Rename a comment attachment
- delete_comment_attachment Delete a comment attachment
- list_releases List releases for a repository (page/limit + client-side `state` filter: all/draft/prerelease/published)
- get_release_by_id Get a release by numeric ID
- get_release_by_tag Get a release by tag name
- get_latest_release Get the latest non-draft, non-prerelease release
- create_release Create a new release (pass `target_commitish` to also create the tag)
- edit_release Update fields of an existing release (only supplied fields are sent)
- delete_release Delete a release by numeric ID — destructive
- delete_release_by_tag Delete a release by tag name — destructive, verify tag
- list_release_attachments List attachments on a release (response fetched in full, sliced client-side)
- get_release_attachment Get metadata for a single release attachment
- download_release_attachment Download a release attachment (inline if < 1 MiB; metadata + URL otherwise)
- create_release_attachment Upload a new attachment to a release (base64 content)
- edit_release_attachment Rename a release attachment
- delete_release_attachment Delete a release attachment — destructive
- get_forgejo_mcp_server_version Get the MCP server version
Environment variables
FORGEJO_ACCESS_TOKENFORGEJO_URLCOSIGN_PRIVATE_KEY
Links
★ 70 GitHub stars