json-shaper-lite

io.github.tidybytetools由 GitHub 账号 tidybytetools 发布v1.1.0更新于 Nov 5, 2026

Turn key: value notes, CSV/TSV and Markdown tables into typed JSON. Plain code, no AI, runs locally.

已验证STDIO仅桌面开发者工具数据与分析

概览

AI 生成的概览

本地 MCP 服务器,把粘贴的文本或本地文本文件(key: value 笔记、CSV/TSV、Markdown 表格)转换成带类型的 JSON。

可以做什么
  • 把对话中的文本转换成带类型的 JSON,格式可自动识别或指定为 kv、csv、markdown
  • 读取本地文本文件(.txt、.csv、.tsv、.md,最大 5 MB)并返回同样结构的带类型 JSON
  • 返回包含识别格式与数据的统一结果对象,由确定性代码生成而非 AI 模型
适用场景
适合在对话中或本地文本文件里已有纯文本记录、表格,需要干净且可信的带类型 JSON 时使用。不适用于本身已是 JSON、嵌套数据、应用日志,或 Excel、PDF 等二进制格式。
运行要求
作为本地 stdio 进程通过 uvx 启动(需要 uv);包发布在 PyPI,需要 Python 3.10 或更高版本。未声明任何认证、环境变量或请求头,也不访问互联网。
安装前请注意
两个工具都是只读的:文件只读取不修改,数据不会发送到网络。类型是推测结果,像 007 或邮编这类值可能被转成数字,需要事后手动修正;每次运行只处理一张表格。在终端运行时会在 stderr 输出一行关于付费版的提示,可用 --quiet 关闭。

安装

在 SourceWeft 中

  1. 打开 控制台中的 json-shaper-lite,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[Tidy Byte Tools]

json-shaper-lite

[License: MIT] [Python 3.10+] [MCP server]

Free tool that turns key: value notes, CSV/TSV and Markdown tables into clean JSON. Need app logs or US addresses parsed too? The paid version does that: json-shaper on Gumroad

Plain code, not AI, so the same text always gives the same JSON. Runs on your own computer. MIT license. Works with Python 3.10 and newer, on Windows, Mac and Linux.

Install

pip install json-shaper-lite

Or use pipx, which keeps it in its own space:

pipx install json-shaper-lite

Want the newest code from GitHub instead?

pip install git+https://github.com/tidybytetools/json-shaper-lite

Or just download json_shaper_lite.py and run it with python3. That one file uses only Python's standard library. (Installing with pip also adds the mcp package, which the MCP server needs.)

Use it

printf 'Name: Ada\nAge: 36\nActive: yes' | json-shaper-litejson-shaper-lite export.csvjson-shaper-lite notes.md --format markdownjson-shaper-lite export.csv --json      # {"ok": true, "format": "csv", "data": [...]}

Output:

json
{"name": "Ada", "age": 36, "active": true}

Numbers come out as numbers, yes/no and true/false as booleans, and empty or "null" as null. The format is detected for you, or you can set it with --format kv|csv|markdown.

From Python:

python
from json_shaper_lite import shapeshape("x,y\n1,2")  # {'format': 'csv', 'data': [{'x': 1, 'y': 2}]}

When you run it in a terminal it prints one short line about the paid version to stderr after the result. It never goes into your JSON output, it only shows when you are looking at a terminal, and --quiet turns it off.

Known limits

  • It makes flat JSON. It does not flatten or unflatten nested JSON. For that, use a tool like flatten-json.
  • Types are a best guess. A value like 007 or a zip code can turn into a number. Fix those by hand after.
  • One table per run. Two Markdown tables in one file get mixed together. Split them first.
  • No app logs or addresses. Those are in the paid version.

How it compares to other free tools

json-shaper-liteflatten-jsoncsvkit csvjsonpandas
Main jobmessy text → JSONnested JSON → flat (and back)CSV → JSONfull data toolkit
Install sizeone file (pip adds mcp for the MCP server)smallmediumlarge
key: value notesyesnonono
Markdown tablesyesnonono, not built in
CSV/TSVyesnoyesyes
Guesses numbers and true/falseyesnoyesyes
Nested JSON flatten/unflattennoyesnoyes (json_normalize)
MCP server for AI appsyesnonono

