dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
GitHub MCP 辅助面板:在「设置 → 插件 → GitHub MCP」展示可复制的示例提示(30 条示例池随机 4 条)、可视化公开仓库的星/fork/语言,并提供 gh_repo_stats / gh_current_user 模型工具。
A DSH plugin that adds a Settings → Plugins → GitHub MCP page (public repo stats + example prompts) and a model tool gh_repo_stats (stars, forks and 14-day clone counts for the authenticated account).
localStorage, no repeated requests within 30 minutes, so it barely touches GitHub's 60/hour/IP unauth budget) and ② graceful fallback (on 403/429/network failure it shows cached data with a note instead of a blank/error). The token never reaches the browser.gh_repo_stats / gh_current_user tools in the chat.gh_repo_statsGITHUB_TOKEN and returns all of the account's repos (including private) with stars, forks and 14-day clone counts.gh_repo_stats.Why "front-end direct public API + cache throttling" instead of going fully through the host: GitHub's public repo stars/forks need no token, and DSH has no clean host→front-end channel for token-bearing data push (
sessions.provideis a browser-side method; session projection can only fold session events, not carry external fetch data, and the settings tab has nouseProjection;host.callis disabled for bundled plugins). So the browser calling the public API directly is the most practical way to keep the panel visual. To prevent 403, v0.3.1 adds local cache + throttling (30-min TTL, barely consuming GitHub's 60/hour/IP unauth quota) and fallback-to-cache on errors. Auth-only data (clone counts, private repos) still comes from the host-side token-bearing tools.
Note: DSH adds only top-level dependencies to a profile's bundles layer, so this panel plugin must be explicitly installed via one of the ways below to appear in "Settings → Plugins → GitHub MCP"; merely being carried as a dependency of
dsh-github-mcpdoes not show it automatically.
dsh plugin --profile web add dsh-github-mcp-hint
dsh plugin --profile web add github:ZIye1208/dsh-github-mcp-hint
Or add this repo as a local link: dependency in the profile's package.json, add it to dsh.profile.bundles, then restart DSH.
The examples and the tool depend on DSH being connected to GitHub MCP. Add to the profile's cordis.patch.yml:
- insert:
- id: mcp-github
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: github
transport: streamable-http
url: https://api.githubcopilot.com/mcp/
headers:
Authorization: !!js '`Bearer ${process.env.GITHUB_TOKEN}`'
failOnStartupError: false
Set GITHUB_TOKEN (a GitHub PAT with repo / read:org / read:packages), then restart DSH. GitHub tools appear as mcp__github__* (e.g. mcp__github__list_pull_requests, mcp__github__create_pull_request, mcp__github__search_repositories).
gh_repo_stats is not shown in the panel; call it from the chat. Use it if you want private repos or clone counts.localStorage, with no repeated request within 30 minutes, so it barely uses GitHub's 60/hour/IP unauth quota.gh_repo_stats / gh_current_user for clone counts, private repos, etc.sessions.provide is a browser-side method; session projection can only fold session events and the settings tab has no useProjection; host.call is disabled for bundled plugins), so "front-end direct public API + cache throttling" is the practical approach.fetch to api.github.com/users/{user}/repos (the source of 403 / unauth rate limiting).gh_repo_stats / gh_current_user; added 401/403 error hints.