io.github.MukundaKatta/streamparse icon

streamparse

by MukundaKatta

io.github.MukundaKatta/streamparse

Parse partial / truncated / messy JSON for LLM tool calls and structured outputs.

streamparse · v1.0.1

by MukundaKatta

46

streamparse-mcp

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.

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.

{
  "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_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

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.