Agent Github

io.github.craftsamo由 GitHub 帳號 craftsamo 發布v0.2.0更新於 Nov 4, 2026

GitHub tools for coding agents: issues, project boards, pull requests, releases and Actions.

已驗證STDIO僅桌面效率與工作流開發者工具

概覽

AI 產生的概覽

給編碼代理使用的 GitHub 工具,涵蓋議題、專案看板、拉取請求、儲存庫、發行與 Actions,以 MCP 伺服器或各 harness 外掛形式提供。

可以做什麼
  • 完整檢視單一議題,或列出儲存庫的議題及父議題的子議題
  • 建立、編輯、留言、關閉、重新開啟議題,設定議題之間的關聯,或建立與議題連結的分支
  • 選擇要註冊哪些工具集(issues、pull requests、projects、repos、releases、actions),並依 ID 加入或排除個別工具
  • 以唯讀模式執行,此時不註冊任何寫入工具
  • 每個工具集附帶一個技能,告訴代理如何使用對應工具
適用情境
適合讓編碼代理直接處理 GitHub 議題與拉取請求,例如分類、建立、關聯或關閉議題以及建立連結分支,而不必由使用者手動複製資訊。目前版本只有 issues 工具集包含工具。
執行需求
透過 stdio 在本機執行。需要 Node.js 24 或更新版本,以及已安裝並以使用者身分完成驗證的 GitHub CLI。應從發行標籤或版本安裝,而非預設分支。設定可透過命令列旗標或 AGENT_GITHUB_TOOLSETS、AGENT_GITHUB_READ_ONLY、AGENT_GITHUB_TOOLS、AGENT_GITHUB_EXCLUDE_TOOLS、AGENT_GITHUB_CONFIRM 環境變數提供,但 Codex 與 Grok Build 不會將環境變數傳給外掛的伺服器。
安裝前請注意
工具透過已驗證的 GitHub CLI 以使用者身分操作 GitHub,寫入會影響真實儲存庫。寫入包括建立與編輯議題、留言、關閉、重新開啟、變更關聯關係以及建立分支。OpenCode 會放行任何未被規則命名的動作,因此除非加入 github_* 的 ask 規則,寫入會在未詢問的情況下執行;Hermes 的 -z 與 --yolo 會跳過核准。可用 read_only 或 exclude_tools 限制註冊的工具。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Agent Github,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

agent-github

GitHub tools for coding agents: issues, project boards, pull requests, repositories, releases and Actions. One implementation, delivered to each agent harness in the form that suits it best.

HarnessDeliveryPinned by
OpenCode V2native plugin (npm package, with skills)the version in the package
OpenCode V1native plugin (npm package, no skills)the version in the package
Claude Codeplugin: MCP server and skillsthe release tag, as the ref
Codexplugin: MCP server and skillsthe release tag, as the ref
Grok Buildplugin: MCP server and skillsthe release tag, as @ref
Antigravityplugin: MCP server and skills (not yet verified)the release tag's tree URL (not yet verified)
Hermes Agentnative plugin (Python, calls the command line)the release commit, as the SHA
other MCP hostMCP server from npmthe version in the package

0.2.0 renamed the MCP server from github to agent-github, so allow rules and MCP configurations written for 0.1.0 change.

The tools need Node.js 24 or later and the GitHub CLI, authenticated as you. docs/conventions.md describes how the tools are named and how they behave.

Install

Install from a release, never from the default branch: a release is a tag whose commit carries the built dist/, and the default branch does not. In the commands below, <version> is a release's version (1.2.3) and <sha> is the commit its tag names:

sh
gh api repos/craftsamo/agent-github/commits/v<version> --jq .sha

OpenCode

OpenCode V2 takes the package and its options in opencode.json:

json
{  "plugins": [    {      "package": "@craftsamo/agent-github@<version>",      "options": { "toolsets": ["issues", "pull_requests", "projects"] }    }  ],  "permissions": [{ "action": "github_*", "resource": "*", "effect": "ask" }]}

OpenCode V1 takes the package as a string, or as a pair with its options:

json
{  "plugin": [["@craftsamo/agent-github@<version>", { "toolsets": ["issues", "pull_requests", "projects"] }]],  "permission": { "github_*": "ask" }}

OpenCode allows any action no rule names, so the plugin's request is granted silently unless a rule says ask. Read tools never ask, so the github_* glob is safe.

