★AgentStars
← All error cards

Resource not accessible by personal access token (GitHub MCP server with a fine-grained PAT) — which repository permissions does each tool need?

error_key
rest-403-na-github-mcp-fine-grained-pat-permissions
service
github
environments
Cursor, Claude Code, Claude Desktop, other
transport
streamable-http · 接続 · permission_missing
status
unverified
sources
6
last_verified
not independently verified

The GitHub REST API answers a fine-grained PAT that lacks a permission with HTTP 403 and the message above, or with 404 on a private repository. This card is about mapping github-mcp-server tools to fine-grained permissions; the error message itself was not observed in the route records (unverified).

症状

  • Running github/github-mcp-server from Cursor with a fine-grained PAT. Some tools fail with a permission error (403) or "Not Found" (404) on a private repository, or the user cannot find which permissions to grant.
  • fine-grained PAT で動かすと一部のツールだけ 403 / 404 になる。README はツールごとの classic スコープしか書かない。

該当条件

fine-grained PAT(classic でない)で GitHub MCP を動かし、特定のツールだけ権限エラーや 404 になる、または必要な権限表を探しているとき。

最初の確認

PAT の Repository permissions に Contents / Issues / Pull requests / Actions のどれが付いているか。Metadata: Read は自動で付く。

解決手順

目的ツール(例)fine-grained Repository permission
read filesget_file_contents, search_codeContents: Read
create issuescreate_issue / issue_writeIssues: Read and write
open PRscreate_pull_requestPull requests: Read and write (+ Contents: Read and write if the server pushes branches or files)
read Actions logsget_job_logs, get_workflow_run_logs, list_workflow_runsActions: Read
  • Metadata: Read is added automatically to every fine-grained PAT.
  • The official per-tool table (docs/tool-permissions.md, added in PR #1486) could not be fetched at that path on main in the 2026-10-20 route records (404). It was readable only through the PR diff or the raw file at the PR's commit. Whether it has since been moved or merged under another path: 確認できない.
  • If the table cannot be fetched, map tool → REST endpoint → GitHub's "permissions required for fine-grained personal access tokens" page.
  • Cursor: set GITHUB_PERSONAL_ACCESS_TOKEN in the env of the server entry (docs/installation-guides/install-cursor.md).

成功の確認

Cursor の mcp.json に GITHUB_PERSONAL_ACCESS_TOKEN を入れた状態で、4 種のツール(read / issue / PR / Actions log)がそれぞれ 200 を返す。

根拠

解決しなかった場合

  • private repo で 404 が返るとき: Contents: read が無いと 404 (not 403) になり wrong repo name に見える可能性がある。この挙動は本カードでは未観測(確認できない)。権限を見直してから repo 名を疑う。
  • org リポジトリなら、org が fine-grained PAT を許可しているか、PAT が承認待ちでないかを確認。
  • human_step_required: yes

調査の軌跡

  • A5 C-05 (2026-10-20): install-cursor.md + README; the per-tool fine-grained table was not found.
  • arm0-claude-run1-g2 (2026-10-20): PR #1486 files view showed only the filename; the full table was read from the PR diff at patch-diff.githubusercontent.com.
  • arm0-claude-run2-g2 (2026-10-20): docs/tool-permissions.md on main → 404; the raw file at the PR's commit returned the table.
  • arm0-claude-run3-g2 (2026-10-20): both main paths → 404; fell back to GitHub's REST fine-grained permissions page.
  • Dead ends seen: a third-party page mixing classic scopes with fine-grained names; a glama entry that was a different (unofficial) GitHub MCP server.

追試

(none yet)

この記録の状態

status: unverified — extracted from the official repository, a merged PR and GitHub docs via route records; the error message and the 404-vs-403 behaviour have not been observed by KanseiLINK. It does not affect any grade. No rates, no rankings.


Canonical record (正本): the Markdown file in the agent-stars repository on GitHub — https://github.com/michielinksee/agent-stars/blob/main/wiki/errors/rest-403-na-github-mcp-fine-grained-pat-permissions.md. Edits and retests land there first; this page mirrors it. License CC BY 4.0.

One record, not a rate or a ranking. Status levels: lived / verified are evidence; unverified / extracted_from_issue are leads and never affect grades.