forgejo-mcp

forgejo-mcp

1

Forgejo MCP Server is a plugin that integrates Forgejo with MCP systems for streamlined command execution and repository management through a chat interface. It supports various operations such as repository, branch, and issue management, enhancing software development workflows.

Forgejo MCP Server

Forgejo MCP Server is an integration plugin designed to connect Forgejo with Model Context Protocol (MCP) systems. This allows for seamless command execution and repository management through an MCP-compatible chat interface.

🚧Installation

📥Download the official binary release

You can download the official release from here.

🔧Build from Source

You can download the source code by cloning the repository using Git:

git clone https://forgejo.org/forgejo/forgejo-mcp.git

Before building, make sure you have the following installed:

  • make
  • Golang (Go 1.24 or later recommended)

Then run:

make build

📁Add to PATH

After building, copy the binary forgejo-mcp to a directory included in your system's PATH. For example:

cp forgejo-mcp /usr/local/bin/

🚀Usage

This example is for Cursor, you can also use plugins in VSCode. To configure the MCP server for Forgejo, add the following to your MCP configuration file:

  • stdio mode
{
  "mcpServers": {
    "forgejo": {
      "command": "forgejo-mcp",
      "args": [
        "-t", "stdio",
        "--host", "https://forgejo.org"
        // "--token", "<your personal access token>"
      ],
      "env": {
        // "GITEA_HOST": "https://forgejo.org",
        "GITEA_ACCESS_TOKEN": "<your personal access token>"
      }
    }
  }
}
  • sse mode
{
  "mcpServers": {
    "forgejo": {
      "url": "http://localhost:8080/sse"
    }
  }
}

[!NOTE] You can provide your Forgejo host and access token either as command-line arguments or environment variables. Command-line arguments have the highest priority

Once everything is set up, try typing the following in your MCP-compatible chatbox:

list all my repositories

✅Available Tools

The Forgejo MCP Server supports the following tools:

ToolScopeDescription
get_my_user_infoUserGet the information of the authenticated user
create_repoRepositoryCreate a new repository
fork_repoRepositoryFork a repository
list_my_reposRepositoryList all repositories owned by the authenticated user
create_branchBranchCreate a new branch
delete_branchBranchDelete a branch
list_branchesBranchList all branches in a repository
list_repo_commitsCommitList all commits in a repository
get_file_contentFileGet the content and metadata of a file
create_fileFileCreate a new file
update_fileFileUpdate an existing file
delete_fileFileDelete a file
get_issue_by_indexIssueGet an issue by its index
list_repo_issuesIssueList all issues in a repository
create_issueIssueCreate a new issue
create_issue_commentIssueCreate a comment on an issue
get_pull_request_by_indexPull RequestGet a pull request by its index
list_repo_pull_requestsPull RequestList all pull requests in a repository
create_pull_requestPull RequestCreate a new pull request
search_usersUserSearch for users
search_org_teamsOrganizationSearch for teams in an organization
search_reposRepositorySearch for repositories
get_forgejo_mcp_server_versionServerGet the version of the Forgejo MCP Server

🐛Debugging

To enable debug mode, add the -d flag when running the Forgejo MCP Server with sse mode:

./forgejo-mcp -t sse [--port 8080] --token <your personal access token> -d

Enjoy exploring and managing your Forgejo repositories via chat!