JSON响应处理工具

为MCP服务器提供的JSON响应处理工具,具备响应格式化、项目限制和文件保存功能。

  • by Jing-yilin
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Jing-yilin/mcp-json-utils

使用说明

@yilin jing/mcp json-utils

MCP(模型上下文协议)服务器的JSON响应实用程序。为API响应提供格式化、项目限制和文件保存功能。

特性

  • 响应格式:使用JSON结构树将API响应转换为可读标记
  • 项目限制:自动限制大型数组以防止上下文溢出(默认值:10个项目)
  • 原始数据保存:可选择将完整响应数据保存到本地文件
  • 动态场检测:自动查找并限制响应结构中任何位置的大型数组

安装

npm install @yilin-jing/mcp-json-utils

用法

import { JsonResponseHandler } from '@yilin-jing/mcp-json-utils';

// Create handler with custom max items (default: 10)
const jsonHandler = new JsonResponseHandler({ maxItemsForContext: 10 });

// Format a response
const result = jsonHandler.formatResponse(data, {
  rawDataSaveDir: '/tmp/my_data',  // Optional: save full data to file
  toolName: 'get_posts',           // Optional: tool name for filename
  params: { featured: true }       // Optional: params for filename
});

// Result is a CallToolResult with formatted markdown

输出格式

格式化的响应包括:

  1. 头球 带有工具名称
  2. 文件简介 (如果 rawDataSaveDir 提供)路径和大小
  3. 限制说明 (如果项目有限)显示字段路径和计数
  4. JSON结构树 显示数据的形状
  5. JSON数据 物品有限

输出示例:

## get_posts

> **Raw data saved to**: `/tmp/my_data/get_posts_featured=true_2024-01-15T10-30-00-000Z.json` (15.2 KB)

> **Note**: `edges` limited to 10 items (25 total). Full data saved to file.

### JSON Structure
├── edges: Array[10]
│   └── [item]:
│       ├── id: string
│       ├── name: string
│       └── ...
└── pageInfo:
    ├── hasNextPage: boolean
    └── endCursor: string

### Data (`edges`: 10/25 items)
```json
{
  "edges": [...],
  "pageInfo": {...}
}

API

JsonResponseHandler

构造函数

new JsonResponseHandler(config: { maxItemsForContext: number })

方法

  • formatResponse(data, options?) -将数据格式化为MCP CallToolResult
  • saveRawData(data, saveDir, toolName, params?) -将数据保存到文件
  • limitItems(data) -限制数据中的大数组
  • findLargeArrayField(data) -查找第一个包含>maxItems项的数组
  • generateJsonStructureTree(obj) -生成树可视化
  • formatFileSize(bytes) -将字节格式化为人类可读字符串

许可证

麻省理工学院