If your data is already JSON and just too nested, flatten-json is the better pick.

Use it from Claude Desktop or Cursor (MCP)

There is a small free MCP server built in. It gives your AI app two tools. Both only read. They never write or change files, and they never use the internet. It needs uv.

Run it by hand to check it starts (it waits quietly for an app to talk to it):

uvx json-shaper-lite mcp

Claude Desktop (claude_desktop_config.json) or Cursor (~/.cursor/mcp.json):

json
{  "mcpServers": {    "json-shaper-lite": {      "command": "uvx",      "args": ["json-shaper-lite", "mcp"]    }  }}

uvx --from json-shaper-lite json-shaper-lite-mcp starts the same server.

Tools:

  • shape_text_to_json(text, format="auto"): for text in the chat.
  • shape_file_to_json(path, format="auto"): for a text file on your computer (.txt, .csv, .tsv, .md, up to 5 MB).

Both return {"format": "csv", "data": [...]}. format can be auto, kv, csv or markdown.

For AI agents

  • Use when: you have plain text in key: value lines, CSV/TSV, or a Markdown table and need typed JSON.
  • Don't use when: the input is already JSON, it's app logs, or it's nested data. Use the paid version for logs.
  • Input: text on stdin or a file path. Optional --format kv|csv|markdown.
  • MCP: uvx json-shaper-lite mcp gives two read-only tools, shape_text_to_json and shape_file_to_json.
  • Output: with --json, one object: {"ok": true, "format": "csv", "data": [...]}. On error ok is false. Exit code 0 ok, 1 error.
  • Hint lines go to stderr only, and only in a terminal, so stdout is always clean JSON. See also llms.txt.

Lite vs paid

lite (free)json-shaper
key: value notes, CSV/TSV, Markdown tablesyesyes
App logs (timestamp, level, message, key=value fields)noyes
One-line US address splitternoyes
tool.json manifest for scripts and AI agentsnoyes

Tests

pip install "mcp>=1.10,<2"python3 -m unittest discover tests

The MCP tests are skipped if mcp is not installed.

License

MIT. See LICENSE.

来源:README.md,提交 4d49aa2

工具

2

shape_text_to_json

Turn text into JSON

Turn pasted text (key: value notes, CSV/TSV or a Markdown table) into typed JSON. Use this when you have plain-text records or a table in the conversation and need clean JSON you can trust, without guessing values yourself. It is plain code, not an AI model, so the same text always gives the same JSON and nothing is made up. Do not use it when the text is already JSON, is nested data, is app logs, or is a file on disk (use shape_file_to_json for files). format: "auto" (default) picks for you. Or force "kv" (key: value or key=value lines, a blank line starts a new record), "csv" (comma, semicolon, tab or | separated, first row is the header) or "markdown" (a | pipe | table, first row is the header). Returns {"format": <format used>, "data": <JSON>}. data is a list of records for CSV and tables. For key: value text it is one object, or a list when blank lines split it into several records. Keys become lower_snake_case. Numbers become numbers, yes/no and true/false become booleans, empty or "null" becomes null.

输入参数text必填format

shape_file_to_json

Turn a text file into JSON

Read a local text file (key: value notes, .csv, .tsv or a Markdown table) and return typed JSON. Use this when the data is in a file on this computer, so you don't have to paste it. The file is only read, never changed. Do not use it for Excel (.xlsx), PDF or other binary files, for files that are already JSON, or for app logs. path: full path to a UTF-8 text file, up to 5 MB. format: "auto" (default) picks for you. Or force "kv" (key: value or key=value lines, a blank line starts a new record), "csv" (comma, semicolon, tab or | separated, first row is the header) or "markdown" (a | pipe | table, first row is the header). Returns {"format": <format used>, "data": <JSON>}, the same as shape_text_to_json.

输入参数path必填format

版本历史

1
  1. v1.1.0最新Nov 4, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分