本地代码MCP服务器
一个MCP服务器,它公开来自多个本地存储库的代码,这样GitHub Copilot(或任何兼容MCP的客户端)就可以跨项目拉取上下文。
设置
- 先安装deps:
npm install(在任何MCP客户端/代理尝试启动服务器之前,在每台机器上执行此操作)。 - 复制
config.example.json到config.json(或点LOCAL_CODE_CONFIG在另一条路径上)并更新绝对路径roots. - 运行服务器:
npm start(stdio传输)。所有日志记录都会进入stderr,因此MCP的stdout保持干净。
VS代码/GitHub复制副本连接
在该计算机上安装依赖项后,将其添加到您的VS代码设置(用户或工作区)中,以便Copilot Chat可以生成服务器:
{
"mcp.servers": {
"local-code": {
"command": "node",
"args": [
"/Users/ajitpawar/microsoft/local-code-server/src/index.js"
],
"transport": "stdio",
"env": {
"LOCAL_CODE_CONFIG": "/Users/ajitpawar/microsoft/local-code-server/config.json"
}
}
}
}保存后重新启动Copilot聊天。从那时起,请Copilot使用 read_file 当它需要来自另一个仓库的代码时,可以使用该工具。
它提供什么
- 根:命名目录来自
config.json路径被解析并沙盒化;根外部的遍历被阻止。 - 工具
- list_roots() –显示已配置的根。 - list_files(root, filter?, limit?) –列出根目录下的文件(默认忽略: node_modules, .git、构建dirs等)。 - read_file(root, path, startLine?, endLine?, maxBytes?) –返回文件内容,可选择按行切片;上限为 maxReadBytes 在配置中(默认256 KB)。
- 资源:文件可通过以下方式寻址
localcode://?path=.resource_link工具结果中的条目使用此URI;客户可以致电read_resource如果他们支持的话。
配置说明(config.json)
maxReadBytes:默认每次读取的最大字节数(可以用以下命令覆盖每次调用maxBytes,硬上限为5MB)。defaultListLimit:默认最大结果list_files.ignore:要跳过的其他目录名;上述默认值始终适用。
MCP检验员测试
如果要在Copilot外部验证服务器,请安装检查器并运行:
npx @modelcontextprotocol/inspector --server "node /Users/ajitpawar/microsoft/local-code-server/src/index.js"安全
- 仅服务配置根下的路径;路径遍历被拒绝。
- 没有遵循Symlinks。
- 大文件被截断以避免客户端被淹没。
