想让 Agent 用上官方 github/awesome-copilot 仓库里那批现成的 Agent、提示词、技能与工作流,最省事的办法不是一个个下载,而是接一个只读的 MCP 服务器。awesome-copilot-mcp 把这些资源做成索引,Agent 可以按名字搜索、按需取内容。本教程按官方 README 与 npm 包 0.8.8 的元数据六步落地:核对运行时与版本、写 mcpServers 接 stdio、用 MCP Inspector 验工具、起 HTTP 模式验五个端点、用 refresh_metadata 做热更新、最后让 Agent 真检索一次并完成验收回退。全程不需要 API Key,但会涉及本地端口与命令口径的坑,逐步标出。
Node.js 20 或更新(npm 包 engines 标注 >=20.0.0)、可用的 npm 与 npx、一个支持 MCP 的客户端(VS Code 的一键安装还要求装好 GitHub Copilot 扩展)、一个能跑 curl 的终端。主线不新增 API Key;若后续要访问私有仓库或自托管元数据,凭据请放环境变量,别写进会提交到仓库的客户端配置。先弄清:它是索引服务器,不是资源本体
官方 README 写的是「Bundled + In-Memory」架构:启动时加载打包在 npm 包里的 metadata.json(约 170 KB,只有索引信息),不依赖外部服务、不写本地磁盘缓存;refresh_metadata 再去 GitHub 拉最新数据,但只存在当前会话的内存里。真正的资源内容与下载地址,是通过暴露出来的工具和资源按需解析的。GitHub Actions 每天跑一次,发现变化才发新 npm 版本。
| 它索引的资源类型 | README 里的说明 |
|---|---|
| 🤖 Agents / 💬 Prompts / 📋 Instructions | 官方 awesome-copilot 仓库发布的智能体、提示词与指令 |
| 🛠️ Skills | 按目录识别(folder-aware) |
| 📦 Collections / 🎁 Plugins | 集合,以及来自 plugins/external.json 的插件 |
| 🪝 Hooks / ⚡ Agentic Workflows | 钩子与智能体工作流 |
两处口径先对齐:① 官方 README 的客户端配置写 args: ["-y", "awesome-copilot-mcp", "start"],而第三方 MCP 目录里的示例写 args: ["-y", "awesome-copilot-mcp"](不带 start),两种写法都在流通,别混用,按你本地 --help 的输出决定;② 索引的是 github/awesome-copilot 的内容,资源的许可、质量与可用性由上游决定,本服务器只负责索引与检索。README 标注许可为 MIT,指的是这个服务器包本身。
Step 1:核对 Node 版本与包元数据
用 npm registry 的元数据核对版本、Node 要求、入口与依赖,比只看安装命令成功更可靠。本教程核对时 latest 是 0.8.8,入口为 dist/cli.js,运行时依赖包含 @modelcontextprotocol/sdk ^1.32.0。
# 核对本机运行时(包要求 Node >=20.0.0)
node --version
npm --version
# 查 npm 上的当前版本与元数据(不安装)
npm view awesome-copilot-mcp version
npm view awesome-copilot-mcp engines
npm view awesome-copilot-mcp license
npm view awesome-copilot-mcp bin
# 查看 CLI 支持哪些子命令,用来裁决 start 参数之争
npx -y awesome-copilot-mcp --help
# 审阅包来源(浏览器打开也可以)
# https://github.com/RbBtSn0w/awesome-copilot-mcp
# 重点看:README.md、LICENSE、package.json 的 scripts
npx -y 会自动装最新版:README 说这样能「始终运行最新版本」,但版本一变,参数与工具清单可能跟着变。团队或 CI 里建议锁死版本(例如 npx -y [email protected] 或把版本写进客户端配置),升级前先在测试客户端里跑一遍本教程的验收。另外别把第三方目录页当成权威文档,命令以仓库 README 与本地 --help 为准。
Step 2:写 mcpServers 配置,把 stdio 接进客户端
把下面这段写进你的 MCP 客户端配置(Claude Desktop、VS Code 等)。stdio 是默认模式:客户端自己拉起进程,通过标准输入输出通信,不需要你手动监听端口。VS Code 用户也可以用 README 里的一键安装徽章,但要先装好 GitHub Copilot 扩展。
# 文件:你的 MCP 客户端配置(如 claude_desktop_config.json)
{
"mcpServers": {
"awesome-copilot": {
"command": "npx",
"args": ["-y", "awesome-copilot-mcp", "start"]
}
}
}
# 若本地 --help 显示不需要 start 子命令,改用这个写法
# "args": ["-y", "awesome-copilot-mcp"]
# 想锁版本时(团队 / CI 推荐)
# "args": ["-y", "[email protected]", "start"]
# 改完配置后重启客户端,让它重新拉起 MCP 进程
# 在客户端里问一句:列出 awesome-copilot 这个服务提供的工具
# 预期:能看到资源检索相关工具与 refresh_metadata
npx -y awesome-copilot-mcp --help,确认 npx 能拉起包,再回头查配置里的 JSON 逗号与路径。Step 3:用 MCP Inspector 把工具逐个看清楚
官方 README 推荐用 MCP Inspector 测试与调试,并给了两条路线:debug --no-build(stdio,推荐)与 npm run inspect:http。包元数据里还能看到 inspect:stdio、inspect:http、start-http:debug 这几个开发脚本,其中 inspect:http 明确把服务绑在 127.0.0.1:8080 并用 @modelcontextprotocol/inspector 连接 /mcp。
# 路线 A:stdio 调试(README 推荐,发布包自带 dist)
npx -y awesome-copilot-mcp debug --no-build
# 路线 B:HTTP 调试,需要先克隆仓库并装好开发依赖
git clone https://github.com/RbBtSn0w/awesome-copilot-mcp.git
cd awesome-copilot-mcp
npm install
npm run build
npm run inspect:http
# 对应的 stdio 开发脚本
npm run inspect:stdio
# 在 Inspector 里重点核对
# 1. 工具清单里是否有 refresh_metadata
# 2. 8 类资源是否都能作为资源或工具被列出
# 3. 调一次搜索类工具,看返回结构里有没有下载地址字段
别把开发脚本当成客户端配置:npm run inspect:http 一类脚本来自包的 scripts,要先克隆仓库、npm install 并 npm run build 才有 dist/;直接用 npx 跑发布包时没有仓库上下文,这些脚本不存在。debug --no-build 之所以能跑,是因为发布包里已经带了构建产物。若你改了源码,记得先 npm run build,否则调试的还是旧产物。
Step 4:起 HTTP 模式,验五个端点并收窄监听
README 给了 HTTP / OpenAPI 模式:起服务后可以验 /health、/metadata、/metadata/stream(SSE)、/search?q=kw 与 /openapi.json。官方示例用的是 --host 0.0.0.0,而包内 inspect:http 脚本用的是 127.0.0.1——本地调试请选后者。
# 官方 README 的示例(注意 host 是 0.0.0.0)
npx -y awesome-copilot-mcp start-http --port 8080 --host 0.0.0.0
# 本地调试建议改绑回环地址
npx -y awesome-copilot-mcp start-http --port 8080 --host 127.0.0.1
# 另开一个终端,逐个验端点
curl http://127.0.0.1:8080/health
curl http://127.0.0.1:8080/metadata
curl "http://127.0.0.1:8080/search?q=agent"
curl http://127.0.0.1:8080/openapi.json
# SSE 流式输出(用 -N 保持连接,按 Ctrl+C 退出)
curl -N http://127.0.0.1:8080/metadata/stream
# 用完记得停掉服务,别把端口一直开着
# Ctrl+C 结束前台进程
--host 0.0.0.0 会把服务暴露到局域网:README 的示例是为了「远程访问或 OpenAPI 测试」写的,官方没有在这些 HTTP 端点上给出鉴权配置;/openapi.json 会列出接口,/metadata 与 /search 会暴露索引内容。仅在可信网络里短期使用,本地调试优先 127.0.0.1,并确认防火墙规则。若确实要对外提供,请自行加反向代理、认证与 TLS,别把裸端口直接放出去。
Step 5:用 refresh_metadata 热更新,并读懂两个环境变量
包里自带的是发布时打包的 metadata.json;GitHub Actions 每天从 github/awesome-copilot 拉一次,检测到变化才发新 npm 版本。想不等发版就拿新数据,可以调 refresh_metadata,但官方写明结果只保存在当前会话的内存里。两个环境变量可以改数据来源。
# 在 Agent 或 Inspector 里调用(官方 README 给出的工具名)
# refresh_metadata —— 从 GitHub 拉最新数据,存到当前会话内存
# 环境变量(官方 README)
# ACP_METADATA_URL 可选,指向托管的 metadata.json
# 例如 https://yourname.github.io/repo/metadata.json
# 设置后覆盖 GitHub raw 拉取
# ACP_REPOS_JSON 自定义仓库配置 JSON
# 验热更新是否生效:调用前后各查一次
curl "http://127.0.0.1:8080/search?q=skill"
# 在客户端里调用 refresh_metadata 后再查同一个关键词
curl "http://127.0.0.1:8080/search?q=skill"
# 注意:进程重启后回到包内自带的 metadata.json
# 需要长期用新数据时,等新 npm 版本或自己托管 metadata.json
~/.cache(在 macOS App Sandbox 这类受限环境里更省事),代价是热更新不持久。团队要稳定口径时,用 ACP_METADATA_URL 指向自己托管并审过的 metadata.json。数据来源要自己把关:ACP_METADATA_URL 指向的 JSON 会成为索引来源,务必托管在你可控且可信的地址,并核对内容与完整性;ACP_REPOS_JSON 同理。另外上游仓库每天都在变,同一条搜索结果今天和明天可能不同,别把索引结果当成可复现的固定清单。
Step 6:让 Agent 真检索一次,并完成验收与回退
最后把链路交给 Agent:让它按名字找一份 Agent、提示词或技能,把返回的内容与下载地址落到你的项目里,再做一次更新与卸载演练。这一步验的是端到端可用,而不只是服务活着。
# 在已接好 MCP 的客户端里下达一句任务,例如:
# 「用 awesome-copilot 找一份适合做代码审查的 agent,
# 列出名字、来源与内容地址,先不要写入我的项目」
# 核对返回里是否有资源类型与下载地址,再决定是否落地
# 落地前先留可回滚状态
git status --short
git log -1 --oneline
# 升级:先查新版本,再改锁定的版本号并重跑验收
npm view awesome-copilot-mcp version
# "args": ["-y", "awesome-copilot-mcp@新版本", "start"]
# 重启客户端 → 让 Agent 复述工具清单 → 重新搜同一个关键词
# 回退:把 args 里的版本改回 0.8.8,重启客户端
git diff --stat
# 卸载:从客户端配置的 mcpServers 里删掉 awesome-copilot 这一项
# 若克隆过仓库做开发调试,再删掉克隆目录与占用 8080 的进程
交付前自查:本教程的命令、端点、环境变量、资源类型与架构说明来自 RbBtSn0w/awesome-copilot-mcp 官方 README;版本 0.8.8、engines >=20.0.0、MIT 许可、bin 入口与开发脚本来自 npm registry 的包元数据。项目与上游仓库都在更新,参数与工具清单请以你使用当天的 README、--help 与包元数据为准;HTTP 模式没有官方给出的鉴权配置,别把裸端口暴露到不可信网络。索引资源的许可与质量由 github/awesome-copilot 决定,落地到项目前请自行审阅内容。任何改动都请审 diff 并复跑验收后再提交。
做到哪一步算成功
六条验收都过,才算这个 MCP 服务器真的接好了:① node --version 不低于 20,且你能说出 npm view 查到的版本号、许可与入口;② 客户端重启后能列出该服务的工具,且你用本地 --help 裁决过 start 参数的写法;③ Inspector 里能看到 refresh_metadata 与 8 类资源,并成功调用过一次搜索类工具;④ HTTP 模式的五个端点都返回了预期内容,且你用的是 127.0.0.1 而不是把服务暴露到局域网;⑤ 你验证过 refresh_metadata 只在当前会话生效,重启后回到打包索引;⑥ Agent 用它找到过一份真实资源,并且你演练过一次锁定版本升级与回退。做到这些,再把客户端配置纳入团队文档。
常见问题速查
| 你遇到的现象 | 大概率原因与处理 |
|---|---|
| 客户端报找不到命令 | npx 没拉起包或配置 JSON 有错;先在终端单独跑 npx -y awesome-copilot-mcp --help |
带 start 与不带 start 哪个对 | README 与第三方目录写法不一致;以本地 --help 为准,别把两种混用 |
| VS Code 一键安装没反应 | 官方说明该徽章要求先装 GitHub Copilot 扩展;也可改用手动写 mcpServers 配置 |
npm run inspect:http 报脚本不存在 | 那是仓库里的开发脚本;先克隆仓库、npm install、npm run build |
| 改了源码但调试结果没变 | debug --no-build 用的是已有的 dist;改源码后要先 npm run build |
| HTTP 端点在别的机器上也能访问 | 用了 README 示例的 --host 0.0.0.0;本地调试改绑 127.0.0.1 并停掉多余进程 |
| 热更新后重启又变回旧索引 | 官方设定是只存当前会话内存;等新 npm 版本或用 ACP_METADATA_URL 托管自己的 metadata.json |
| 搜索结果和同事不一致 | 包内索引随发版更新、上游仓库每日变动;先对齐双方的版本号与环境变量 |
| 找不到某份资源的完整内容 | 包里只带约 170 KB 索引,实际内容与下载地址按需解析;检查工具返回里的地址字段 |