GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
제작자가 쓴 설명(영어 원문)
Safety boundary for agent written GitHub PR reviews: pending and invisible, submitting is opt-in
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
GITHUB_TOKEN비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"review-guard": {
"command": "npx",
"args": [
"-y",
"@eclipsesource/review-guard-mcp",
"--stdio"
],
"env": {
"GITHUB_TOKEN": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add review-guard --env GITHUB_TOKEN=your-value -- npx -y @eclipsesource/review-guard-mcp --stdio실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"review-guard": {
"command": "npx",
"args": [
"-y",
"@eclipsesource/review-guard-mcp",
"--stdio"
],
"env": {
"GITHUB_TOKEN": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"review-guard": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@eclipsesource/review-guard-mcp",
"--stdio"
],
"env": {
"GITHUB_TOKEN": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 도메인 eclipsesource.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: GITHUB_TOKEN
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 3개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: GitHub, Desktop Commander, Cloudflare MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
MCP server (review-guard-mcp) that lets AI agents work on GitHub PR reviews behind a safety boundary. The server holds the write-enabled GitHub token and exposes only review operations, so the agent never sees the token. What those operations are allowed to do is fixed at server start, not negotiable by the agent.
A write-enabled GitHub token is needed to create review comments, but giving that token directly to an agent risks accidental or prompt-injected actions: submitting approvals, requesting changes, closing other people's review threads, or touching unrelated repositories. This server sits in between and narrows the token down to exactly the review capabilities you opt into.
The server supports two modes of use:
The agent reads PR discussion context and builds a pending (draft) review. Nothing it writes is visible to anyone else until a human opens the PR, inspects the draft comments, and submits the review themselves. Submission is structurally unreachable: the submit tool is not even registered, and the underlying client refuses every submit action.
Use this when an agent assists a human reviewer, for example in IDE setups (Claude Code, Codex, Theia) where the agent drafts inline comments and the human stays the reviewer of record.
--allow-submit)Started with --allow-submit, the server additionally registers a submit tool so the agent can post the review itself. Guardrails stay in place:
--allow-resolve lets the agent resolve its own review threads (never anyone else's), and --repo/--pr pin the server to a single pull request.Use this for unattended, autonomous review bots, for example a watcher that reviews every PR where a review is requested from the bot account and posts a real (comment-only) review.
Requires Node.js >= 22.
Install globally (makes review-guard-mcp available in PATH):
npm install -g @eclipsesource/review-guard-mcp
Or pin to a specific version:
npm install -g @eclipsesource/review-guard-mcp@<version>
The server is also listed in the MCP Registry as com.eclipsesource/review-guard, so clients that browse the registry can find and install it from there. The entry is metadata only, there is no hosted instance to connect to: it describes the npm package above, which your client installs and runs locally in the default pending mode.
Requires npm >= 12 and a Node version supported by it (see CONTRIBUTING.md):
git clone https://github.com/eclipsesource/review-guard.git
cd review-guard npm ci npm run build npm link # creates a global symlink to the binary
| Tool | Availability | Description |
|---|---|---|
get_pr_review_context | always | Get PR author/message, submitted review summaries, inline review threads with resolved state, reactions and permalinks, and general PR comments |
list_pending_review | always | List the authenticated user's pending draft review, including all current pending review comments and their permalinks |
add_review_comments | always | Add one or more comments to the authenticated user's pending review, creating the pending review if needed |
modify_review_comment | always | Update or delete one comment from the authenticated user's pending review |
delete_pending_review | always | Delete the authenticated user's pending review and all its comments |
submit | --allow-submit | Submit the pending review as a real, posted review. The action is limited to the allowed set and the review summary always starts with the fixed, server-configured disclaimer |
resolve_review_thread | --allow-resolve | Resolve one of the authenticated user's own review threads (e.g. a prior finding the latest push fixed). Refuses threads started by anyone else |
By default the server cannot submit reviews. To allow it, start the server with --allow-submit listing one or more of approve, comment, reject:
review-guard-mcp --port 4000 \
--allow-submit approve,comment \ --submit-body "This is an autonomous, AI-based review and may contain mistakes."
--allow-submit enables the submit tool and restricts its action enum to exactly these values. approve maps to APPROVE, comment to COMMENT, and reject to REQUEST_CHANGES. Invalid actions abort startup.--submit-body sets the fixed review summary prefix posted with every submission. The agent cannot change or remove it and may only append its own summary below it. If omitted while --allow-submit is set, a built-in default disclaimer is used. Its wording adapts to the allowed actions (when approve is not allowed it states the review is not an approval, rather than caveating one). Requires --allow-submit and must not be empty.--allow-resolve registers the resolve_review_thread tool. The client resolves only threads whose first comment was authored by the authenticated user, so a bot can tidy up its own now-fixed findings on a re-review but never close another reviewer's conversation.Without --allow-submit, the submit tool is not registered and the submitReview client method refuses every action, so submission is structurally unreachable.
Start the server with --repo --pr to pin it to one pull request:
review-guard-mcp --port 4000 --repo eclipsesource/some-repo --pr 123
When scoped, every tool drops its owner/repo/pull_number arguments and acts on that PR only. resolve_review_thread additionally checks that the thread belongs to it. The client (github.ts) enforces this independently of the tool schemas, so a caller cannot reach a different PR or repo the token can otherwise write to. Use this whenever the server backs an automated review of a known PR (typically together with submit mode), so a prompt-injected agent cannot post to or resolve threads on unrelated PRs. Both flags are required together. Omitting them leaves the server unscoped (the caller supplies the PR per call).
The server runs as a child process managed by the IDE. No port configuration needed.
For MCP clients that use the common JSON config shape (Claude Code, VS Code, Theia):
{
"mcpServers": { "review-guard": { "command": "npx", "args": ["-y", "@eclipsesource/review-guard-mcp", "--stdio"] } } }
For Codex, add the server to ~/.codex/config.toml or a trusted project-local .codex/config.toml:
[mcp_servers.review-guard]
command = "npx" args = ["-y", "@eclipsesource/review-guard-mcp", "--stdio"]
Or pin to a specific version:
{
"mcpServers": { "review-guard": { "command": "npx", "args": ["-y", "@eclipsesource/review-guard-mcp@ ", "--stdio"] } } }
The server runs standalone and exposes a Streamable HTTP endpoint.
Start the server:
review-guard-mcp --port 4000 # bind to 127.0.0.1 (localhost only)
review-guard-mcp --port 4000 --host 172.17.0.1 # bind to a specific address instead
Then point your MCP client at the printed URL (e.g. http://127.0.0.1:4000/mcp). Each POST is an independent stateless request.
Codex HTTP configuration uses the same TOML shape:
[mcp_servers.review-guard]
url = "http://127.0.0.1:4000/mcp"
--host flagBy default the HTTP server binds to 127.0.0.1, which makes it unreachable from containers and other machines. Pass --host to bind one specific address instead. Because the endpoint is unauthenticated, the unspecified addresses (0.0.0.0, ::) are rejected at startup.
The main use case is a reviewing agent that runs inside a container (e.g. a sandboxed agent runtime) and needs to reach the MCP server on the host. On Linux, bind the container network's gateway IP, e.g. for Docker's default bridge (typically 172.17.0.1):
review-guard-mcp --port 4000 \
--host "$(docker network inspect bridge --format '{{(index .IPAM.Config 0).Gateway}}')"
The host firewall must also allow traffic on the MCP port from the container subnet, e.g. with ufw:
sudo ufw allow from 172.17.0.0/16 to any port 4000 proto tcp
From inside the container you can point the client at whichever local name reaches the host: the gateway IP itself, host.docker.internal (Docker) or host.containers.internal (Podman), or a localhost/127.0.0.1 alias that your runtime maps to the host. With a non-loopback --host the server accepts the Host header for any of these while still rejecting unknown hosts, so DNS-rebinding protection stays on.
If the GitHub CLI is installed and authenticated (gh auth login), no token configuration is needed. The server automatically retrieves the token via gh auth token.
If gh is not available, provide a token explicitly via the MCP config:
{
"mcpServers": { "review-guard": { "command": "npx", "args": ["-y", "@eclipsesource/review-guard-mcp", "--stdio"], "env": { "GITHUB_TOKEN": "ghp_..." } } } }
The full resolution order is:
A fine-grained personal access token scoped to the repositories you review is recommended.
Host header against the bound address (DNS rebinding protection), so a malicious website cannot reach the server through a victim's browser.--host restrict the port to the intended subnet via firewall, because every machine or container on that network can otherwise reach it. Unspecified bind addresses (0.0.0.0, ::) are refused at startup.앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요