@shield-agent/kya 0.1.15 → 0.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.mcp.json +1 -1
- package/LIMITATIONS.md +10 -7
- package/README.md +44 -34
- package/claude/claude_desktop_config.example.json +1 -1
- package/gemini/settings.example.json +15 -0
- package/gemini/settings.hosted.example.json +12 -0
- package/grok/README.md +46 -0
- package/manifest.json +20 -5
- package/mcp.json +1 -1
- package/openai/codex.config.example.toml +26 -0
- package/openai/responses-mcp.example.json +13 -0
- package/package.json +5 -2
- package/server.json +2 -2
package/.mcp.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.1.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.1.17", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
package/LIMITATIONS.md
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
# Known limitations
|
|
2
2
|
|
|
3
3
|
- This package does not scan a network or discover agents that never call evaluate.
|
|
4
|
-
- Offline `eval-tool --offline` and `dash --once --offline` use a
|
|
4
|
+
- Offline `eval-tool --offline` and `dash --once --offline` use a sample policy surface for demos. Production needs a real control plane (local free or hosted).
|
|
5
5
|
- Unsigned v1 passport JSON is observational. Signed v2 claims (`shield-kya-agent-passport-v2`, `shield-kya-session-claim-v1`) need the hosted control-plane key.
|
|
6
|
-
-
|
|
7
|
-
- `wrap` evaluates (and may open a pending ticket). It
|
|
6
|
+
- If a host never wraps tools, session shrink cannot stop it. Spawn without a control plane cannot be gated.
|
|
7
|
+
- `wrap` evaluates (and may open a pending ticket). It never executes the side effect. Offline wrap does not call the approval API.
|
|
8
8
|
- `invoke` authorizes on a live plane after Allow or APPROVED. It never runs the customer write in the CLI. There is no `--offline` invoke.
|
|
9
|
-
- The TUI (`dash`) is observational. Keys `a
|
|
9
|
+
- The TUI (`dash`) is observational. Keys `a` / `x` print the CLI decide hint; they do not APPROVE or REJECT.
|
|
10
10
|
- Human decide is `kya approve --id` / `kya reject --id` against `POST /api/v1/kya/approvals/{id}/approve|reject` (`kya.approve` scope).
|
|
11
|
-
-
|
|
12
|
-
- Dialog safety
|
|
11
|
+
- Shield KYA evaluate/approve is the only policy decision point (`ALLOW` / `DENY` / `REQUIRE_APPROVE`). Scanners, `--scorecard`, `harness.agentshield`, and the ORR CLI write evidence. They never ALLOW a side effect. AgentShield is opt-in (`--producer harness.agentshield` or `--agentshield-json`). The CLI never passes `--fix`, never starts MiniClaw, and never installs `ecc-agentshield`.
|
|
12
|
+
- Dialog safety belongs in a guardrails product.
|
|
13
13
|
- Multi-language in-process runtimes are out of scope.
|
|
14
14
|
- Use OPA if you need a general policy language.
|
|
15
15
|
- Multi-tenant density, private registries, ORR board ops, pin, and support are separate from the solo `npx` path.
|
|
@@ -18,5 +18,8 @@
|
|
|
18
18
|
- Showback USD is an estimate from a checked-in published rate table. Unknown models report tokens only. ORR / metrics never ALLOW, DENY, or kill on spend.
|
|
19
19
|
- `--usage` must sit inside `--path`. Usage rows drop secret-shaped strings and labels over 64/128 chars. Hosted ingest is merchant-scoped and length-capped the same way.
|
|
20
20
|
|
|
21
|
-
-
|
|
21
|
+
- The hosted Claude connector uses machine API keys (Bearer). It is a custom connector, not an Anthropic Directory listing. OAuth DCR is a later slice.
|
|
22
|
+
- OpenAI: Codex CLI and the Responses API use the same `/mcp` URL with a machine API key. ChatGPT Apps on chatgpt.com (Developer Mode) are deferred until OAuth DCR. ChatGPT cannot attach a local stdio server.
|
|
23
|
+
- Gemini CLI supports stdio and hosted `httpUrl` with a Bearer header. Gemini Enterprise / Spark custom MCP OAuth is out of scope.
|
|
24
|
+
- Grok (grok.com) custom connectors need a public HTTPS URL. Localhost and private IPs are rejected. If the UI only offers OAuth or no auth, use Codex, Gemini CLI, or the xAI SDK instead of turning auth off.
|
|
22
25
|
- Local HTTP MCP remains loopback-only. Do not bind it to a public interface.
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# `@shield-agent/kya`
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
CLI and local MCP gate for Shield’s Know Your Agent path.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
If an agent can change a real system, it has to ask Shield first. You register the agent, wrap the tool, and get Allow, Hold, or Deny. Hold waits for a person. This package does not scan your network. Agents that never call evaluate stay invisible on purpose.
|
|
6
6
|
|
|
7
7
|
Walkthrough: [how you use it](https://shield-agent.com/how-kya-works#using).
|
|
8
8
|
|
|
@@ -10,12 +10,11 @@ Walkthrough: [how you use it](https://shield-agent.com/how-kya-works#using).
|
|
|
10
10
|
npx @shield-agent/kya@latest --help
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
- Creating an agent is a tool. `kya.agent.register` evaluates `REQUIRE_APPROVE` offline. Human mint modes (allow / break-glass / approve) live on the control plane.
|
|
13
|
+
It works with any host that speaks MCP or OpenAPI. Vertical packs are optional. Shield is the only policy decision point: this gate never auto-approves an irreversible side effect.
|
|
14
|
+
|
|
15
|
+
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.
|
|
16
|
+
|
|
17
|
+
`--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 live on the control plane.
|
|
19
18
|
|
|
20
19
|
## 15-minute path
|
|
21
20
|
|
|
@@ -34,7 +33,7 @@ npx @shield-agent/kya register-agent --name solo-builder --version-hash dev-loca
|
|
|
34
33
|
npx @shield-agent/kya eval-tool --tool-id org.sample.never.event --irreversible
|
|
35
34
|
npx @shield-agent/kya serve-mcp --stdio
|
|
36
35
|
|
|
37
|
-
# Terminal dashboard (free
|
|
36
|
+
# Terminal dashboard (free panes; --offline works without a key)
|
|
38
37
|
npx @shield-agent/kya dash --once --offline
|
|
39
38
|
```
|
|
40
39
|
|
|
@@ -51,14 +50,14 @@ Install hub: [https://shield-agent.com/install](https://shield-agent.com/install
|
|
|
51
50
|
approval + trail
|
|
52
51
|
```
|
|
53
52
|
|
|
54
|
-
Tag sessions with `KYA_HOST=ide` or `KYA_HOST=runtime`. Same
|
|
53
|
+
Tag sessions with `KYA_HOST=ide` or `KYA_HOST=runtime`. Same policy path either way.
|
|
55
54
|
|
|
56
55
|
## Environment
|
|
57
56
|
|
|
58
57
|
| Variable | Required | Meaning |
|
|
59
58
|
|----------|----------|---------|
|
|
60
59
|
| `KYA_BASE_URL` | Yes (network cmds) | Control plane origin |
|
|
61
|
-
| `KYA_API_KEY` | When auth is on | Bearer
|
|
60
|
+
| `KYA_API_KEY` | When auth is on | API key (or Bearer JWT for decide verbs) |
|
|
62
61
|
| `KYA_HOST` | No (default `ide`) | `ide` \| `runtime` |
|
|
63
62
|
| `KYA_AGENT_ID` | After register | Agent principal id |
|
|
64
63
|
| `KYA_MCP_PORT` | No (default `3920`) | HTTP MCP listen port |
|
|
@@ -71,16 +70,16 @@ Tag sessions with `KYA_HOST=ide` or `KYA_HOST=runtime`. Same sole PEP either way
|
|
|
71
70
|
|------|------|
|
|
72
71
|
| `kya.policy_evaluate` | `ALLOW` \| `DENY` \| `REQUIRE_APPROVE` |
|
|
73
72
|
| `kya.session_ingest` | Observe / raise-only risk |
|
|
74
|
-
| `kya.request_approval` | Open a human
|
|
73
|
+
| `kya.request_approval` | Open a human Hold. Does not execute the side effect |
|
|
75
74
|
|
|
76
|
-
MCP Registry: `server.json`
|
|
75
|
+
MCP Registry entry: `server.json` plus package `mcpName` `io.github.The-Pixel-Boys/shield-kya`.
|
|
77
76
|
|
|
78
77
|
```json
|
|
79
78
|
{
|
|
80
79
|
"mcpServers": {
|
|
81
80
|
"shield-kya": {
|
|
82
81
|
"command": "npx",
|
|
83
|
-
"args": ["--no-install", "@shield-agent/kya@0.1.
|
|
82
|
+
"args": ["--no-install", "@shield-agent/kya@0.1.17", "serve-mcp", "--stdio"],
|
|
84
83
|
"env": {
|
|
85
84
|
"KYA_BASE_URL": "http://127.0.0.1:8090",
|
|
86
85
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
|
@@ -99,9 +98,7 @@ npx @shield-agent/kya approve --id <approval-id>
|
|
|
99
98
|
npx @shield-agent/kya reject --id <approval-id>
|
|
100
99
|
```
|
|
101
100
|
|
|
102
|
-
`wrap` evaluates and may open a pending ticket. It never executes the side effect.
|
|
103
|
-
`invoke` asks the live plane to authorize after Allow or APPROVED. It does not run the write on this machine.
|
|
104
|
-
The TUI (`dash`) is observational. Keys `a`/`x` print this CLI. They do not decide.
|
|
101
|
+
`wrap` evaluates and may open a pending ticket. It never executes the side effect. `invoke` asks the live plane to authorize after Allow or APPROVED. It does not run the write on this machine. The TUI (`dash`) is observational: keys `a` / `x` print CLI hints and do not decide.
|
|
105
102
|
|
|
106
103
|
## Claude connector
|
|
107
104
|
|
|
@@ -109,19 +106,34 @@ The TUI (`dash`) is observational. Keys `a`/`x` print this CLI. They do not deci
|
|
|
109
106
|
|
|
110
107
|
```bash
|
|
111
108
|
# Prefer a preinstalled package (no registry auto-install):
|
|
112
|
-
npx --no-install @shield-agent/kya@0.1.
|
|
109
|
+
npx --no-install @shield-agent/kya@0.1.17 serve-mcp --stdio
|
|
113
110
|
# Or after npm i -g / local install:
|
|
114
111
|
kya serve-mcp --stdio
|
|
115
112
|
```
|
|
116
113
|
|
|
117
|
-
Copy `claude/claude_desktop_config.example.json` into Claude Desktop MCP settings, or use `.mcp.json` for Claude Code.
|
|
118
|
-
|
|
114
|
+
Copy `claude/claude_desktop_config.example.json` into Claude Desktop MCP settings, or use `.mcp.json` for Claude Code. Pack a Desktop extension with `npx @anthropic-ai/mcpb pack` (see `manifest.json`). That pack runs the packed `dist/cli.js`, not `npx -y`.
|
|
115
|
+
|
|
116
|
+
**Claude.ai / Cowork (hosted):** add a custom connector at `https://shield-agent.com/mcp` with request header `Authorization: Bearer <KYA_API_KEY>` (or `X-API-Key`). It is not Directory-listed yet (API-key auth, no OAuth DCR).
|
|
117
|
+
|
|
118
|
+
## OpenAI (Codex / Responses)
|
|
119
|
+
|
|
120
|
+
**Codex CLI / IDE:** copy `openai/codex.config.example.toml` into `~/.codex/config.toml`. Local stdio uses `npx --no-install @shield-agent/kya@0.1.17 serve-mcp --stdio`. Hosted Codex uses `url = "https://shield-agent.com/mcp"` with `bearer_token_env_var = "KYA_API_KEY"`.
|
|
121
|
+
|
|
122
|
+
**Responses API:** see `openai/responses-mcp.example.json` (`server_url` + `Authorization: Bearer <KYA_API_KEY>`).
|
|
123
|
+
|
|
124
|
+
**ChatGPT Apps (chatgpt.com):** deferred. Developer Mode wants OAuth. Use Codex until then.
|
|
125
|
+
|
|
126
|
+
## Gemini CLI
|
|
127
|
+
|
|
128
|
+
Merge `gemini/settings.example.json` (stdio) or `gemini/settings.hosted.example.json` (`httpUrl` + Bearer) into `~/.gemini/settings.json` or `.gemini/settings.json`. Do not enable both at once.
|
|
119
129
|
|
|
120
|
-
|
|
130
|
+
## Grok
|
|
131
|
+
|
|
132
|
+
Hosted custom connector: `https://shield-agent.com/mcp` (see `grok/README.md`). Grok rejects localhost. Prefer a Bearer machine key when the UI offers a request header. For a local agent host, use the same stdio launch as Claude/Codex/Gemini.
|
|
121
133
|
|
|
122
134
|
## Cursor plugin
|
|
123
135
|
|
|
124
|
-
`.cursor-plugin/plugin.json
|
|
136
|
+
The package includes `.cursor-plugin/plugin.json`, `mcp.json`, and a wrap skill. Public listing repo: https://github.com/The-Pixel-Boys/shield-kya
|
|
125
137
|
|
|
126
138
|
## ORR (reporting only)
|
|
127
139
|
|
|
@@ -131,11 +143,15 @@ npx @shield-agent/kya orr run --path . --out ./orr-report --scorecard ./scorecar
|
|
|
131
143
|
npx @shield-agent/kya orr run --path . --out ./orr-report --producer harness.agentshield --agentshield-json ./agentshield-report.json
|
|
132
144
|
```
|
|
133
145
|
|
|
134
|
-
ORR is a
|
|
146
|
+
ORR is a reporting board. Scanners, `--scorecard`, and `harness.agentshield` are evidence. They never ALLOW a high-stakes side effect, so they are not a second policy gate. AgentShield is optional and read-only: no `--fix`, no MiniClaw, no runtime hook. This package does not depend on `ecc-agentshield`. If you pass `--producer harness.agentshield` and have neither `--agentshield-json` nor an `agentshield` binary, ORR records a coverage gap and still exits 0. Explicit `--producer` always attempts; `--skip-optional-producers` only skips producers you did not ask for.
|
|
147
|
+
|
|
148
|
+
## Cost showback (observe only)
|
|
149
|
+
|
|
150
|
+
`kya orr run --usage ./usage.json` (or `.kya/usage.json`) adds a showback section: tokens and estimated USD by agent and run. Subagents nest under `parentRunId`. That section is not a billing meter and not a policy gate. Hosted metrics show the same rollup when usage is ingested with a session.
|
|
135
151
|
|
|
136
|
-
## Enterprise (
|
|
152
|
+
## Enterprise (separate tier)
|
|
137
153
|
|
|
138
|
-
Pin, private registry, multi-tenant density, ORR board ops, and support are
|
|
154
|
+
Pin, private registry, multi-tenant density, ORR board ops, and support are not required for the day-1 `npx` path above.
|
|
139
155
|
|
|
140
156
|
## Develop
|
|
141
157
|
|
|
@@ -147,12 +163,6 @@ pnpm build
|
|
|
147
163
|
|
|
148
164
|
## Docs
|
|
149
165
|
|
|
150
|
-
- [
|
|
151
|
-
- [
|
|
152
|
-
-
|
|
153
|
-
- [Public baseline](../../public/kya-baseline/README.md)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
## Cost showback (observe only)
|
|
157
|
-
|
|
158
|
-
`kya orr run --usage ./usage.json` (or `.kya/usage.json`) adds a **showback** section: tokens and estimated USD by agent/run. Subagents nest under `parentRunId`. This is **not** a billing meter and **not** a PEP. Hosted metrics show the same rollup when usage is ingested on session ingest.
|
|
166
|
+
- [Install hub](https://shield-agent.com/install)
|
|
167
|
+
- [How KYA works](https://shield-agent.com/how-kya-works)
|
|
168
|
+
- See also `LIMITATIONS.md` in this repo
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"command": "npx",
|
|
5
|
-
"args": ["--no-install", "@shield-agent/kya@0.1.
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.1.17", "serve-mcp", "--stdio"],
|
|
6
6
|
"env": {
|
|
7
7
|
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
8
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"shield-kya": {
|
|
4
|
+
"command": "npx",
|
|
5
|
+
"args": ["--no-install", "@shield-agent/kya@0.1.17", "serve-mcp", "--stdio"],
|
|
6
|
+
"env": {
|
|
7
|
+
"KYA_BASE_URL": "https://shield-agent.com",
|
|
8
|
+
"KYA_API_KEY": "${KYA_API_KEY}",
|
|
9
|
+
"KYA_HOST": "ide"
|
|
10
|
+
},
|
|
11
|
+
"timeout": 30000,
|
|
12
|
+
"trust": false
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
package/grok/README.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Grok + Shield KYA
|
|
2
|
+
|
|
3
|
+
Same three MCP tools as Claude and Codex: `kya.policy_evaluate`, `kya.session_ingest`, `kya.request_approval`. Shield stays the only policy decision point. Tools never execute the write.
|
|
4
|
+
|
|
5
|
+
## Hosted (grok.com)
|
|
6
|
+
|
|
7
|
+
1. Open [grok.com/connectors](https://grok.com/connectors).
|
|
8
|
+
2. **New Connector** → **Custom**.
|
|
9
|
+
3. Server URL: `https://shield-agent.com/mcp`.
|
|
10
|
+
4. Auth: machine API key as `Authorization: Bearer <KYA_API_KEY>` when the UI offers a request header / API key field. If the UI only offers OAuth or None, stop and use the xAI SDK or Codex/Gemini CLI instead. Do not turn auth off.
|
|
11
|
+
|
|
12
|
+
Grok rejects `localhost` and private IPs. A tunnel is only for your own debugging and still requires the Bearer key. We do not ship or support unauthenticated public tunnels.
|
|
13
|
+
|
|
14
|
+
## Hosted (xAI SDK)
|
|
15
|
+
|
|
16
|
+
The Shield machine key must travel with the MCP request. Do not register `https://shield-agent.com/mcp` without it.
|
|
17
|
+
|
|
18
|
+
```python
|
|
19
|
+
import os
|
|
20
|
+
from xai_sdk import Client
|
|
21
|
+
from xai_sdk.tools import mcp
|
|
22
|
+
|
|
23
|
+
kya_key = os.environ["KYA_API_KEY"]
|
|
24
|
+
client = Client(api_key=os.environ["XAI_API_KEY"])
|
|
25
|
+
chat = client.chat.create(
|
|
26
|
+
model="grok-4.6",
|
|
27
|
+
tools=[
|
|
28
|
+
mcp(
|
|
29
|
+
server_url="https://shield-agent.com/mcp",
|
|
30
|
+
authorization=f"Bearer {kya_key}",
|
|
31
|
+
),
|
|
32
|
+
],
|
|
33
|
+
)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
`authorization` is sent as the MCP `Authorization` header. Confirm kwargs in [xAI remote MCP docs](https://docs.x.ai/docs/developers/tools/remote-mcp). The URL is always `https://shield-agent.com/mcp`.
|
|
37
|
+
|
|
38
|
+
## Local / OSS
|
|
39
|
+
|
|
40
|
+
There is no grok.com stdio path. For a local agent host use the same stdio launch as Claude:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx --no-install @shield-agent/kya@0.1.17 serve-mcp --stdio
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Env: `KYA_BASE_URL`, `KYA_API_KEY`, `KYA_HOST`. Codex and Gemini example configs in this package show the full snippets.
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"manifest_version": "0.3",
|
|
3
3
|
"name": "shield-kya",
|
|
4
4
|
"display_name": "Shield KYA",
|
|
5
|
-
"version": "0.1.
|
|
5
|
+
"version": "0.1.17",
|
|
6
6
|
"description": "Know Your Agent MCP gate: ALLOW / DENY / REQUIRE_APPROVE. Sole PEP is Shield.",
|
|
7
7
|
"long_description": "Local Claude Desktop extension that runs the packaged `dist/cli.js serve-mcp --stdio` against your Shield control plane (local or https://shield-agent.com). Tools evaluate policy, ingest session risk, and open Hold tickets. They never execute irreversible side effects.",
|
|
8
8
|
"author": {
|
|
@@ -23,7 +23,11 @@
|
|
|
23
23
|
"entry_point": "claude/run-stdio.mjs",
|
|
24
24
|
"mcp_config": {
|
|
25
25
|
"command": "node",
|
|
26
|
-
"args": [
|
|
26
|
+
"args": [
|
|
27
|
+
"${__dirname}/dist/cli.js",
|
|
28
|
+
"serve-mcp",
|
|
29
|
+
"--stdio"
|
|
30
|
+
],
|
|
27
31
|
"env": {
|
|
28
32
|
"KYA_BASE_URL": "${user_config.base_url}",
|
|
29
33
|
"KYA_API_KEY": "${user_config.api_key}",
|
|
@@ -47,10 +51,21 @@
|
|
|
47
51
|
}
|
|
48
52
|
],
|
|
49
53
|
"tools_generated": false,
|
|
50
|
-
"keywords": [
|
|
54
|
+
"keywords": [
|
|
55
|
+
"kya",
|
|
56
|
+
"know-your-agent",
|
|
57
|
+
"policy",
|
|
58
|
+
"mcp",
|
|
59
|
+
"approval",
|
|
60
|
+
"claude"
|
|
61
|
+
],
|
|
51
62
|
"license": "MIT",
|
|
52
63
|
"compatibility": {
|
|
53
|
-
"platforms": [
|
|
64
|
+
"platforms": [
|
|
65
|
+
"darwin",
|
|
66
|
+
"win32",
|
|
67
|
+
"linux"
|
|
68
|
+
],
|
|
54
69
|
"runtimes": {
|
|
55
70
|
"node": ">=20.0.0"
|
|
56
71
|
}
|
|
@@ -66,7 +81,7 @@
|
|
|
66
81
|
"api_key": {
|
|
67
82
|
"type": "string",
|
|
68
83
|
"title": "API key",
|
|
69
|
-
"description": "Machine API key (sk_live_
|
|
84
|
+
"description": "Machine API key (sk_live_\u2026). Stored in the OS keychain.",
|
|
70
85
|
"sensitive": true,
|
|
71
86
|
"required": true
|
|
72
87
|
},
|
package/mcp.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"shield-kya": {
|
|
4
4
|
"description": "Know Your Agent local MCP gate: wrap-before-write, named-agent registry, Hold/Clear.",
|
|
5
5
|
"command": "npx",
|
|
6
|
-
"args": ["--no-install", "@shield-agent/kya@0.1.
|
|
6
|
+
"args": ["--no-install", "@shield-agent/kya@0.1.17", "serve-mcp", "--stdio"],
|
|
7
7
|
"env": {
|
|
8
8
|
"KYA_BASE_URL": "${KYA_BASE_URL}",
|
|
9
9
|
"KYA_API_KEY": "${KYA_API_KEY}",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Codex CLI / IDE — Shield KYA MCP
|
|
2
|
+
# Copy into ~/.codex/config.toml (or project .codex/config.toml in a trusted project).
|
|
3
|
+
# Docs: https://developers.openai.com/codex/mcp
|
|
4
|
+
#
|
|
5
|
+
# ChatGPT Apps (chatgpt.com Developer Mode) are deferred: that path wants OAuth.
|
|
6
|
+
# Use Codex here, or the hosted Responses API snippet in responses-mcp.example.json.
|
|
7
|
+
#
|
|
8
|
+
# Do not put API keys in this file. Inherit them from the environment.
|
|
9
|
+
|
|
10
|
+
# --- Local stdio (OSS) ---
|
|
11
|
+
[mcp_servers.shield-kya]
|
|
12
|
+
command = "npx"
|
|
13
|
+
args = ["--no-install", "@shield-agent/kya@0.1.17", "serve-mcp", "--stdio"]
|
|
14
|
+
startup_timeout_sec = 20
|
|
15
|
+
env_vars = ["KYA_BASE_URL", "KYA_API_KEY", "KYA_HOST", "KYA_AGENT_ID"]
|
|
16
|
+
|
|
17
|
+
[mcp_servers.shield-kya.env]
|
|
18
|
+
KYA_BASE_URL = "https://shield-agent.com"
|
|
19
|
+
KYA_HOST = "ide"
|
|
20
|
+
|
|
21
|
+
# --- Hosted Streamable HTTP (same three tools) ---
|
|
22
|
+
# Pick stdio OR hosted, not both.
|
|
23
|
+
# [mcp_servers.shield-kya-hosted]
|
|
24
|
+
# url = "https://shield-agent.com/mcp"
|
|
25
|
+
# bearer_token_env_var = "KYA_API_KEY"
|
|
26
|
+
# startup_timeout_sec = 20
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"comment": "OpenAI Responses API remote MCP — hosted Shield KYA. Put the machine key in env, not in git. ChatGPT Apps (chatgpt.com) are deferred until OAuth DCR. Leave OpenAI-side tool confirmation at the API default (do not auto-approve MCP calls).",
|
|
3
|
+
"model": "gpt-5.6",
|
|
4
|
+
"tools": [
|
|
5
|
+
{
|
|
6
|
+
"type": "mcp",
|
|
7
|
+
"server_label": "shield-kya",
|
|
8
|
+
"server_url": "https://shield-agent.com/mcp",
|
|
9
|
+
"authorization": "Bearer ${KYA_API_KEY}"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"input": "Evaluate whether tool org.sample.data.write should proceed. Use the shield-kya policy tool. Do not invent an approval."
|
|
13
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shield-agent/kya",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.17",
|
|
4
4
|
"description": "Know Your Agent light CLI + local MCP gate (provider-agnostic, zero vertical packs required).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -31,7 +31,10 @@
|
|
|
31
31
|
"assets",
|
|
32
32
|
"skills",
|
|
33
33
|
"rules",
|
|
34
|
-
".cursor-plugin"
|
|
34
|
+
".cursor-plugin",
|
|
35
|
+
"openai",
|
|
36
|
+
"gemini",
|
|
37
|
+
"grok"
|
|
35
38
|
],
|
|
36
39
|
"homepage": "https://shield-agent.com/install",
|
|
37
40
|
"repository": {
|
package/server.json
CHANGED
|
@@ -7,12 +7,12 @@
|
|
|
7
7
|
"url": "https://github.com/The-Pixel-Boys/shield-kya",
|
|
8
8
|
"source": "github"
|
|
9
9
|
},
|
|
10
|
-
"version": "0.1.
|
|
10
|
+
"version": "0.1.17",
|
|
11
11
|
"packages": [
|
|
12
12
|
{
|
|
13
13
|
"registryType": "npm",
|
|
14
14
|
"identifier": "@shield-agent/kya",
|
|
15
|
-
"version": "0.1.
|
|
15
|
+
"version": "0.1.17",
|
|
16
16
|
"transport": {
|
|
17
17
|
"type": "stdio"
|
|
18
18
|
},
|