本地代码服务器

一个MCP服务器,用于暴露多个本地代码库的代码,以便GitHub Copilot或其他MCP兼容客户端可以跨项目获取上下文。

  • by greedyaj
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 greedyaj/local-code-server

使用说明

本地代码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://<root>?path=<relative/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。
  • 大文件被截断以避免客户端被淹没。