文件上下文服务器
](https://smithery.ai/server/@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可用工具
- list_context_files
- 列出目录中包含详细元数据的文件
{
"path": "./src",
"recursive": true,
"includeHidden": false
}- read_context
- 读取包含元数据的文件或目录内容
{
"path": "./src/index.ts",
"encoding": "utf8",
"maxSize": 1000000,
"recursive": true,
"fileTypes": ["ts", "js"]
}- 搜索文本
- 在具有上下文的文件中搜索模式
{
"pattern": "function.*",
"path": "./src",
"options": {
"recursive": true,
"contextLines": 2,
"fileTypes": ["ts"]
}
}- 分析代码
- 分析代码文件以获取质量指标
{
"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许可证
麻省理工学院
贡献
欢迎投稿!请阅读我们的 贡献指南 有关我们的行为准则和提交pull请求流程的详细信息。
跨平台路径兼容性
注: 截至2025年4月,文件上下文服务器中的所有文件和目录路径处理都已更新,以提高跨平台兼容性(Windows、macOS、Linux):
- 所有glob模式在内部都使用POSIX风格的路径(正斜杠),确保无论操作系统如何,文件匹配都是一致的。
- 所有文件系统操作(读取、写入、统计等)都使用规范化的绝对路径来保证可靠性。
- 如果您正在开发或扩展服务器,请使用
path.posix.join对于glob模式和path.normalize用于文件系统访问。 - 此更改可防止不同操作系统上的路径分隔符和文件匹配问题。
最终用户不需要更改,但开发人员在为项目做出贡献时应遵循这些约定。
