@goodagent/mcp-server 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -5,8 +5,10 @@ MCP-compatible agent runtime (Claude Desktop, Cursor, custom frameworks)
5
5
  **verify a GoodDollar Agent ID** and read basic GoodDollar state on Celo.
6
6
 
7
7
  All tools are **read-only** — the server never holds keys, signs, or broadcasts
8
- transactions. Agent verification re-reads the GoodDollar whitelist **live** on
9
- Celo, so a credential auto-invalidates if the human's verification lapses.
8
+ transactions. Agent verification re-reads **both** the GoodDollar whitelist and
9
+ the agent's required G$ bond (`AgentVault`) **live** on Celo, so a credential
10
+ auto-invalidates if the human's verification lapses **or** the operator withdraws
11
+ the bond (`insufficient_bond`).
10
12
 
11
13
  ## Use it (no install)
12
14
 
@@ -33,7 +35,7 @@ Transport is **stdio** — the client spawns the server as a subprocess.
33
35
 
34
36
  | Tool | Purpose | Input |
35
37
  |------|---------|-------|
36
- | `gooddollar_verify_agent` | Confirm an AI agent is vouched for by a real, currently-verified GoodDollar human | `{ credential }` (full signed wire-form credential) |
38
+ | `gooddollar_verify_agent` | Confirm an AI agent is vouched for by a real, currently-verified GoodDollar human **and** still carries its required refundable G$ bond on-chain | `{ credential }` (full signed wire-form credential) |
37
39
  | `gooddollar_verify_status` | Is a wallet a verified (whitelisted) GoodDollar identity? Returns root + expiry | `{ wallet }` |
38
40
  | `gooddollar_get_balance` | G$ token balance (raw + formatted) | `{ wallet }` |
39
41
  | `gooddollar_claim_eligibility` | Can a wallet claim its daily UBI now, and how much? | `{ wallet }` |
@@ -58,11 +60,14 @@ The standalone server is stateless, so pass the full credential to verify:
58
60
  Returns:
59
61
 
60
62
  ```json
61
- { "found": true, "valid": true, "agent": "0x...", "operator": "0x...", "humanRoot": "0x...", "expiresAt": "1735689600", "reason": null }
63
+ { "found": true, "valid": true, "operator": "0x...", "humanRoot": "0x...", "expiresAt": "1735689600", "stake": "250000000000000000000", "minStake": "250000000000000000000" }
62
64
  ```
63
65
 
64
66
  `valid` is true only if the signature recovers to `operator`, the credential is
65
- not expired, and the operator is **still** a whitelisted GoodDollar identity.
67
+ not expired, the operator is **still** a whitelisted GoodDollar identity, **and**
68
+ the agent's live G$ bond in the `AgentVault` still meets the vault minimum
69
+ (250 G$ on Celo mainnet). If the operator withdrew the bond, the result is
70
+ `{ "valid": false, "reason": "insufficient_bond", ... }` until it is re-staked.
66
71
 
67
72
  > Looking up a stored credential by agent address (without holding the
68
73
  > credential) is served by the hosted REST API:
@@ -74,10 +79,15 @@ The same verification is available directly via the SDK
74
79
  [`@goodagent/agent-id`](https://www.npmjs.com/package/@goodagent/agent-id):
75
80
 
76
81
  ```ts
77
- import { verifyAgentId, liveHumanRootLookup } from "@goodagent/agent-id";
82
+ import {
83
+ verifyAgentId,
84
+ liveHumanRootLookup,
85
+ liveStakeLookup,
86
+ } from "@goodagent/agent-id";
78
87
 
79
88
  const { valid, operator } = await verifyAgentId(credential, {
80
89
  humanRootLookup: liveHumanRootLookup,
90
+ stakeLookup: liveStakeLookup, // enforce the live G$ bond too
81
91
  });
82
92
  ```
83
93