一个轻量级的MCP(模型上下文协议)服务器,用于创建大型JSON文件的紧凑“骨架”表示形式,帮助您在不处理完整数据负载的情况下理解JSON结构。
您可以直接运行MCP服务器而不进行安装,使用uvx:
# 从GitHub运行
uvx --from git+https://github.com/jskorlol/json-skeleton-mcp.git json-skeleton
# 从本地目录运行
uvx --from /path/to/json-skeleton-mcp json-skeleton
git clone https://github.com/jskorlol/json-skeleton-mcp.git
cd json-skeleton-mcp
python -m venv venv
source venv/bin/activate # 在Windows上:venv\Scripts\activate
pip install -e .
添加到您的Claude Desktop配置中:
使用uvx(推荐):
{
"mcpServers": {
"json-skeleton": {
"command": "uvx",
"args": ["--from", "git+https://github.com/jskorlol/json-skeleton-mcp.git", "json-skeleton"]
}
}
}
使用本地安装:
{
"mcpServers": {
"json-skeleton": {
"command": "uvx",
"args": ["--from", "/path/to/json-skeleton-mcp", "json-skeleton"]
}
}
}
json_skeleton
创建一个JSON文件的轻量级骨架,具有以下参数:
file_path(必需):要处理的JSON文件的路径max_length(可选,默认:200):字符串值的最大长度type_only(可选,默认:false):返回仅值类型而不是值(最紧凑输出)输入:json_skeleton(file_path="/path/to/data.json")
输出:字符串限制为200个字符的截断JSON
输入:json_skeleton(file_path="/path/to/data.json", max_length=50)
输出:更激进地截断至50个字符的JSON
输入:json_skeleton(file_path="/path/to/data.json", type_only=true)
输出:
{
"name": "str",
"age": "int",
"active": "bool",
"balance": "float",
"notes": "null",
"items": [
{
"id": "int",
"label": "str"
}
]
}
from json_skeleton import SkeletonGenerator
# 初始化生成器
generator = SkeletonGenerator(max_value_length=200)
# 处理文件
result = generator.process_file("large_data.json")
print(result['skeleton'])
# 使用自定义长度处理
result = generator.process_file("large_data.json", max_length=50)
print(result['skeleton'])
# 以仅类型模式处理
result = generator.process_file("large_data.json", type_only=True)
print(result['skeleton'])
# 或直接处理数据
data = {"key": "very long value" * 50, "items": [1, 2, 3, 1, 2, 3]}
skeleton = generator.create_skeleton(data)
print(skeleton)
该工具通过比较其DTO(数据传输对象)结构来智能地去重数组项:
运行测试脚本以查看工具的实际效果:
# 测试基本功能
python test_skeleton.py
# 测试不同的max_length值
python test_max_length.py
# 测试仅类型模式
python test_type_only.py
MIT许可证