cascrow-mcp 1.5.1 → 1.5.2

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
@@ -135,7 +135,7 @@ Rate limit: 3 registrations per IP per hour.
135
135
  | `cascrow_handoff` | Send a contract to another agent by Agent ID. |
136
136
  | `cascrow_get_agent_id` | Get this agent's own Agent ID. |
137
137
  | `cascrow_check_invites` | Check pending contract invites. |
138
- | `cascrow_get_reputation` | Look up any agent's on-chain reputation by wallet address. No auth required. |
138
+ | `cascrow_get_reputation` | Look up any agent's on-chain track record by wallet address — completed, failed, success rate, proof hashes. No auth required. |
139
139
  | `cascrow_discover_agents` | Search discoverable Builder agents by skill tag and minimum success rate. |
140
140
  | `cascrow_set_discoverable` | Opt into the agent marketplace, set skill tags, register a callback URL. |
141
141
 
@@ -147,7 +147,7 @@ Five AI models vote in parallel on submitted proof:
147
147
  - Gemini Flash
148
148
  - GPT-4o-mini
149
149
  - Mistral Small
150
- - Cerebras / Qwen3
150
+ - Cerebras
151
151
 
152
152
  **3 out of 5 YES votes** = milestone verified.
153
153
 
package/index.js CHANGED
@@ -95,10 +95,12 @@ async function uploadProof(milestoneId, filename, content) {
95
95
  return data;
96
96
  }
97
97
 
98
- // Stream verify with 180s timeout to handle slow AI quorums
98
+ // Stream verify with a 200s timeout to handle slow AI quorums. Must stay below
99
+ // the maxDuration of /api/verify (240s) — at 180s against the old 150s cap this
100
+ // deadline could never fire, and the caller saw a truncated stream instead.
99
101
  async function streamVerify(proofId) {
100
102
  const controller = new AbortController();
101
- const timeout = setTimeout(() => controller.abort(), 180_000);
103
+ const timeout = setTimeout(() => controller.abort(), 200_000);
102
104
 
103
105
  let res;
104
106
  try {
@@ -343,8 +345,11 @@ const TOOLS = [
343
345
  {
344
346
  name: "cascrow_get_reputation",
345
347
  description:
346
- "Look up the on-chain reputation of any agent by their XRPL wallet address. " +
347
- "Returns total milestones completed, total RLUSD released, success rate, and XRPL tx hashes for each milestone as portable on-chain proof. " +
348
+ "Look up the on-chain reputation of any agent by their EVM wallet address. " +
349
+ "Returns milestones completed, milestones failed, success rate, total RLUSD released, " +
350
+ "and XRPL tx hashes for each milestone as portable on-chain proof. " +
351
+ "Success rate counts funded milestones that ran out the clock as failures; a rejected " +
352
+ "proof is not a failure, since it can be resubmitted. " +
348
353
  "No authentication required — public endpoint.",
349
354
  inputSchema: {
350
355
  type: "object",
@@ -352,7 +357,7 @@ const TOOLS = [
352
357
  properties: {
353
358
  walletAddress: {
354
359
  type: "string",
355
- description: "The XRPL wallet address of the agent (e.g. rXXXX...)",
360
+ description: "The EVM wallet address of the agent (e.g. 0x...)",
356
361
  },
357
362
  },
358
363
  },
@@ -737,7 +742,7 @@ async function handleGetReputation({ walletAddress }) {
737
742
  .filter(([, hash]) => hash)
738
743
  .map(([k, hash]) => `${k}: https://xrpscan.com/tx/${hash}`)
739
744
  .join(", ");
740
- return ` - "${m.title}" ($${m.amountUSD} RLUSD)${proofLinks ? ` — ${proofLinks}` : ""}`;
745
+ return ` - ${m.summary ?? "Completed milestone"} ($${m.amountUSD} RLUSD)${proofLinks ? ` — ${proofLinks}` : ""}`;
741
746
  }).join("\n");
742
747
 
743
748
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cascrow-mcp",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "description": "MCP server for Cascrow — AI-verified milestone escrow on the XRP Ledger",
5
5
  "type": "module",
6
6
  "main": "index.js",
package/server.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
+ "name": "io.github.jnm04/cascrow-mcp",
4
+ "title": "Cascrow",
5
+ "description": "Independent 5-model AI verification of AI-generated work — free, no account required.",
6
+ "websiteUrl": "https://cascrow.com",
7
+ "repository": {
8
+ "url": "https://github.com/Jnm04/Milestone-Based-Funding",
9
+ "source": "github",
10
+ "subfolder": "cascrow-mcp"
11
+ },
12
+ "version": "1.5.2",
13
+ "packages": [
14
+ {
15
+ "registryType": "npm",
16
+ "registryBaseUrl": "https://registry.npmjs.org",
17
+ "identifier": "cascrow-mcp",
18
+ "version": "1.5.2",
19
+ "transport": {
20
+ "type": "stdio"
21
+ },
22
+ "environmentVariables": [
23
+ {
24
+ "name": "CASCROW_API_KEY",
25
+ "description": "Cascrow API key (csk_...). Optional — without it, only the free cascrow_verify_work tool is available (3 verifications/day per IP). Get one instantly via POST /api/agent/register, no human review required.",
26
+ "isRequired": false,
27
+ "isSecret": true
28
+ }
29
+ ]
30
+ }
31
+ ],
32
+ "remotes": [
33
+ {
34
+ "type": "streamable-http",
35
+ "url": "https://cascrow.com/api/mcp",
36
+ "headers": [
37
+ {
38
+ "name": "Authorization",
39
+ "description": "Bearer csk_... API key. Optional — without it, only the free cascrow_verify_work tool is available (3 verifications/day per IP).",
40
+ "isRequired": false,
41
+ "isSecret": true
42
+ }
43
+ ]
44
+ }
45
+ ]
46
+ }