When Claude or another LLM is streaming a tool call and you need to work with the JSON before it finishes, this gives you three tools that actually handle the mess. parse_partial_json closes open braces and quotes to return a usable object even from truncated input, reporting confidence and how many bytes it consumed. extract_json_from_text strips markdown fences and prose around embedded JSON. validate_json does strict RFC 8259 checking with precise error positions. Built on the streamparse library, it runs via npx in Claude Desktop, Cursor, Cline, and other MCP clients. Useful when you're building agents that need to reason about their own incomplete structured outputs mid-generation.
An MCP server that gives AI assistants the ability to parse partial / messy / truncated JSON.
Built on top of @mukundakatta/streamparse.
Works with Claude Desktop, Cursor, Cline, Windsurf, Zed, and any other MCP client.
parse_partial_jsonRecover a JSON value from a possibly-truncated string. Always returns a valid value with synthetic closure of any open strings, arrays, or objects.
{
"text": "{\"type\":\"tool_use\",\"name\":\"edit_file\",\"input\":{\"path\":\"a/b.ts\",\"cont"
}
→
{
"value": {
"type": "tool_use",
"name": "edit_file",
"input": { "path": "a/b.ts", "cont": null }
},
"complete": false,
"path": ["input", "cont"],
"bytes_consumed": 67,
"confidence": 0.65
}
extract_json_from_textStrip prose, ```json fences, and comments around a JSON value embedded in
LLM output. Returns the first parseable value.
Sure, here you go:
```json
{ "answer": 42 }
Let me know!
→ `{ "answer": 42 }`
### `validate_json`
Strict-mode RFC 8259 validator. Returns `ok=true` and the parsed value on
success, or `ok=false` with a precise byte position and error message on
failure.
## Install
### Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"streamparse": {
"command": "npx",
"args": ["-y", "@mukundakatta/streamparse-mcp"]
}
}
}
Same shape, in the appropriate mcp.json for your client. Most clients
auto-discover via npx -y @mukundakatta/streamparse-mcp.
npm install -g @mukundakatta/streamparse-mcp
mcp-streamparse # listens on stdio
When an LLM is mid-tool-call and you need the assistant to reason about the
half-formed JSON it just wrote, no other tool gives a usable answer. Standard
JSON.parse throws. Regex extraction misses nested structure. This MCP server
gives Claude (or whichever model is driving) a real handle on partial JSON,
right where it lives.
MIT.
io.github.ericm1018/skillfm-llm-cost-optimizer-openai-anthropic-usage
io.github.mikerawsonnz/llm-orchestration-agent
io.github.mikerawsonnz/authenticated-llm-agent
labforgedev/copilot-memory-mcp
csoai-org/agent-prompt-injection-firewall-mcp
io.github.mikerawsonnz/authenticated-multi-llm-agent