{"slug":"goern/forgejo-mcp","name":"Forgejo MCP Server","description":"Manage Forgejo repositories and execute commands through an MCP-compatible chat interface.","category":"version-control","tags":[],"official":false,"stars":70,"transport":"stdio","install":null,"tools":[{"name":"get_my_user_info","description":"Get information about the authenticated user"},{"name":"check_notifications","description":"Check and list user notifications"},{"name":"get_notification_thread","description":"Get detailed info on a single notification thread"},{"name":"mark_notification_read","description":"Mark a single notification thread as read"},{"name":"mark_all_notifications_read","description":"Acknowledge all notifications"},{"name":"list_repo_notifications","description":"Filter notifications scoped to a single repository"},{"name":"mark_repo_notifications_read","description":"Mark all notifications in a specific repo as read"},{"name":"search_users","description":"Search for users"},{"name":"list_my_repos","description":"List all repositories you own"},{"name":"create_repo","description":"Create a new repository"},{"name":"fork_repo","description":"Fork a repository"},{"name":"search_repos","description":"Search for repositories"},{"name":"list_branches","description":"List all branches in a repository"},{"name":"create_branch","description":"Create a new branch"},{"name":"delete_branch","description":"Delete a branch"},{"name":"get_file_content","description":"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`)."},{"name":"create_file","description":"Create a new file"},{"name":"update_file","description":"Update an existing file"},{"name":"delete_file","description":"Delete a file"},{"name":"list_repo_commits","description":"List commits in a repository"},{"name":"list_repo_issues","description":"List issues in a repository"},{"name":"get_issue_by_index","description":"Get a specific issue"},{"name":"create_issue","description":"Create a new issue"},{"name":"add_issue_labels","description":"Add labels to an issue (requires numeric label IDs)"},{"name":"remove_issue_labels","description":"Remove labels from an issue (requires numeric label IDs)"},{"name":"update_issue","description":"Update an existing issue (requires numeric milestone ID)"},{"name":"issue_state_change","description":"Open or close an issue"},{"name":"list_repo_milestones","description":"List milestones with their IDs (use with `update_issue`)"},{"name":"list_repo_labels","description":"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\"`)."},{"name":"list_org_labels","description":"List organization-level labels with their IDs (use with `add_issue_labels`, `remove_issue_labels`)."},{"name":"list_issue_comments","description":"List comments on an issue or PR"},{"name":"get_issue_comment","description":"Get a specific comment"},{"name":"create_issue_comment","description":"Add a comment to an issue or PR"},{"name":"edit_issue_comment","description":"Edit a comment"},{"name":"delete_issue_comment","description":"Delete a comment"},{"name":"list_repo_pull_requests","description":"List pull requests in a repository"},{"name":"get_pull_request_by_index","description":"Get a specific pull request"},{"name":"create_pull_request","description":"Create a new pull request"},{"name":"update_pull_request","description":"Update an existing pull request"},{"name":"list_pull_reviews","description":"List reviews for a pull request"},{"name":"get_pull_review","description":"Get a specific pull request review"},{"name":"list_pull_review_comments","description":"List comments on a pull request review"},{"name":"list_pull_request_files","description":"List changed files in a pull request (paginated). Use the returned filenames as the `file_path` argument to `get_pull_request_diff`."},{"name":"get_pull_request_diff","description":"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)."},{"name":"merge_pull_request","description":"Merge a pull request (style: merge/rebase/rebase-merge/squash; optional title/message/delete-branch/force-merge/wait-for-checks)."},{"name":"create_pull_review","description":"Create a review on a pull request (state: APPROVED/REQUEST_CHANGES/COMMENT) with optional inline comments."},{"name":"dispatch_workflow","description":"Trigger a workflow run via `workflow_dispatch` event"},{"name":"list_workflow_runs","description":"List workflow runs with optional filtering by status, event, or SHA"},{"name":"get_workflow_run","description":"Get details of a specific workflow run by ID"},{"name":"search_org_teams","description":"Search for teams in an organization"},{"name":"list_issue_tracked_times","description":"List tracked time entries on an issue or PR"},{"name":"list_repo_tracked_times","description":"List tracked time entries across a repository"},{"name":"list_my_tracked_times","description":"List your own tracked time entries"},{"name":"add_issue_time","description":"Log time against an issue or PR (accepts seconds or duration like `15m`)"},{"name":"reset_issue_time","description":"Delete ALL tracked time entries on an issue or PR (destructive)"},{"name":"delete_issue_time_entry","description":"Delete a single tracked time entry by ID"},{"name":"start_issue_stopwatch","description":"Start a stopwatch on an issue or PR"},{"name":"stop_issue_stopwatch","description":"Stop a running stopwatch and record the elapsed time"},{"name":"cancel_issue_stopwatch","description":"Cancel a running stopwatch without recording"},{"name":"list_my_stopwatches","description":"List currently running stopwatches"},{"name":"list_issue_attachments","description":"List attachments on an issue or PR"},{"name":"get_issue_attachment","description":"Get metadata for a single issue/PR attachment"},{"name":"download_issue_attachment","description":"Download an issue/PR attachment (inline if < 1 MiB; metadata + URL otherwise)"},{"name":"create_issue_attachment","description":"Upload a new attachment to an issue or PR (base64 content)"},{"name":"edit_issue_attachment","description":"Rename an issue/PR attachment"},{"name":"delete_issue_attachment","description":"Delete an issue/PR attachment"},{"name":"list_comment_attachments","description":"List attachments on an issue/PR comment"},{"name":"get_comment_attachment","description":"Get metadata for a single comment attachment"},{"name":"download_comment_attachment","description":"Download a comment attachment (inline if < 1 MiB; metadata + URL otherwise)"},{"name":"create_comment_attachment","description":"Upload a new attachment to an issue/PR comment (base64 content)"},{"name":"edit_comment_attachment","description":"Rename a comment attachment"},{"name":"delete_comment_attachment","description":"Delete a comment attachment"},{"name":"list_releases","description":"List releases for a repository (page/limit + client-side `state` filter: all/draft/prerelease/published)"},{"name":"get_release_by_id","description":"Get a release by numeric ID"},{"name":"get_release_by_tag","description":"Get a release by tag name"},{"name":"get_latest_release","description":"Get the latest non-draft, non-prerelease release"},{"name":"create_release","description":"Create a new release (pass `target_commitish` to also create the tag)"},{"name":"edit_release","description":"Update fields of an existing release (only supplied fields are sent)"},{"name":"delete_release","description":"Delete a release by numeric ID — destructive"},{"name":"delete_release_by_tag","description":"Delete a release by tag name — destructive, verify tag"},{"name":"list_release_attachments","description":"List attachments on a release (response fetched in full, sliced client-side)"},{"name":"get_release_attachment","description":"Get metadata for a single release attachment"},{"name":"download_release_attachment","description":"Download a release attachment (inline if < 1 MiB; metadata + URL otherwise)"},{"name":"create_release_attachment","description":"Upload a new attachment to a release (base64 content)"},{"name":"edit_release_attachment","description":"Rename a release attachment"},{"name":"delete_release_attachment","description":"Delete a release attachment — destructive"},{"name":"get_forgejo_mcp_server_version","description":"Get the MCP server version"}],"env_vars":["FORGEJO_ACCESS_TOKEN","FORGEJO_URL","COSIGN_PRIVATE_KEY"],"auth_type":"none","github":"https://github.com/goern/forgejo-mcp","homepage":"","server_url":"","status":"active","source":"mcpservers.org","updated_at":"Thu May 28"}