io.github.MukundaKatta/streamparse
Parse partial / truncated / messy JSON for LLM tool calls and structured outputs.
Open source Open in the app JSON README (API)
About
Parse partial / truncated / messy JSON for LLM tool calls and structured outputs.
Details
- Kind
- MCP servers
- Topic
- AI, RAG & memory
- Publisher
- mukundakatta
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 1.0.1
- Open pull requests
- 4
- Last push
- 2026-09-05T11:32:47Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 03:02:07
- Updated
- 2026-08-29 03:02:07
- Origin id
io.github.MukundaKatta/streamparse
README
# streamparse-mcp
[](https://www.npmjs.com/package/@mukundakatta/streamparse-mcp)
[](#)
[](https://modelcontextprotocol.io)
An [MCP](https://modelcontextprotocol.io) server that gives AI assistants the
ability to parse partial / messy / truncated JSON.
Built on top of [`@mukundakatta/streamparse`](https://github.com/MukundaKatta/streamparse).
Works with Claude Desktop, Cursor, Cline, Windsurf, Zed, and any other MCP client.
## Tools exposed
### `parse_partial_json`
Recover a JSON value from a possibly-truncated string. Always returns a valid
value with synthetic closure of any open strings, arrays, or objects.
```json
{
"text": "{\"type\":\"tool_use\",\"name\":\"edit_file\",\"input\":{\"path\":\"a/b.ts\",\"cont"
}
```
→
```json
{
"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_text`
Strip 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"]
}
}
}
```
### Cursor / Cline / Windsurf / Zed
Same shape, in the appropriate `mcp.json` for your client. Most clients
auto-discover via `npx -y @mukundakatta/streamparse-mcp`.
### Local install
```bash
npm install -g @mukundakatta/streamparse-mcp
mcp-streamparse # listens on stdio
```
## Why this matters
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.
## License
MIT.