{
  "name": "io.github.kazuph/mcp-gitea",
  "description": "A community-maintained MCP that connects an AI agent to a self-hosted Gitea instance. Lists repositories, reads files and diffs, opens issues and pull requests, and manages labels and milestones. Designed for teams that run their own Git host on Gitea (or its Forgejo fork) and want the same agent ergonomics the GitHub MCP gives to GitHub users.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-06-02",
    "com.top-mcps/score": {
      "value": 56,
      "rubricVersion": "2026-04",
      "lastComputed": "2026-06-02T13:16:41.656Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-06-02T13:16:41.169Z"
    }
  },
  "repository": {
    "url": "https://github.com/kazuph/mcp-gitea",
    "source": "github"
  },
  "author": {
    "name": "Community"
  },
  "packages": [
    {
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "identifier": "run",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "runtimeArguments": [
        {
          "type": "positional",
          "value": "--rm"
        },
        {
          "type": "positional",
          "value": "-i"
        },
        {
          "type": "positional",
          "value": "-e"
        },
        {
          "type": "positional",
          "value": "GITEA_URL"
        },
        {
          "type": "positional",
          "value": "-e"
        },
        {
          "type": "positional",
          "value": "GITEA_TOKEN"
        },
        {
          "type": "positional",
          "value": "ghcr.io/kazuph/mcp-gitea:latest"
        }
      ],
      "environmentVariables": [
        {
          "name": "GITEA_URL",
          "description": "GITEA_URL — required credential for Gitea.",
          "isRequired": true,
          "isSecret": true
        },
        {
          "name": "GITEA_TOKEN",
          "description": "GITEA_TOKEN — required credential for Gitea.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "list_repos",
        "description": "List repositories visible to the token.",
        "sideEffect": "read"
      },
      {
        "name": "get_repo",
        "description": "Return metadata for a repo.",
        "sideEffect": "read",
        "args": [
          {
            "name": "owner",
            "type": "string",
            "required": true
          },
          {
            "name": "repo",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "list_issues",
        "description": "List issues in a repo.",
        "sideEffect": "read",
        "args": [
          {
            "name": "owner",
            "type": "string",
            "required": true
          },
          {
            "name": "repo",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "create_issue",
        "description": "Open an issue. Requires write scope.",
        "sideEffect": "write",
        "args": [
          {
            "name": "owner",
            "type": "string",
            "required": true
          },
          {
            "name": "repo",
            "type": "string",
            "required": true
          },
          {
            "name": "title",
            "type": "string",
            "required": true
          },
          {
            "name": "body",
            "type": "string",
            "required": false
          }
        ]
      },
      {
        "name": "list_pull_requests",
        "description": "List PRs in a repo.",
        "sideEffect": "read",
        "args": [
          {
            "name": "owner",
            "type": "string",
            "required": true
          },
          {
            "name": "repo",
            "type": "string",
            "required": true
          }
        ]
      }
    ],
    "security": {
      "scope": "read-only",
      "sandbox": "Authenticates with a Gitea personal access token scoped to the smallest set of permissions the workflow needs. The MCP defaults to read-only tools; writes require an explicit toggle.",
      "gotchas": [
        "Tokens carry whatever permissions they were created with — always scope to a specific repo or org.",
        "Self-hosted Gitea uses self-signed TLS by default; export GITEA_INSECURE=true only on internal-only hosts.",
        "Gitea Actions have a different API surface from GitHub Actions; do not assume the same tool names."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/gitea",
    "markdown": "https://top-mcps.com/mcp/gitea.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
