内容
# agentcast-mcp
[](https://www.npmjs.com/package/@mukundakatta/agentcast-mcp)
[](#)
[](https://modelcontextprotocol.io)
一个 MCP 服务器,使 AI 助手能够强制执行结构化输出:从混乱的 LLM 文本中提取 JSON,对其进行形状规格检查,并在模型返回错误形状时生成重试反馈消息。
构建在 [`@mukundakatta/agentcast`](https://github.com/MukundaKatta/agentcast) 之上。可与 Claude Desktop、Cursor、Cline、Windsurf、Zed 以及其他任何 MCP 客户端配合使用。
## 工具列表
### `extract_json`
从混乱的 LLM 输出中提取 JSON 值。尝试整个文本,然后尝试用 ```json ``` 块,最后尝试最大的平衡 `{...}` / `[...]` 子字符串。返回解析值以及成功使用的策略。
```json
{
"text": "当然,这里是:\n```json\n{\"answer\": 42}\n```\n请告诉我!"
}
```
→
```json
{
"value": { "answer": 42 },
"found": true,
"source": "fenced_json"
}
```
`source` 可以是 `whole`、`fenced_json`、`fenced_plain`、`balanced_substring` 或 `none`。
### `validate_response`
根据 agentcast 形状规格验证解析的 JSON 值。规格映射字段名称到类型:`string`、`number`、`boolean`、`array`、`object`。后缀加 `?` 表示可选。
```json
{
"value": { "name": "ada" },
"shape": { "name": "string", "age": "number" }
}
```
→
```json
{
"valid": false,
"error": "缺少必填字段 'age'"
}
```
### `build_retry_prompt`
给定尝试历史,生成验证错误反馈消息,agentcast 将其附加到对话中,当模型返回错误形状时。对于希望手动驱动相同重试循环的非 Node MCP 客户端,编码“验证错误为反馈”模式。
```json
{
"attempts": [
{ "text": "{\"name\":\"ada\"}", "error": "缺少必填字段 'age'" }
],
"expected_shape": { "name": "string", "age": "number" }
}
```
→
```json
{
"feedback": "您的上一个响应未匹配所需的形状。错误:缺少必填字段 'age'\n\n请重试。仅响应有效的 JSON 以修复上述错误。\n\n预期形状:{\"name\":\"string\",\"age\":\"number\"}"
}
```
## 安装
### Claude Desktop
添加到 `claude_desktop_config.json`:
```json
{
"mcpServers": {
"agentcast": {
"command": "npx",
"args": ["-y", "@mukundakatta/agentcast-mcp"]
}
}
}
```
### Cursor / Cline / Windsurf / Zed
相同的形状,在您客户端的适当 `mcp.json` 中。大多数客户端通过 `npx -y @mukundakatta/agentcast-mcp` 自动发现。
### 本地安装
```bash
npm install -g @mukundakatta/agentcast-mcp
mcp-agentcast # 在标准输入/输出上监听
```
## 为什么这很重要
当 LLM 应该返回结构化数据时,它有时会将 JSON 包装在散文中、分隔符中或虚构的字段中。标准的 `JSON.parse` 会抛出异常。手写的正则表达式会忽略嵌套结构。这个 MCP 服务器为驱动代理的任何模型提供了一个真正的处理方法:
1. 从响应中提取 JSON,
2. 检查它是否匹配预期的形状,
3. 生成确切的重试提示,促使模型在下一次尝试中修复它。
## 许可证
MIT。