文件上下文服务器

一个为大型语言模型提供文件系统上下文的服务器,支持文件操作、代码分析和智能缓存等功能,适用于代码分析和开发辅助场景。

  • by bsmi021
  • JavaScript
  • 本地部署
  • 39 星标
  • 更新于
在 GitHub 查看 bsmi021/mcp-file-context-server

使用说明

文件上下文服务器

一种模型上下文协议(MCP)服务器,为大型语言模型(LLM)提供文件系统上下文。此服务器使LLM能够使用高级缓存和实时文件监视功能读取、搜索和分析代码文件。

特性

  • 文件操作

    • 读取文件和目录内容
    • 列出包含详细元数据的文件
    • 实时文件监视和缓存失效
    • 支持多种文件编码
    • 递归目录遍历
    • 文件类型筛选
  • 代码分析

    • 圈复杂度计算
    • 依赖关系提取
    • 评论分析
    • 质量指标:
      • 重复行检测
      • 长线检测(>100个字符)
      • 复杂功能识别
      • 行数(总计、非空、注释)
  • 智能缓存

    • LRU(最近最少使用)缓存策略
    • 文件更改时自动缓存无效
    • 具有可配置限制的大小感知缓存
    • 缓存统计数据和性能指标
    • 上次读取结果缓存以实现高效搜索
  • 高级搜索

    • 正则表达式模式匹配
    • 具有可配置周围线条的上下文感知结果
    • 文件类型筛选
    • 多模式搜索支持
    • 缓存结果搜索
    • 排除模式

安装

通过Smithery安装

通过以下方式自动安装克劳德桌面的文件上下文服务器 史密瑟里:

npx -y @smithery/cli install @bsmi021/mcp-file-context-server --client claude

手动安装

npm install @modelcontextprotocol/file-context-server

用法

启动服务器

npx file-context-server

可用工具

  1. list_context_files

    • 列出目录中包含详细元数据的文件
    {
      "path": "./src",
      "recursive": true,
      "includeHidden": false
    }
    
  2. read_context

    • 读取包含元数据的文件或目录内容
    {
      "path": "./src/index.ts",
      "encoding": "utf8",
      "maxSize": 1000000,
      "recursive": true,
      "fileTypes": ["ts", "js"]
    }
    
  3. 搜索文本

    • 在具有上下文的文件中搜索模式
    {
      "pattern": "function.*",
      "path": "./src",
      "options": {
        "recursive": true,
        "contextLines": 2,
        "fileTypes": ["ts"]
      }
    }
    
  4. 分析代码

    • 分析代码文件以获取质量指标
    {
      "path": "./src",
      "recursive": true,
      "metrics": ["complexity", "dependencies", "quality"]
    }
    
  5. cache_stats

    • 获取缓存统计信息和性能指标
    {
      "detailed": true
    }
    

错误处理

服务器提供具有特定错误代码的详细错误消息:

  • FILE_NOT_FOUND:文件或目录不存在
  • PERMISSION_DENIED:访问权限问题
  • INVALID_PATH:文件路径格式无效
  • FILE_TOO_LARGE:文件超出大小限制
  • ENCODING_ERROR:文件编码问题
  • UNKNOWN_ERROR:意外错误

配置

用于自定义的环境变量:

  • MAX_CACHE_SIZE:缓存条目的最大数量(默认值:1000)
  • CACHE_TTL:缓存生存时间(毫秒)(默认值:1小时)
  • MAX_FILE_SIZE:读取的最大文件大小(字节)

发展

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Start in development mode
npm run dev

许可证

麻省理工学院

贡献

欢迎投稿!请阅读我们的 贡献指南 有关我们的行为准则和提交pull请求流程的详细信息。

跨平台路径兼容性

注: 截至2025年4月,文件上下文服务器中的所有文件和目录路径处理都已更新,以提高跨平台兼容性(Windows、macOS、Linux):

  • 所有glob模式在内部都使用POSIX风格的路径(正斜杠),确保无论操作系统如何,文件匹配都是一致的。
  • 所有文件系统操作(读取、写入、统计等)都使用规范化的绝对路径来保证可靠性。
  • 如果您正在开发或扩展服务器,请使用 path.posix.join 对于glob模式和 path.normalize 用于文件系统访问。
  • 此更改可防止不同操作系统上的路径分隔符和文件匹配问题。

最终用户不需要更改,但开发人员在为项目做出贡献时应遵循这些约定。