@decionis/mcp 0.2.0 → 0.4.0

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.
@@ -4,7 +4,7 @@
4
4
  "version": "0.2.0",
5
5
  "description": "Refuse an agent's tool call before it runs, using a policy you wrote. Evaluated locally through the real Decionis protocol evaluator \u2014 no account, no network, no credentials.",
6
6
  "keywords": ["security", "policy", "guardrails", "execution-authority", "agent-safety", "hooks"],
7
- "homepage": "https://decionis.com/docs/protocol-mcp",
7
+ "homepage": "https://decionis.ai/mcp",
8
8
  "repository": "https://github.com/decionis/mcp",
9
9
  "license": "SEE LICENSE IN LICENSE",
10
10
  "author": {
package/README.md CHANGED
@@ -62,8 +62,36 @@ and re-evaluates. The handlers are the hosted MCP's own, bound to the in-process
62
62
  the local loop is the hosted loop. Both call `presence.decionis.com` (`openWorldHint:
63
63
  true`). Production enforcement is sales-assisted.
64
64
 
65
- The `shield.*` tools register only when `DECIONIS_SHIELD_API_KEY` and
66
- `DECIONIS_SHIELD_APP_ID` are configured.
65
+ ### Shield — the user's own spending rules (consumer)
66
+
67
+ The `shield.*` tools ask a person's Decionis Shield before an assistant
68
+ spends their money: `shield.request_purchase` returns ALLOW, ASK or BLOCK
69
+ against the limits the person set in the Shield app, with a signed Dispute
70
+ Passport behind every hold. Two ways to bind:
71
+
72
+ - **Pair from the app (ten minutes, no keys).** In the Shield app, open _AI
73
+ spending allowance → Bind your own agent_; it shows a six-character code.
74
+ Tell your assistant _"pair with Shield, code ABC123"_ — it calls
75
+ `shield.pair`, which claims the code and keeps the production credential in
76
+ `~/.decionis/shield-credential.json` (`0600`; `DECIONIS_SHIELD_CREDENTIAL_FILE`
77
+ moves it). The app then lists the assistant with what it was allowed to
78
+ spend this week, and can revoke it. Pairing again from the same computer
79
+ rotates the credential rather than binding a second agent.
80
+ - **Sign in with the emailed code (no code from the app).** Tell your
81
+ assistant _"pair with Shield, my email is you@example.com"_. `shield.pair`
82
+ asks Shield to email the person a 6-digit code; they tell the assistant the
83
+ code, and Shield binds it the moment the code is confirmed. It keeps the same
84
+ credential file. The code only works for binding an agent, never for signing
85
+ in to the app.
86
+ - **Configure a key (integrators).** `DECIONIS_SHIELD_API_KEY` and
87
+ `DECIONIS_SHIELD_APP_ID` from `POST /v1/consumer/shield/integrations` win
88
+ over the paired file. `DECIONIS_SHIELD_API_URL` defaults to
89
+ `https://api.shield.decionis.com`.
90
+
91
+ The six tools are always advertised. Until the server is paired or configured,
92
+ every `shield.*` call fails closed with `SHIELD_MCP_CONFIGURATION_REQUIRED`
93
+ and tells the model to ask the user for the code — an error is never
94
+ permission to execute.
67
95
 
68
96
  ### Kubernetes execution-authority tools
69
97
 
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  AgentHookCommand
4
- } from "./chunk-7QNV7MXC.js";
5
- import "./chunk-NF5JL6QR.js";
4
+ } from "./chunk-GCE6PUYD.js";
5
+ import "./chunk-5Q6BCK32.js";
6
6
 
7
7
  // src/AgentHookCli.ts
8
8
  void AgentHookCommand.run(process.argv.slice(2)).then((exitCode) => {