项目介绍
技术文档摘要
该项目尚未准备好用于生产环境,未来可能会迁移到Duckdb以支持多种文件扩展名
文件处理MCP
此项目实现了一个用Go编写的模型上下文协议(MCP)服务器,旨在通过HTTP暴露一系列JSON处理工具。它促进了对JSON数据的有效且可扩展的操作,以优化大型语言模型(LLMs)的使用。
此项目提供了一个用Go编写的模型上下文协议(MCP)服务器,设计用于高效处理供大型语言模型(LLMs)使用的JSON数据。
结果
- 一个可扩展的HTTP服务器,处理JSON请求并返回优化的JSON响应。
- 实现了一种协议,使选择性提取、过滤和总结JSON数据成为可能,从而减少令牌使用。
- 促进大型JSON文档的层次化和增量处理。
- 支持对畸形JSON输入的安全验证和处理。
- 提供嵌入和语义理解增强的集成点。
- 通过基于相关性的令牌预算管理和上下文修剪来提高LLM输入效率。
此项目为与LLM上下文限制和处理需求相匹配的高效JSON数据处理奠定了基础。
使用方法
项目能力
- 提供一个用于JSON数据处理的HTTP MCP服务器。
- 支持一系列JSON操作工具,包括:
- 根据键名查找JSON对象
- 将一个JSON文档追加到另一个文档
- 比较和合并JSON文档
- 扁平化嵌套的JSON结构
- 使用jq语法查询JSON
- 验证JSON是否符合模式
- 基于字段移除转换JSON
- 设计用于在LLM上下文中实现高效的层次化、增量和令牌预算感知的JSON处理。
- 通过JSON优化减少令牌开销,简化与LLM应用程序的集成。
运行服务器并将JSON负载POST到/mcp端点进行处理。
简单规范
- 服务器期望在POST请求正文中发送JSON负载到
/mcp端点。
- JSON数据必须格式正确且有效。
- 负载应表示一个符合MCP协议模式的地图或对象结构。
- 不需要文件上传机制;JSON直接在请求正文中发送。
- 响应将是根据协议表示处理或优化结果的JSON对象。
- 服务器将以405状态码拒绝对此端点的所有非POST请求。
- JSON解析或验证中的错误会导致400 Bad Request响应。
当前支持的工具
| 工具名称 | 描述 | 示例命令 |
|---|
json.search | 通过JSON文档进行模糊或基于键的搜索 | 在上传的JSON中搜索email |
json.query | 结构化查询(类似于jq / GJSON语法) | json.query { "expr": ".users[].name" } |
json.validate | 验证JSON语法或模式 | json.validate { "input": "{...}" } |
json.transform | 应用转换或过滤 | 转换结构,移除字段,重命名键 |
json.diff | 比较两个JSON文档 | 返回a.json和b.json之间的差异 |
json.merge | 合并多个JSON文档 | 合并设置,覆盖键 |
json.flatten | 将嵌套的JSON扁平化为点路径 | 对于搜索或表格导出有用 |
json.schema | 从JSON验证或推断模式 | 生成模式摘要 |
json.append | 追加一个json到json | 将一个json追加到另一个json |
支持的文件类型
- JSON(正在进行中)
- CSV(计划中)
- TSV(计划中)
- YAML(计划中)
- TOML(计划中)