{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_5bmxwa5t8d4s","handle":"workbuddy-mcp-asr","url":"https://wellknown.network/agents/workbuddy-mcp-asr","links":{"self":"https://wellknown.network/agents/workbuddy-mcp-asr/record.json","html":"https://wellknown.network/agents/workbuddy-mcp-asr","markdown":"https://wellknown.network/agents/workbuddy-mcp-asr/record.md","api":"https://wellknown.network/api/v1/agents/workbuddy-mcp-asr","status":"https://wellknown.network/api/v1/agents/workbuddy-mcp-asr/status","claim":"https://wellknown.network/agents/workbuddy-mcp-asr/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/workbuddy-mcp-asr/claim.json","badge":"https://wellknown.network/agents/workbuddy-mcp-asr/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/workbuddy-mcp-asr/history","tools":"https://wellknown.network/api/v1/agents/workbuddy-mcp-asr/tools"},"ard":{"identifier":"urn:air::server:workbuddy-mcp-asr","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"workbuddy-mcp-asr","summary":"WorkBuddy Connector MCP server for self-hosted ASR transcription (stdio, auth_mode: token)","description":"# ASR Transcribe Connector（asr-transcribe）\n\nWorkBuddy 连接器：把本机音频文件上传到用户**自托管**的 ASR 转写服务，返回转写文字。\n\n按 06 Connector 开发规范（MCP 方案）+ 06D 附录C（MCP 用户自填 Token 模式）实现：\n\n- MCP Server：Python + FastMCP（stdio 本地子进程），依赖 `mcp[cli]` + `httpx`\n- 鉴权：`auth_mode: \"token\"`，凭证通过 token-schema 表单由用户填写，仅存储在本机，\n  连接时以 `${VAR}` 占位符注入 stdio 子进程的 env\n\n## 文件结构\n\n```\nasr-transcribe/\n├── connector-meta.json   # 元信息（source: asr-transcribe, type: mcp, auth_mode: token）\n├── mcp.json              # MCP 连接配置（stdio + env 注入 ASR_URL / ASR_USER / ASR_PASS）\n├── token-schema.json     # 用户自填凭证表单定义\n├── skills/\n│   └── SKILL.md          # 教 AI 何时/如何调用转写工具\n├── server/\n│   └── asr_mcp_server.py # MCP Server 本体\n├── icon.svg              # 图标（麦克风）\n└── README.md\n```\n\n## 对接的后端 API\n\nMCP Server 只对接自托管 ASR 服务的两个端点：\n\n| 端点 | 方法 | 说明 |\n|---|---|---|\n| `/` | POST (multipart, 字段 `file`) | 上传音频，触发转写，结果落盘到服务端监听目录 |\n| `/api/jobs` | GET | JSON 列表，每项含 `name` / `status` / `text` |\n\n## 提供的 MCP 工具\n\n- `transcribe_audio(file_path)` — 上传音频并轮询 `/api/jobs`（间隔 3s、最多 60 次），返回转写文本\n- `list_recent_jobs(limit=20)` — 返回最近的转写记录列表\n\n## 凭证（token-schema.json）\n\n| 字段 | 类型 | 必填 | 说明 |\n|---|---|---|---|\n| ASR_URL | text | ✅ | 服务基础地址，默认 `http://127.0.0.1:8899`（参考实现的默认端口） |\n| ASR_USER | text | ✅ | Basic Auth 用户名 |\n| ASR_PASS | password | ✅ | Basic Auth 密码 |\n\n三项凭证仅存储在本机（`~/.workbuddy/connectors/asr-transcribe/` 下），由服务提供方发放账号。\n\n## 本地测试步骤\n\n1. **裸测后端 API**（本机真服务在 `127.0.0.1:8899`，无 basic auth，可直接验证对接逻辑）：\n\n   ```bash\n   curl -s http://127.0.0.1:8899/api/jobs | python3 -m json.tool\n   ```\n\n2. **准备 venv**（已就绪可跳过）：\n\n   ```bash\n   python3 -m venv .venv\n   .venv/bin/pip install \"mcp[cli]\" httpx\n   ```\n\n3. **无令牌/缺凭证时的友好错误**：\n\n   ```bash\n   env -i PATH=\"$PATH\" .venv/bin/python -c \"\n   import asyncio, server.asr_mcp_server as s\n   print(asyncio.run(s.list_recent_jobs.fn(limit=5)) if hasattr(s.list_recent_jobs,'fn') else 'see test')\"\n   ```\n\n   （详见 `server/test_smoke.py`，缺 env 应返回「缺少连接配置：ASR_URL、ASR_USER、ASR_PASS…」）\n\n4. **带凭证实测转写**（用 8899 本地服务）：\n\n   ```bash\n   ASR_URL=ht…","publisher":{"name":"dangsys","url":null},"homepage":null,"repository":null,"version":"1.0.1","license":"MIT","protocols":["mcp"],"tags":["asr","mcp","model-context-protocol","transcription","whisper","workbuddy"],"pricing":null,"endpoints":[{"url":"pypi:workbuddy-mcp-asr","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","summary":"pypi","version":"pypi","description":"pypi","publisherName":"pypi"}},"derived":{"capabilities":[{"slug":"media.speech-recognition","name":"Speech Recognition","confidence":1,"provenance":"declared"}],"categories":["media"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"workbuddy-mcp-asr","registry":"pypi","observedAt":"2026-10-29T02:26:37.758Z","publishedAt":"2026-09-08T17:46:14.056349Z","latestVersion":"1.0.1"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"workbuddy-mcp-asr","url":"https://pypi.org/project/workbuddy-mcp-asr/","firstSeenAt":"2026-09-10T16:22:27.648Z","fetchedAt":"2026-10-29T02:25:02.355Z","normalizedAt":"2026-10-29T02:25:02.355Z"}]},"firstSeenAt":"2026-09-10T16:22:27.648Z","updatedAt":"2026-10-29T02:26:37.758Z"}