关于 streamparse
streamparse 是一款 MCP 服务,可从不完整、截断或夹杂杂文的文本中恢复和解析 JSON,帮助 AI 助手处理未完成的工具调用数据与结构化输出,并严格验证 JSON。
主要功能
- 01从截断的 JSON 恢复值
- 02提取文本中嵌入的 JSON
- 03验证 JSON 并报告字节位置错误
适用场景
- 01检查未写完的工具调用
- 02解析夹在说明文字或代码围栏中的 JSON
- 03按严格 JSON 语法检查结构化输出
MCP 相关
向 MCP 客户端提供 `parse_partial_json`、`extract_json_from_text` 和 `validate_json` 工具,用于恢复、提取和验证 JSON。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
3收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | string | 是 | 要解析的 JSON 文本。可能已被截断。 |
| lenient | boolean | 否 | 为 true 时(默认值),容忍尾随逗号、单引号、未加引号的键、```json 围栏、注释和周围的散文文本。 |
详细介绍
streamparse-mcp
一个 MCP 服务,让 AI 助手能够解析不完整、杂乱或被截断的 JSON。
基于 @mukundakatta/streamparse 构建。
适用于 Claude Desktop、Cursor、Cline、Windsurf、Zed,以及任何其他 MCP 客户端。
提供的工具
parse_partial_json
从可能被截断的字符串中还原 JSON 值。始终返回有效值,并自动补全所有未闭合的字符串、数组或对象。
{
"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
移除嵌入在 LLM 输出中 JSON 值周围的文本、```json 代码围栏和注释。返回第一个可解析的值。
Sure, here you go:
```json
{ "answer": 42 }
欢迎告诉我!
→ `{ "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
在适用于相应客户端的 mcp.json 中使用相同格式。大多数客户端会通过 npx -y @mukundakatta/streamparse-mcp 自动发现。
本地安装
npm install -g @mukundakatta/streamparse-mcp
mcp-streamparse # listens on stdio
为什么这很重要
当 LLM 正在执行工具调用,而你需要助手针对它刚写下的未完整 JSON 进行推理时,没有其他工具能给出可用的结果。标准的 JSON.parse 会抛出错误。正则表达式提取会遗漏嵌套结构。这个 MCP 服务让 Claude(或当前驱动的其他模型)能够直接处理部分 JSON。
许可证
MIT。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。