使用说明
设置项目技能——MCP服务器
A. 模型上下文协议(MCP)服务器 自动检测项目的技术栈
并将匹配的GitHub Copilot技能文件夹安装到 <project>/skills/,
然后更新 .vscode/settings.json 所以Copilot发现了它们。
作为Docker容器运行(推荐)或直接通过 dotnet run.
通过MCP stdio协议进行通信——不需要网络端口。
暴露的工具
| 工具 | 说明 |
|---|---|
detect_project_type |
扫描目录并返回检测到的技术类型。 只读。 |
check_project_skills |
模拟运行:显示哪些技能将被添加或已经存在。 没有变化。 |
setup_project_skills |
增量 --复制新技能文件夹;保持现有的不变。 |
refresh_project_skills |
完全刷新 --将所有技能文件夹替换为源代码中的最新文件夹。 |
所有工具都接受这些可选参数:
| 参数 | 说明 |
|---|---|
targetProject |
项目根目录的绝对路径。默认为容器的工作目录。 |
skillSourcePath |
通往当地的道路 awesome-copilot 克隆。跳过自动发现。 |
skillRepoUrl |
如果本地找不到仓库,则克隆Git URL。覆盖 AWESOME_COPILOT_REPO_URL. |
检测到的项目类型
检测扫描所有文件(不包括 .git/, node_modules/, bin/, obj/)并且是非排他性的--
一个项目可以匹配多种类型。
| 类型 | 关键指标 |
|---|---|
Blazor |
.razor 文件+ .csproj (也收到 Frontend 技能) |
AspNetCoreApi |
.csproj + Program.cs,没有Razor/MAUI/设计器文件 |
MAUI |
Microsoft.NET.Sdk.Maui SDK或 <UseMaui>true 在 .csproj |
WinForms |
.csproj + .designer.cs / .designer.vb |
Android |
AndroidManifest.xml, .kt,或 .java 文件 |
Frontend |
package.json + .ts/.tsx,或 package.json 没有 .csproj |
CppCMake |
.cpp, .vcxproj,或 CMakeLists.txt |
Unknown |
没有匹配的,只有常见技能 |
技能安装
常见技能(每个项目)
git-commit · conventional-commit · create-readme ·
folder-structure-blueprint-generator · technology-stack-blueprint-generator ·
context-map · what-context-needed
特定类型技能
| 类型 | 技能 |
|---|---|
Blazor |
fluentui-blazor · aspnet-minimal-api-openapi · ef-core · dotnet-best-practices · dotnet-design-pattern-review · csharp-async · csharp-docs · csharp-xunit · containerize-aspnetcore · multi-stage-dockerfile · refactor · create-specification · sql-optimization · sql-code-review |
AspNetCoreApi |
aspnet-minimal-api-openapi · ef-core · dotnet-best-practices · dotnet-design-pattern-review · csharp-async · csharp-docs · csharp-xunit · sql-optimization · sql-code-review · containerize-aspnetcore · multi-stage-dockerfile · openapi-to-application-code · create-specification |
MAUI |
dotnet-best-practices · dotnet-design-pattern-review · csharp-async · csharp-docs · csharp-xunit · dotnet-upgrade · multi-stage-dockerfile · refactor |
WinForms |
dotnet-best-practices · dotnet-upgrade · containerize-aspnet-framework · dotnet-design-pattern-review · refactor · csharp-docs |
Android |
kotlin-springboot · java-springboot · java-docs · java-junit · java-refactoring-extract-method · java-refactoring-remove-parameter · java-add-graalvm-native-image-support |
Frontend |
create-web-form · javascript-typescript-jest · markdown-to-html · multi-stage-dockerfile · refactor |
CppCMake |
multi-stage-dockerfile · refactor · refactor-method-complexity-reduce · sql-code-review |
中存在的任何技能文件夹 awesome-copilot/skills/ 来源,但不在上面的地图上
当其名称包含与检测到的类型匹配的关键字时,也会自动发现并安装。
技能来源解析
服务器正在查找 awesome-copilot 按照以下顺序:
skillSourcePath参数(如果提供)AWESOME_COPILOT_REPO_URL环境变量(设置克隆URL)G:\Repos\frontlook-admin\AI_HELPERS\awesome-copilotG:\Repos\frontlook-admin\awesome-copilot%USERPROFILE%\repos\awesome-copilot%USERPROFILE%\awesome-copilotC:\src\awesome-copilot- 自动克隆 从
https://github.com/github/awesome-copilot
在Docker中运行时,主机路径(3-7)不可见;服务器将自动克隆 首次使用,除非您挂载本地克隆(请参阅 Docker使用 在......下面
先决条件
- .NET 10 SDK --用于本地运行
- 码头工人 --用于集装箱使用
- 带有GitHub Copilot扩展的VS代码(用于MCP发现)
git在PATH中--仅在以下情况下需要awesome-copilot必须自动克隆
本地运行(.Net)
cd SkillMcp
dotnet run
服务器从stdin读取MCP消息,并将响应写入stdout。 所有日志都会转到stderr。
码头工人
本地建设
docker build -t skillmcp:local .
运行--挂载repos驱动器,以便服务器可以读取项目文件
Windows(PowerShell):
docker run --rm -i -v "G:\Repos:/g/Repos" skillmcp:local
Linux/macOS:
docker run --rm -i -v "$HOME/repos:/repos" skillmcp:local
然后通过 集装箱侧 路径为 targetProject:
targetProject = /g/Repos/your-project # Windows mount
targetProject = /repos/your-project # Linux/macOS mount
挂载本地出色的副驾驶克隆(可选,避免自动克隆)
docker run --rm -i \
-v "G:\Repos:/g/Repos" \
-v "G:\Repos\frontlook-admin\awesome-copilot:/opt/awesome-copilot:ro" \
skillmcp:local
通过 skillSourcePath = /opt/awesome-copilot 作为一种工具论证。
通过环境变量覆盖克隆URL
docker run --rm -i \
-e AWESOME_COPILOT_REPO_URL=https://github.com/your-fork/awesome-copilot \
skillmcp:local
从GitHub容器注册表中提取
docker pull ghcr.io/frontlook-admin/skillmcp:latest
VS代码MCP配置
这 .vscode/mcp.json 在这个仓库中,服务器会自动注册。
在VS Code中打开工作区,GitHub Copilot将发现并列出工具。
配置示例:
{
"servers": {
"setup-project-skills": {
"type": "stdio",
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "G:\\Repos:/g/Repos",
"ghcr.io/frontlook-admin/skillmcp:latest"
]
}
}
}
Windows路径转换 --服务器自动转换
G:\Repos\foo到/g/Repos/foo以匹配上面的卷装载。 将任一表格作为targetProject;两者都处理得当。
GitHub操作——自动Docker发布
工作流程在 .github/workflows/docker-publish.yml
构建并推动 GitHub容器注册表(GHCR) 每一次推。
无需配置秘密——它使用内置 GITHUB_TOKEN.
| 触发器 | 已发布标签 |
|---|---|
推到 main |
latest, main, sha-<short> |
标签 v1.2.3 |
1.2.3, 1.2, sha-<short>, latest |
| 拉取请求 | 仅构建,不推送 |
输出:写什么
之后 setup_project_skills 或 refresh_project_skills 成功运行:
<project>/
skills/
git-commit/
conventional-commit/
csharp-async/ ← type-specific skills
...
skills.json ← manifest: detected type + list of installed skills
.vscode/
settings.json ← chat.promptFilesLocations entry added/updated
