关于 File Context Server
File Context Server 是一个 MCP 服务,为大模型提供文件系统上下文,支持读取、搜索和分析代码文件。它内置缓存与实时文件监视,适合需要让 LLM 理解本地代码库的开发者。
主要功能
- 01读取文件与目录内容并列出元数据
- 02基于正则的上下文搜索
- 03代码复杂度、依赖和质量指标分析
- 04LRU 缓存并在文件变化时自动失效
- 05通过环境变量配置缓存和文件大小限制
适用场景
- 01让 LLM 读取并搜索项目源代码
- 02分析代码库的复杂度与重复行
- 03查看缓存命中情况以调整性能参数
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露 list_context_files、read_context、search_context、analyze_code 和 cache_stats 等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
File Context Server
一个为大语言模型(LLM)提供文件系统上下文的模型上下文协议(MCP)服务。此服务支持 LLM 读取、搜索和分析代码文件,并具备高级缓存和实时文件监控功能。
功能
-
文件操作
- 读取文件和目录内容
- 列出文件及其详细元数据
- 实时文件监控和缓存失效
- 支持多种文件编码
- 递归遍历目录
- 按文件类型筛选
-
代码分析
- 计算圈复杂度
- 提取依赖项
- 分析注释
- 质量指标:
- 检测重复行
- 检测长行(>100 个字符)
- 识别复杂函数
- 行数统计(总行数、非空行数、注释行数)
-
智能缓存
- LRU(最近最少使用)缓存策略
- 文件变更时自动使缓存失效
- 支持按大小管理缓存,并可配置限制
- 缓存统计和性能指标
- 缓存最近读取的结果,以便高效搜索
-
高级搜索
- 正则表达式模式匹配
- 提供带上下文的搜索结果,并可配置周边行数
- 按文件类型筛选
- 支持多模式搜索
- 搜索缓存结果
- 排除模式
安装
通过 Smithery 安装
通过 Smithery 自动为 Claude Desktop 安装 File Context Server:
npx -y @smithery/cli install @bsmi021/mcp-file-context-server --client claude
手动安装
npm install @modelcontextprotocol/file-context-server
使用方法
启动服务
npx file-context-server
可用工具
-
list_context_files
- 列出目录中的文件及其详细元数据
{ "path": "./src", "recursive": true, "includeHidden": false } -
read_context
- 读取文件或目录内容及其元数据
{ "path": "./src/index.ts", "encoding": "utf8", "maxSize": 1000000, "recursive": true, "fileTypes": ["ts", "js"] } -
search_context
- 搜索文件中的模式并提供上下文
{ "pattern": "function.*", "path": "./src", "options": { "recursive": true, "contextLines": 2, "fileTypes": ["ts"] } } -
analyze_code
- 分析代码文件的质量指标
{ "path": "./src", "recursive": true, "metrics": ["complexity", "dependencies", "quality"] } -
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
许可证
MIT
贡献
欢迎贡献!请阅读我们的贡献指南,了解行为准则和提交拉取请求的流程。
跨平台路径兼容性
**注意:**截至 2025 年 4 月,File Context Server 已更新所有文件和目录路径处理逻辑,以提升跨平台兼容性(Windows、macOS、Linux):
- 所有 glob 模式内部均使用 POSIX 风格路径(正斜杠),确保在不同操作系统上都能一致地匹配文件。
- 所有文件系统操作(读取、写入、stat 等)均使用规范化的绝对路径,以确保可靠性。
- 如果你正在开发或扩展此服务,请在 glob 模式中使用
path.posix.join,并在访问文件系统时使用path.normalize。 - 此更改可避免不同操作系统上的路径分隔符和文件匹配问题。
最终用户无需进行任何更改,但开发者在为项目做贡献时应遵循这些约定。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。