Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Audit trail and traceability for AI agents. MCP gate: evaluate, ingest, request approval.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
KYA_BASE_URL, KYA_API_KEY, KYA_HOST, KYA_AGENT_ID标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"shield-kya": {
"command": "npx",
"args": [
"-y",
"@shield-agent/kya",
"serve-mcp",
"--stdio"
],
"env": {
"KYA_BASE_URL": "your-value",
"KYA_API_KEY": "your-value",
"KYA_HOST": "your-value",
"KYA_AGENT_ID": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add shield-kya --env KYA_BASE_URL=your-value --env KYA_API_KEY=your-value --env KYA_HOST=your-value --env KYA_AGENT_ID=your-value -- npx -y @shield-agent/kya serve-mcp --stdio运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"shield-kya": {
"command": "npx",
"args": [
"-y",
"@shield-agent/kya",
"serve-mcp",
"--stdio"
],
"env": {
"KYA_BASE_URL": "your-value",
"KYA_API_KEY": "your-value",
"KYA_HOST": "your-value",
"KYA_AGENT_ID": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"shield-kya": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@shield-agent/kya",
"serve-mcp",
"--stdio"
],
"env": {
"KYA_BASE_URL": "your-value",
"KYA_API_KEY": "your-value",
"KYA_HOST": "your-value",
"KYA_AGENT_ID": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
KYA_HOST envKYA_AGENT_ID env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日
注册名称已通过 GitHub 账户 The-Pixel-Boys 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:KYA_BASE_URL, KYA_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.33.3)于3天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, awardlanes
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
@shield-agent/kyaAudit trail and traceability for AI agents. See what every coding agent did and check each tool call against policy. KYA records every tool call your coding agents make, on a local dashboard, and by default denies a short list of destructive commands, secret reads and exfiltration (list below). Everything else is recorded, not blocked. Local hooks fail open. Real blocking and human approval run on the MCP policy path against a hosted workspace (the Shield Agent cloud service). One command. Free forever under MIT.
npm i -g @shield-agent/kya@latest && kya start
npx @shield-agent/kya@latest start
Requires Node.js 22+ (24 recommended). Restart Cursor / Claude Code / Codex once so MCP loads. Hosted desk: shield-agent.com.
CLI and local MCP gate for Shield’s Know Your Agent path.
An agent that asks Shield first gets Allow, Review, or Deny: you register the agent, wrap the tool (or route it through the MCP gate or the hosted plane), and Review waits for a person. Local hooks only record and block the never-list and the guard pack (see Hook interception). Hosted is where enforcement lives. This package does not scan your network. Agents that never call evaluate stay invisible on purpose.
Walkthrough: how you use it.
npx @shield-agent/kya@latest --help
npx @shield-agent/kya@latest --version
--version, -v, -V and kya version print the installed package version on one line and exit 0. They read the local package only: no network, no banner, no config.
Requires Node.js 22+ (engines.node: >=22); 24 is the recommended line. Node 20 and 21 are unsupported but work: the CLI prints a one-line warning. Node 18 and older are unsupported and some features break there (HTTP serve-mcp, the gateway OTLP receiver). Below 22 the CLI offers to install Node 24 for you (via volta / fnm / nvm / brew), reinstall itself, and finish the command. If you decline, it just prints the warning and continues. kya hook never warns or prompts.
It works with any host that speaks MCP or OpenAPI. Vertical packs are optional. Shield is the only policy decision point (the one place that decides Allow or Deny). This gate never auto-approves an irreversible side effect (a change you cannot undo).
If KYA_API_KEY is empty against an authenticated plane, network commands exit non-zero. eval-tool, wrap, and invoke exit 0 on ALLOW, 4 on REQUIRE_APPROVE, and 1 on DENY or unknown, so a line like eval-tool && write cannot skip the gate. wrap runs in observe mode by default, so it exits 0 on REQUIRE_APPROVE too. Set KYA_HOLD=1 or pass --hold to get the 4.
--offline runs sample evaluate without a paid cloud (useful for DENY and REQUIRE_APPROVE demos). Creating an agent is itself a tool: offline, kya.agent.register comes back REQUIRE_APPROVE. Allow, break-glass, and approve mint modes (the modes that create approvals) live on the control plane.
npm i -g @shield-agent/kya@latest && kya start
npx @shield-agent/kya@latest start
Run it in your project directory. (From a clone of this repo, ./scripts/install-local.sh replaces the npm install.)
If the install fails with EACCES (the global npm folder belongs to root, common on Linux), do not use sudo. Run without a global install: npx @shield-agent/kya@latest start. Or give npm a folder you own: npm config set prefix ~/.npm-global, add ~/.npm-global/bin to your PATH, then run the install again.
More ways to install (same package; npm stays the reference path):
# Homebrew. Homebrew 7 may ask you to trust a third-party tap: run `brew tap The-Pixel-Boys/tap` first.
brew install The-Pixel-Boys/tap/shield-kya
scoop bucket add The-Pixel-Boys https://github.com/The-Pixel-Boys/scoop-bucket.git scoop install shield-kya
Where each channel is counted. The table has no counts on purpose. Downloads are not installs and not people.
| Channel | Command or listing | Counted in |
|---|---|---|
| npm (reference) | npm install -g @shield-agent/kya@latest | npm downloads |
| Homebrew tap | brew install The-Pixel-Boys/tap/shield-kya | npm (the formula downloads the npm tarball) |
| Scoop | scoop install shield-kya | npm (the manifest downloads the npm tarball) |
| Python shim | pip install shield-kya (also needs the npm CLI on PATH) | PyPI downloads |
| VS Code extension | Marketplace: shield-agent.shield-kya (also needs the npm CLI) | VS Code Marketplace downloads |
| Plugins (Claude Code, Codex, Gemini CLI, Cursor) | see the sections below | npm (the plugin bootstrap runs npm install) |
GitHub Action kya-certify | Marketplace listing | npm (each run installs the CLI from npm) |
| Dev Container Feature | not published yet | not counted |
Homebrew, Scoop, plugins and the GitHub Action fetch the npm package, so they are inside the npm count and are not added again.
Adoption, measured. The badge reads a public file that a daily job writes. A count under 50 is not shown. The badge reads "unavailable" when the last measurement failed. The website also hides any figure older than 48 hours.
Repos using kya-action: public repos outside The-Pixel-Boys, counted by GitHub code search. This count is approximate. Private repos are not counted, and the search covers default branches only.
Hosted channel counts (Slack, Teams, webhook, helpdesk) and the date of each count are on https://shield-agent.com.
Claude Code users can also install the plugin; GitHub Copilot CLI users the Copilot CLI plugin (read its first paragraph before installing); Codex CLI users the Codex plugin; Gemini CLI users the Gemini CLI extension. Cline users: npm install -g @shield-agent/kya@latest, then follow llms-install.md. It is written so Cline can follow it; a Cline run from that file alone has not been tested yet.
That inits .kya/, wires local MCP (.mcp.json, mcp.json, .cursor/mcp.json → kya serve-mcp --stdio), also wires user-level configs for every installed host it detects (~/.claude.json, ~/.kimi-code/, ~/.grok/, ~/.cursor/, …), and opens the live activity report. The report runs in the background, so you get your terminal back. kya stop stops it. kya receipt --open reopens it. Cursor, Kiro, Qwen, Amp, Droid, Cline, and Grok pick the server up live with no restart (Kimi: just a new session). Claude Code, Codex, OpenCode, Gemini, Copilot CLI, and Kilo CLI load it on next launch. claude --resume keeps your conversation.
kya start --no-open # wire only
kya start --force # rewrite MCP blocks
kya start covers Claude Code, Cursor, and any host that reads .mcp.json. It also auto-wires the user-level config of every installed host it detects. For the rest, kya connect writes the host's own config dialect directly:
kya connect claude # ~/.claude.json (merges mcpServers only)
kya connect grok # ~/.grok/config.toml (appends [mcp_servers.shield-kya]) kya connect opencode # ~/.config/opencode/opencode.json kya connect qwen # ~/.qwen/settings.json kya connect amp # ~/.config/amp/settings.json kya connect qwen --project # project scope instead of global kya connect kiro --force # overwrite an existing shield-kya entry
Connect merges. It never rewrites a host config it cannot parse, and it keeps your other servers and keys. Supported hosts: claude, codex, grok, opencode, kilo, kiro, qwen, kimi, mastracode, amp, copilot, cursor. Each wires serve-mcp --stdio with KYA_OFFLINE=1 so the gate starts keyless (no API key). Set KYA_API_KEY in the host env when you point at an authenticated plane.
Hosts without a connect target still work: kya wrap --offline -- puts the same evaluate gate in front of any CLI. Per-host recipes with verify steps and troubleshooting live in docs/hosts/.
kya start also wires a PreToolUse hook into every installed hook-capable host it detects: Claude Code (~/.claude/settings.json, merge-only), Grok (~/.grok/hooks/shield-kya.json, kya-managed file), and Kimi Code (~/.kimi-code/config.toml, [[hooks]] append). Every tool call the agent makes then passes through kya hook first: it is evaluated locally (offline, sub-second, no network) and written to the global record (trail). (If you opted in to anonymous usage stats, the hook also starts a detached helper at most once a day; see Anonymous usage stats.)
Decision mapping: a local never-list or guard pack DENY blocks the tool call (exit 2 plus hookSpecificOutput deny JSON with permissionDecision: "deny"). ALLOW and REQUIRE_APPROVE are written to the record as advisory and the call proceeds. Manual wiring can pass --strict on the hook command to also block REQUIRE_APPROVE.
The never-list also blocks three groups added on 2026-10-30, pending owner review: agent-driven persistence (writes to ~/.ssh/authorized_keys, cron, LaunchAgents
只显示了开头部分;其余内容请在仓库中阅读