V1 registers no skills. Unpack the package and copy its skills/* folders into ~/.config/opencode/skills/:

sh
npm pack @craftsamo/agent-github@<version>tar -xzf craftsamo-agent-github-<version>.tgzmkdir -p ~/.config/opencode/skillscp -r package/skills/* ~/.config/opencode/skills/rm -rf package craftsamo-agent-github-<version>.tgz

Claude Code

sh
claude plugin marketplace add craftsamo/agent-github#v<version>claude plugin install agent-github@craftsamo

Codex

sh
codex plugin marketplace add craftsamo/agent-github --ref v<version>codex plugin add agent-github@craftsamo

Codex starts the MCP server in the plugin's install directory, so name issues as owner/repo#N or pass repo (a bare number fails there with a message saying so).

Grok Build

sh
grok plugin install craftsamo/agent-github@v<version> --trust

Antigravity

Install from the tree of the release tag, never from the default branch, which has no built dist/. The pinning and the install command are not yet verified on a real install.

sh
agy plugin install https://github.com/craftsamo/agent-github/tree/v<version>

Hermes Agent

Hermes installs a commit, not a tag, and the plugin installs disabled:

sh
hermes plugins install craftsamo/agent-github --ref <sha>hermes plugins enable agent-github

Any other MCP host

Add the server to the host's MCP configuration. Flags go in args:

json
{  "mcpServers": {    "agent-github": {      "command": "npx",      "args": ["-y", "@craftsamo/agent-github@<version>", "--toolsets", "issues,pull_requests,projects"]    }  }}

Tools and skills

Each toolset comes with a skill that tells an agent how to use its tools. A toolset with no tools yet registers none (0.2.0 ships the issues tools).

Issues (issues)

ToolWhat it doesClass
github_issue_readview one issue in full, or list a repository's issues or a parent's sub-issuesread
github_issue_createcreate an issue with its kind, labels, assignees, milestone, parent and blocked-by issuesadd
github_issue_editchange the title, body (or append to it), kind, labels, assignees or milestoneoverwrite
github_issue_commentcomment on an issueadd
github_issue_closeclose with a reason (completed, not_planned, duplicate)overwrite
github_issue_reopenreopen a closed issueoverwrite
github_issue_relateset the parent, sub-issues, blocked-by and blocking issues, sending only what differsidempotent
github_issue_developcreate a branch on GitHub linked to the issue, or return the one already linkedidempotent

The skill is github-issues. An issue's kind is the organization's Issue Type of that name when it defines one, otherwise a type:<kind> label.

Reads and writes

Every read tool is named github_<domain>_read. Reads can run unasked; writes are confirmed by the harness.

HarnessReads without asking
OpenCodealways; the plugin asks only before a write
Claude Codethe rule mcp__plugin_agent-github_agent-github__*_read in permissions.allow of ~/.claude/settings.json or a project
Codexalways; Codex runs tools that declare readOnlyHint unasked, as the read tools do
Grok Buildgrok --allow 'MCPTool(agent-github__*_read)'
Antigravityan Allow rule mcp(agent-github/<tool>) for each read tool; not yet verified
Hermesalways; the plugin asks only before a write

Where a write is asked about, and where it is not:

  • OpenCode grants any action no rule names, so a write runs unasked unless a rule asks for it: add the github_* rule shown under OpenCode.
  • Codex under codex exec, and Grok Build under grok -p, refuse a write they cannot ask about, unless it is allowed beforehand.
  • Hermes hermes chat -q refuses a write it cannot ask about; hermes -z and --yolo skip approval, so writes then run unasked.

Settings

Every entry point takes the same settings. A flag wins over its environment variable, and an option or setting wins over the variable too.

SettingFlagVariableMeaning
toolsets--toolsetsAGENT_GITHUB_TOOLSETSissues, pull_requests, projects, repos, releases, actions or all; default issues and pull_requests
read_only--read-onlyAGENT_GITHUB_READ_ONLYregisters no tool that writes; wins over every other setting
tools--toolsAGENT_GITHUB_TOOLSsingle tools to add by ID, whatever their toolset
exclude_tools--exclude-toolsAGENT_GITHUB_EXCLUDE_TOOLSsingle tools to remove by ID; wins over tools and toolsets
confirm--confirmAGENT_GITHUB_CONFIRMMCP server only: harness (default) or elicitation, as docs/conventions.md describes

Lists are comma-separated in a flag or a variable. Where each harness reads them:

  • OpenCode takes the plugin options shown above, with lists as arrays and read_only as a boolean.

  • Hermes takes plugins.entries.agent-github.settings in config.yaml:

    yaml
    plugins:  entries:    agent-github:      settings:        toolsets: [issues, pull_requests, projects]        read_only: false        exclude_tools: [github_pr_merge]
  • Claude Code and Antigravity start the plugin's server without flags; Claude Code passes the client's environment, so set the variables in the environment the harness runs in.

  • Codex and Grok Build pass no environment to a plugin's MCP server, so the AGENT_GITHUB_* variables have no effect there. To change settings in Codex, add the server under [mcp_servers] in Codex's config with flags in args (as in Any other MCP host) instead of using the plugin.

Layout

  • src/core/ — the tools, free of any harness.
  • src/mcp/ — the MCP server, built to dist/mcp.js and run by agent-github.
  • src/opencode/ — the OpenCode plugin, built to dist/opencode.js.
  • src/cli/ — the command line the Hermes plugin calls, built to dist/cli.js and run by agent-github-cli.
  • src/hermes/, plugin.yaml and __init__.py — the Hermes plugin.
  • skills/ — one skill per toolset, skills/<name>/SKILL.md, which every harness that takes skills loads from the package or plugin root.
  • plugin.json, mcp.json, .mcp.json, .claude-plugin/, .agents/plugins/, .antigravity-plugin/ and mcp_config.json — the plugin manifests of the other harnesses. The root .mcp.json is the configuration Grok Build reads (with ${CLAUDE_PLUGIN_ROOT}, the variable both Grok Build and Claude Code expand); when working on this repository in Claude Code, decline the project MCP server it offers from that file.

How a release is made is in RELEASING.md.

License

MIT

來源:README.md,提交 6541d5a

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:軟體包安裝失敗。

版本歷史

1
  1. v0.2.0最新Nov 4, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分