鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-github-mcp

把 GitHub 官方远程 MCP server 封装为 DSH 插件:PAT 存入 DSH 凭据中心(.credentials.yaml),提供 github_set_token / github_token_status 模型工具,GitHub 工具以 mcp__github__* 形式可用。

代码评审
访问 GitHub
文档README

dsh-github-mcp

把 GitHub MCP 整体封装成一个 DSH 插件:接入 GitHub 官方远程 MCP Server,token 存到 DSH 凭据中心(.credentials.yaml),可通过模型工具输入;GitHub 工具以 mcp__github__* 形式可用。附带可选面板插件 dsh-github-mcp-hint(需额外安装,见下文)。


📚 功能

  • GitHub MCP 连接:通过 @deepseek-ai/dsh-mcp-client 连接 https://api.githubcopilot.com/mcp/,GitHub 工具以 mcp__github__* 名称出现(search_repositories、list_pull_requests、create_pull_request、push_files、get_file_contents、merge_pull_request、add_issue_comment …共 40+ 个)。
  • token 存到凭据中心:GitHub PAT 存在 DSH 的 .credentials.yaml(refs.GITHUB_TOKEN),不写入源码、不进日志。
  • 模型工具:
    • github_token_status — 查看 token 是否已配置、来源、是否可写。
    • github_set_token — 输入/更新 token(写入凭据中心并刷新当前环境)。
  • 面板插件 dsh-github-mcp-hint(可选,需额外安装):设置 → 插件 → GitHub MCP 的示例 + 公开仓库统计 UI。

🚀 快速开始

▼
sh
复制代码
# 1. 安装主插件 dsh plugin --profile web add dsh-github-mcp # npm 推荐 # —— 或 —— dsh plugin --profile web add github:ZIye1208/dsh-github-mcp # 从 GitHub 安装 # 若要「设置 → 插件 → GitHub MCP」面板,需再单独安装面板插件: dsh plugin --profile web add dsh-github-mcp-hint # 2. 设置 token(对话里说即可) # “帮我把 GitHub token 设为 ghp_xxx” # 3. 重启 DSH,然后问 # “我的 GitHub token 配好了吗” (github_token_status) # “看看我的仓库有多少星多少下载”(走 mcp__github__* / 面板)

⚙️ 安装

方式一:npm(推荐,已发布到 npmjs)

▼
sh
复制代码
dsh plugin --profile web add dsh-github-mcp

安装会把 dsh-github-mcp-hint 一并装进 node_modules(作为依赖),但 DSH 只把「顶层依赖」加入 profile 的 bundles 层,因此面板插件不会自动启用。若需要「设置 → 插件 → GitHub MCP」面板,请额外执行:

▼
sh
复制代码
dsh plugin --profile web add dsh-github-mcp-hint

本包已发布到 npmjs registry:dsh plugin --profile web add dsh-github-mcp。

方式二:GitHub

▼
sh
复制代码
dsh plugin --profile web add github:ZIye1208/dsh-github-mcp

方式三:本地开发

▼
sh
复制代码
# 在 profile 的 package.json 用 link 指向本地路径,并加入 dsh.profile.bundles,然后重启 DSH

🔑 前置条件

  1. DSH 版本 >= 0.1.x(本插件依赖 @deepseek-ai/dsh-mcp-client,属 DSH 核心)。
  2. GitHub PAT:在 GitHub → Settings → Developer settings → Personal access tokens 生成,需作用域 repo、read:org、read:packages(用于 MCP 读写仓库/PR/issue)。

🔐 设置 token(三选一)

方式 A:模型工具(推荐)

在对话里说:

帮我把 GitHub token 设为 ghp_xxxxxxxx

agent 调用 github_set_token,写入 ~/.dsh/.credentials.yaml 的 refs.GITHUB_TOKEN,并更新当前环境变量。

方式 B:直接编辑凭据中心

编辑 ~/.dsh/.credentials.yaml,在 refs: 下加一行:

▼
yaml
复制代码
version: 1 refs: GITHUB_TOKEN: ghp_xxxxxxxx # records: # ...

保存后,下一次 DSH 启动时插件会自动把它桥上到 process.env.GITHUB_TOKEN。

方式 C:环境变量(传统)

在启动 shell 设 GITHUB_TOKEN=ghp_xxx 后启动 DSH。注意:一旦环境里已有 GITHUB_TOKEN,它优先且只读,github_set_token 写入凭据中心会被拒绝——需先 unset GITHUB_TOKEN 再用方式 A/B。

⚠️ 修改 token 后需重启 DSH 才生效:mcp-client 在启动时读取 token(静态 header),运行中不会重连。


