{"_id":"@dachengzhihui/keyan-agent-mcp","_rev":"2-457cfbfcb33c7fec3b2c944f8e7c2e1e","name":"@dachengzhihui/keyan-agent-mcp","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@dachengzhihui/keyan-agent-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","claude","agent","keyan-agent","ai-tools"],"license":"MIT","_id":"@dachengzhihui/keyan-agent-mcp@0.1.0","maintainers":[{"name":"yuzzzzzzi","email":"yuzzzzzzi@qq.com"}],"homepage":"https://cnb.cool/dachengzhihui/keyan-work/tree/main/packages/agent-mcp","bin":{"keyan-agent-mcp":"dist/index.js"},"dist":{"shasum":"159a4372b70b72f44ada0b56c2d262c8457e7f18","tarball":"https://registry.npmjs.org/@dachengzhihui/keyan-agent-mcp/-/keyan-agent-mcp-0.1.0.tgz","fileCount":6,"integrity":"sha512-0RPxHwiT+7LNBXEg4nFOExaBPTGjbwT+/cIGmUi01mqdWlV0rtGcYy7yAtV9WkFtJkj3Dt6QCDNZ707Ra+QF4Q==","signatures":[{"sig":"MEQCIHfLRl1ZYEFlufjroItSe6ivMJuolUspW53GHWVAcuvgAiBNUp5idtKsBL8OHehkrgNuRtw3n5pn5d1yvGR06h+r2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77204},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"cee1f4d2e0438f2fe524180f28ef35cf67d14996","scripts":{"dev":"tsx src/index.ts","test":"vitest run","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"pnpm build && chmod +x dist/index.js"},"_npmUser":{"name":"yuzzzzzzi","email":"yuzzzzzzi@qq.com"},"repository":{"url":"https://cnb.cool/dachengzhihui/keyan-work.git","type":"git","directory":"packages/agent-mcp"},"_npmVersion":"11.6.2","description":"MCP server exposing keyan-agent admin API (handlers/agents/skills/wiki) for AI-assisted configuration via Claude Code.","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^3.23.0","@modelcontextprotocol/sdk":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","tsup":"^8.3.0","vitest":"^2.1.0","typescript":"^5.7","@types/node":"^20.0.0"},"_npmOperationalInternal":{"tmp":"tmp/keyan-agent-mcp_0.1.0_1781708531572_0.886237911992523","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dachengzhihui/keyan-agent-mcp","version":"0.1.1","description":"MCP server exposing keyan-agent admin API (handlers/agents/skills/wiki) for AI-assisted configuration via Claude Code.","license":"MIT","type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","bin":{"keyan-agent-mcp":"dist/index.js"},"engines":{"node":">=18.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"scripts":{"build":"tsup","dev":"tsx src/index.ts","typecheck":"tsc --noEmit","test":"vitest run","test:watch":"vitest","prepublishOnly":"pnpm build && chmod +x dist/index.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","zod":"^3.23.0"},"devDependencies":{"@types/node":"^20.0.0","tsup":"^8.3.0","tsx":"^4.19.0","typescript":"^5.7","vitest":"^2.1.0"},"keywords":["mcp","model-context-protocol","claude","agent","keyan-agent","ai-tools"],"homepage":"https://cnb.cool/dachengzhihui/keyan-work/tree/main/packages/agent-mcp","repository":{"type":"git","url":"https://cnb.cool/dachengzhihui/keyan-work.git","directory":"packages/agent-mcp"},"gitHead":"6848cb6fb216e2764a6612ff8af4188500864f8c","_id":"@dachengzhihui/keyan-agent-mcp@0.1.1","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-rcAVepqkAIc57VGlP67q7Au8FOab1qMLhoea6txyGaVAULQ+YiT+5Gpde62xUH31V3cZ5BZfSct9/b2jCaTHYg==","shasum":"21d91d14678d44d4462820c060e915275ae22de3","tarball":"https://registry.npmjs.org/@dachengzhihui/keyan-agent-mcp/-/keyan-agent-mcp-0.1.1.tgz","fileCount":7,"unpackedSize":83243,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH78BffV448hprDScBBGBMMWQLMOD6J4MMJOIbBX2bhbAiB7pB5zvSq7l5fbN8xpPtuoB6Zlc2/8fcl4zbZxUjqDuw=="}]},"_npmUser":{"name":"yuzzzzzzi","email":"yuzzzzzzi@qq.com"},"directories":{},"maintainers":[{"name":"yuzzzzzzi","email":"yuzzzzzzi@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keyan-agent-mcp_0.1.1_1781710109492_0.21695025002441715"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-17T15:02:11.359Z","modified":"2026-06-17T15:28:29.781Z","0.1.0":"2026-06-17T15:02:11.714Z","0.1.1":"2026-06-17T15:28:29.639Z"},"license":"MIT","homepage":"https://cnb.cool/dachengzhihui/keyan-work/tree/main/packages/agent-mcp","keywords":["mcp","model-context-protocol","claude","agent","keyan-agent","ai-tools"],"repository":{"type":"git","url":"https://cnb.cool/dachengzhihui/keyan-work.git","directory":"packages/agent-mcp"},"description":"MCP server exposing keyan-agent admin API (handlers/agents/skills/wiki) for AI-assisted configuration via Claude Code.","maintainers":[{"name":"yuzzzzzzi","email":"yuzzzzzzi@qq.com"}],"readme":"# @dachengzhihui/keyan-agent-mcp\n\n通过 MCP(Model Context Protocol)把 [keyan-agent](https://cnb.cool/dachengzhihui/keyan-work/tree/main/apps/agent) 的 admin API 暴露给本地 Claude Code 等 AI 客户端。\n\n让 AI 在对话里直接为你完成 keyan-agent 的配置:**建 handler、agent、skill,并 test-run 验证**。\n\n> 实际场景:你在 Claude Code 里说「帮我建一个每周分析进度的 handler,接现有 `progress-reviewer` agent」——Claude Code 通过本 MCP 工具,从读 wiki 学规范 → 写脚本 → test-run 验证 → enable 全流程跑完,**配置即能力**闭环到 AI 端。\n\n## 安装 & 配置\n\n无需手动安装。在你的 Claude Code config(`~/.config/claude-code/mcp.json` 或 IDE 配置)加:\n\n```json\n{\n  \"mcpServers\": {\n    \"keyan-agent\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@dachengzhihui/keyan-agent-mcp\"],\n      \"env\": {\n        \"AGENT_BASE_URL\": \"https://agent.your-company.com\",\n        \"AGENT_ADMIN_TOKEN\": \"your-admin-token\"\n      }\n    }\n  }\n}\n```\n\n启动 Claude Code,MCP server 自动作为子进程跑起来。\n\n### 环境变量\n\n| 名 | 必填 | 默认 | 说明 |\n|---|---|---|---|\n| `AGENT_BASE_URL` | ✅ | — | keyan-agent admin endpoint,如 `https://agent.example.com`(末尾不带 `/`) |\n| `AGENT_ADMIN_TOKEN` | ✅ | — | admin 鉴权 token,对应 agent 端 env `AGENT_ADMIN_TOKEN` |\n| `AGENT_REQUEST_TIMEOUT_MS` | ❌ | `30000` | HTTP 请求超时,毫秒 |\n\n启动时本 MCP 会先 ping `${AGENT_BASE_URL}/admin/api/healthz` 验证连通,失败立即报错让你检查配置(避免 fail-late)。\n\n## 给 Claude Code 装上对应 skill(强烈建议)\n\nnpm 包内含一份 `SKILL.md`,教 Claude 正确顺序用本 MCP 工具(先 wiki / handler 必 test-run / agent 默认 enabled 创建后立刻 disable / skill name 命名规则等)。安装到 Claude Code 全局或项目 skills 目录:\n\n```bash\n# 全局(Claude Code 所有会话生效)\nmkdir -p ~/.claude/skills/keyan-agent\ncp \"$(npm root -g)/@dachengzhihui/keyan-agent-mcp/SKILL.md\" ~/.claude/skills/keyan-agent/SKILL.md\n\n# 或项目级(只在本项目目录里生效)\nmkdir -p .claude/skills/keyan-agent\ncp \"$(npm explore @dachengzhihui/keyan-agent-mcp -- pwd)/SKILL.md\" .claude/skills/keyan-agent/SKILL.md\n```\n\n装完后 Claude 看到本 MCP 工具时会自动应用该 skill 教的规范,创建 handler/agent/skill 不再需要你每次重复解释流程。\n\n## 工具清单(v0.1,共 23 个)\n\n### 系统了解(AI 起步先调)\n- `wiki_list` —— 列 agent admin wiki 文章\n- `wiki_read(slug)` —— 读完整 markdown\n- `tools_list_available` —— 列 in-process 工具 + 外部 MCP server\n\n### Handler 编排\n- `handler_list` / `handler_get(key)` / `handler_list_versions(key)`\n- `handler_create(key, code, name, description)`\n- `handler_update(key, code, name?, description?)`\n- `handler_enable(key)` / `handler_disable(key)`\n- `handler_test_run(key, params)`\n- **`handler_create_and_test_run(key, code, name, description, test_params)`** —— 复合:create → test-run 一气;默认创建后 `enabled=false`,需显式 `handler_enable`\n\n### Agent 编排\n- `agent_list` / `agent_get(id)`\n- `agent_create(...)` / `agent_update(id, ...)`\n- `agent_enable(id)` / `agent_disable(id)`\n\n### Skill 编排\n- `skill_list` / `skill_get(name)` / `skill_create(name, content)` / `skill_update(name, content)`\n\n### 调试\n- `runs_list_for_handler(handler_key, limit?)`\n\n### 显式不暴露(v0.1)\n- 删除操作(防 AI 失手;请去 admin UI 走人审)\n- `schedule_*` / `mcp_server_*` / `task_*`(低频运维,人配更稳)\n- 完整 trace 拉取(数据量大,admin UI 看)\n\n## 安全 & 鉴权\n\n- 本 MCP server 是个 thin HTTP 客户端;没有任何秘密内置,所有凭证由你的 Claude Code config env 提供\n- agent 端走 `Authorization: Bearer ${AGENT_ADMIN_TOKEN}`,与 admin UI 的 cookie session 路径并行,两条路径互不影响\n- **token 等同 admin 全权**(handler 可写 = 主机 RCE 等级)。仅在受信任的内部环境分发,定期轮换\n- 后续 keyan-agent 会加多 token 表 + 自主创建 token + scope 限制,届时本 MCP 配的 token 可独立轮换\n\n## 开发\n\n```bash\npnpm install\npnpm typecheck\npnpm test\npnpm build          # → dist/\npnpm dev            # tsx src/index.ts(stdio,本地手动 wire 进 Claude Code 用)\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}