使用说明
代理人
MCP服务器,它公开了多个本地代码存储库,作为Amazon Q Developer等LLM助手的工具。
搜索结果和文件内容都标有存储库名称,这样助手就知道每个结果来自哪个存储库。
先决条件
- .NET 10 SDK
配置
编辑 appsettings.json:
{
"Agent": {
"AgentName": "RepoAgent",
"FileExtensions": [".cs", ".csproj", ".json", ".xml", ".md"],
"MaxFileSizeKb": 100,
"Repositories": {
"backend": "C:\\projects\\backend-api",
"frontend": "C:\\projects\\frontend-app",
"shared-lib": "C:\\projects\\shared-library"
}
}
}
| 设置 | 说明 |
|---|---|
AgentName |
向客户端显示MCP服务器名称 |
FileExtensions |
默认文件类型(每个仓库都可以覆盖) |
MaxFileSizeKb |
跳过大于此值的文件 |
Repositories |
命名存储库——key是显示名称,value是路径 |
构建
cd RepoAgent
dotnet publish -c Release -o bin/publish
这将在以下位置生成一个独立的可执行文件 bin/publish/RepoAgent.exe.
MCP工具
| 工具 | 参数 | 说明 |
|---|---|---|
ListRepositories |
-- | 列出所有已配置的存储库及其路径 |
ListFiles |
repoName? |
列出文件,可选择按仓库筛选 |
GetCodeContext |
repoName? |
返回标记为的完整文件内容 [repoName] |
GetFile |
repoName, relativePath |
从命名仓库返回特定文件 |
SearchCode |
query, repoName? |
在存储库中搜索文本,结果标记为 [repoName] |
CreateOrUpdateFile |
repoName, relativePath, content, confirmed |
创建或更新文件(首先要求用户确认) |
DeleteFile |
repoName, relativePath, confirmed |
删除文件(首先要求用户确认) |
所有跨仓库工具都用仓库名称标记结果:
--- [backend] Controllers/UserController.cs ---
L15: public async Task<IActionResult> GetUser(int id)
--- [shared-lib] Models/User.cs ---
L3: public class User
连接到亚马逊Q开发者
1.添加MCP配置
创建或编辑 ~/.aws/amazonq/mcp.json:
{
"mcpServers": {
"repo-agent": {
"command": "C:\\path\\to\\RepoAgent\\bin\\publish\\RepoAgent.exe",
"args": []
}
}
}
注: 直接指向已发布的exe。使用
dotnet run可能会导致MCP协议错误,因为构建/还原输出会污染stdout。
2.在亚马逊Q聊天中使用
- “列出所有存储库”
- “在所有存储库中搜索身份验证逻辑”
- “从后端仓库获取代码上下文”
- “查找在所有存储库中定义用户模型的位置”
- “显示后端仓库中的src/Program.cs”
- “在后端仓库中创建一个新文件Utils/Helper.cs”
- “从共享库中删除旧配置文件”