🧭 使用

  • 看 token 状态:问「我的 GitHub token 配好了吗」→ github_token_status。
  • 列 PR / 建 PR / 推代码 / 改文件 / 搜代码:直接用自然语言,模型会调 mcp__github__*。示例:
    • “查看仓库 owner/repo 里所有 open 状态的 Pull Request,按更新时间倒序”
    • “在当前分支提交所有改动并推送到 GitHub,提交消息按变更自动生成”
    • “给 owner/repo 的 PR #123 添加一条评论说明测试已通过,并标记 ready for review”
    • “在 owner/repo 里搜索关键词 xxx 的代码文件”
  • 面板 UI:设置 → 插件 → GitHub MCP(由 dsh-github-mcp-hint 提供,随机 4/30 条示例、公开仓库统计)。

🗑️ 卸载 / 禁用

卸载整个插件(含面板)

▼
sh
复制代码
dsh plugin --profile web remove dsh-github-mcp

只卸载面板插件(不影响 GitHub MCP)

dsh-github-mcp 自动捆绑安装了面板插件 dsh-github-mcp-hint(作为依赖)。可独立卸载:

  1. 从 profile 的 dsh.profile.bundles 移除 dsh-github-mcp-hint;
  2. 卸载该包:dsh plugin --profile web remove dsh-github-mcp-hint。

卸载面板后,github_token_status / github_set_token 及所有 mcp__github__* 仍可用。

只禁用面板(不卸载)

在 profile 的 cordis.patch.yml 给面板行加:

▼
yaml
复制代码
- id: dsh-github-mcp-hint disabled: true

🧩 架构(为什么这么设计)

▼
text
复制代码
用户输入 token ──(github_set_token)──► DS H 凭据中心 .credentials.yaml (refs.GITHUB_TOKEN) │ ▼ 启动时插件桥接 process.env.GITHUB_TOKEN │ ▼ mcp-client 启动读取 Authorization: Bearer <token> ──► https://api.githubcopilot.com/mcp/ │ ▼ 注册 mcp__github__* 工具(模型可调)
  • dsh-github-mcp = GitHub MCP 连接 + token 凭据中心。
  • dsh-github-mcp-hint = 面板 UI(独立仓库,可卸载)。
  • 为什么 token 在凭据中心而不是环境:DSH 官方凭据存储(.credentials.yaml)不会自动注入 process.env,所以插件在启动时做一次「凭据中心 → 环境变量」的桥接,让 mcp-client 能读到。

❓ 常见问题

  • mcp__github__* 没出现:多半是 token 未配置或未重启。先 github_token_status,再重启 DSH。
  • github_set_token 被拒:启动环境里已有 GITHUB_TOKEN(只读)。先 unset GITHUB_TOKEN,再用工具保存到凭据中心。
  • serverName "github" already in use:你在 profile 里手动加过 mcp-github 行。删掉那行,交给本插件的 cordis.patch.yml(含 mcp-github 行)管理。
  • token 改了不生效:重启 DSH(mcp-client 启动时读一次)。
  • 装完 dsh-github-mcp 但没有「GitHub MCP」面板:DSH 只把顶层依赖加入 bundles 层,dsh-github-mcp-hint 作为依赖不会自动启用。请再执行 dsh plugin --profile web add dsh-github-mcp-hint(或把它加进 profile 的 dsh.profile.bundles),然后重启 DSH。

📄 仓库关系

仓库作用
ZIye1208/dsh-github-mcpGitHub MCP 连接 + token 凭据中心(本插件)
ZIye1208/dsh-github-mcp-hint面板 UI(独立、可卸载)

许可

MIT

代码评审

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:ZIye1208/dsh-github-mcp

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
dsh-code-review
提供 /review、/review-status 和 /review-cancel,用独立原生子 Agent 审查所选 Git 范围(基准分支、未提交更改、某次提交或自定义要求),并把发现报告返回当前会话;报告语言跟随宿主 locale,支持中英文。
AgentsGitFlowController
AI 编码智能体分支角色守卫:可配置集成/预览/生产/归档角色,拦截对受保护分支的直接推送、强推与删除,以及智能体对生产/归档分支的合并。
dsh-github-mcp-hint
GitHub MCP 辅助面板:在「设置 → 插件 → GitHub MCP」展示可复制的示例提示(30 条示例池随机 4 条)、可视化公开仓库的星/fork/语言,并提供 gh_repo_stats / gh_current_user 模型工具。
source-code-mgmt
DSH 网页界面的代码管理面板,五步搞定 Git 日常:① 环境检查自动检测 git/gh/ssh,缺工具一键安装(gh 支持镜像下载源加速,Windows 也可用)并带检查更新;② SSH ed25519 密钥生成/连接测试 + 一键写 443 配置绕过 22 端口封锁,Gitee 私人令牌在此配置;③ 查看仓库状态、并排 diff、暂存提交、切换分支、查看/回滚历史,一键新建仓库并推送,自动忽略超 100MB 文件;④ 列出账号名下所有远程仓库一键克隆;⑤ 五步发布 npm 包。支持 GitHub / Gitee 双平台,界面中英文跟随 DSH 设置实时切换。
dsh-update
一键更新本地 DeepSeek Harness:侧边栏按钮对比版本、拉取重建并自动重启,还可选择回退到任一历史版本,全程实时进度。