# forgejo-mcp MCP server for Forgejo/Gitea API operations. Source: [`@openmanbo/forgejo-mcp`](https://npm.im/@openmanbo/forgejo-mcp) ## Environment Variables | Variable | Required | Description | |----------|----------|-------------| | `FORGEJO_URL` | Yes | Forgejo instance URL (e.g. `https://forgejo.corentic.eu`) | | `FORGEJO_TOKEN` | Yes | Forgejo API token or personal access token | | `FORGEJO_USERNAME` | No | Username for certain operations | ## Usage ```bash docker run -d \ --name forgejo-mcp \ -p 8101:8101 \ -e FORGEJO_URL=https://forgejo.corentic.eu \ -e FORGEJO_TOKEN=your_token \ -e FORGEJO_USERNAME=tobi \ forgejo.corentic.eu/corentic/mcp-fleet-forgejo:latest ``` ## Tools ### Issues - **`search_issues`** — Search issues/PRs across all repos. Params: `q`, `type` (issues/pulls), `state` (open/closed), `labels`, `owner`, `assigned`, `created`, `mentioned`, `since`, `before`, `page`, `limit` - **`list_issues`** — List issues in a repo. Params: `owner`, `repo`, `state`, `type`, `labels`, `page`, `limit` - **`get_issue`** — Get issue/PR details. Params: `owner`, `repo`, `index` - **`create_issue`** — Create issue. Params: `owner`, `repo`, `title`, `body`, `assignees`, `labels`, `milestone` - **`edit_issue`** — Edit issue. Params: `owner`, `repo`, `index`, `title`, `body`, `state`, `assignees`, `milestone` - **`list_issue_comments`** — List comments. Params: `owner`, `repo`, `index`, `page`, `limit` - **`create_comment`** — Add comment. Params: `owner`, `repo`, `index`, `body` ### Repositories - **`search_repos`** — Search repos. Params: `q`, `topic`, `include_desc`, `owner`, `is_private`, `archived`, `page`, `limit` - **`get_repo`** — Get repo details. Params: `owner`, `repo` ### Pull Requests - **`list_pull_requests`** — List PRs. Params: `owner`, `repo`, `state`, `sort`, `labels`, `milestone`, `page`, `limit` - **`get_pull_request`** — Get PR details. Params: `owner`, `repo`, `index` - **`create_pull_request`** — Create PR. Params: `owner`, `repo`, `title`, `body`, `head`, `base`, `assignees`, `labels`, `milestone` - **`edit_pull_request`** — Update PR. Params: `owner`, `repo`, `index`, `title`, `body`, `state`, `base`, `assignees`, `labels`, `milestone` - **`merge_pull_request`** — Merge PR. Params: `owner`, `repo`, `index`, `Do` (merge/rebase/squash), `delete_branch_after_merge`, `force_merge`, `merge_when_checks_succeed` - **`get_pull_request_diff`** — Get PR diff. Params: `owner`, `repo`, `index` - **`get_pull_request_files`** — Get changed files. Params: `owner`, `repo`, `index`, `skip`, `limit` - **`update_pull_request_branch`** — Update PR branch with base. Params: `owner`, `repo`, `index`, `style` (rebase/merge) ### Pull Request Reviews - **`list_pull_request_reviews`** — List reviews. Params: `owner`, `repo`, `index`, `page`, `limit` - **`get_pull_request_review`** — Get review details. Params: `owner`, `repo`, `index`, `review_id` - **`create_pull_request_review`** — Create/submit review. Params: `owner`, `repo`, `index`, `event` (APPROVED/REQUEST_CHANGES/COMMENT/PENDING), `body`, `commit_id`, `comments[]` (line-level) - **`submit_pull_request_review`** — Submit pending review. Params: `owner`, `repo`, `index`, `review_id`, `event`, `body` - **`delete_pull_request_review`** — Delete review. Params: `owner`, `repo`, `index`, `review_id` - **`dismiss_pull_request_review`** — Dismiss review. Params: `owner`, `repo`, `index`, `review_id`, `message` - **`get_pull_request_review_comments`** — List review comments. Params: `owner`, `repo`, `index`, `review_id` ### Users & Notifications - **`get_user`** — Get authenticated user profile - **`get_user_info`** — Get user profile by login. Params: `username` - **`get_git_token`** — Get git credentials for cloning - **`list_notifications`** — List notifications. Params: `all`, `since`, `before`, `page`, `limit` - **`mark_notification_read`** — Mark notification read. Params: `id` - **`mark_all_notifications_read`** — Mark all read. Params: `last_read_at`