cascrow-mcp 1.8.0 → 3.1.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/CHANGELOG.md +45 -0
- package/LICENSE +21 -0
- package/README.md +31 -25
- package/index.js +641 -154
- package/package.json +9 -3
- package/REMOTE_HTTP_SERVER.md +0 -97
- package/server.json +0 -46
- package/smithery.yaml +0 -28
package/package.json
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cascrow-mcp",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "MCP server for Cascrow — trust infrastructure for the agent economy: AI verification, on-chain reputation, and milestone escrow
|
|
3
|
+
"version": "3.1.0",
|
|
4
|
+
"description": "MCP server for Cascrow — trust infrastructure for the agent economy: AI verification, on-chain reputation, and non-custodial milestone escrow (MilestoneEscrowV3, native XRP)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|
|
7
|
+
"files": [
|
|
8
|
+
"index.js",
|
|
9
|
+
"README.md",
|
|
10
|
+
"CHANGELOG.md",
|
|
11
|
+
"LICENSE"
|
|
12
|
+
],
|
|
7
13
|
"bin": {
|
|
8
14
|
"cascrow-mcp": "index.js"
|
|
9
15
|
},
|
|
@@ -11,7 +17,7 @@
|
|
|
11
17
|
"start": "node index.js"
|
|
12
18
|
},
|
|
13
19
|
"dependencies": {
|
|
14
|
-
"@modelcontextprotocol/sdk": "^1.
|
|
20
|
+
"@modelcontextprotocol/sdk": "^1.32.1"
|
|
15
21
|
},
|
|
16
22
|
"keywords": [
|
|
17
23
|
"mcp",
|
package/REMOTE_HTTP_SERVER.md
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# Remote HTTP MCP Server — Smithery Listing
|
|
2
|
-
|
|
3
|
-
**Status: Done.** The HTTP transport described below is live at
|
|
4
|
-
`src/app/api/mcp/route.ts` (Streamable HTTP, `@modelcontextprotocol/sdk`,
|
|
5
|
-
`WebStandardStreamableHTTPServerTransport`), serving the same 18 tools as this
|
|
6
|
-
package's stdio server. `smithery.yaml` already lists both the remote URL
|
|
7
|
-
(`https://cascrow.com/api/mcp`) and the local `npx cascrow-mcp` stdio fallback.
|
|
8
|
-
The plan below is kept as a historical record of what was built and why —
|
|
9
|
-
nothing in it is still pending.
|
|
10
|
-
|
|
11
|
-
**Update (2026-08-03):** both this HTTP transport and the stdio server now also work
|
|
12
|
-
without an API key — an unauthenticated caller gets a restricted server exposing only
|
|
13
|
-
`cascrow_verify_work` (anonymous, 3/day per IP, same tier as `POST /api/verify/standalone`),
|
|
14
|
-
instead of the transport-level 401 described below. Full 18-tool access still requires
|
|
15
|
-
`Authorization: Bearer csk_...` exactly as documented.
|
|
16
|
-
|
|
17
|
-
## Why
|
|
18
|
-
|
|
19
|
-
The current `cascrow-mcp` package runs locally via `npx` (stdio transport).
|
|
20
|
-
That works for **Claude Desktop** only.
|
|
21
|
-
|
|
22
|
-
A remote HTTP MCP server at `https://cascrow.com/mcp` would enable:
|
|
23
|
-
- **Claude.ai Web** (browser) — which only supports remote HTTP, not stdio
|
|
24
|
-
- **Smithery listing** under `cascrow/cascrow` with one-click install for 10k+ users
|
|
25
|
-
- **Any MCP client** without Node.js installed
|
|
26
|
-
|
|
27
|
-
## The Use Case (no escrow needed)
|
|
28
|
-
|
|
29
|
-
The primary value right now is **AI work verification**, independent of payments:
|
|
30
|
-
|
|
31
|
-
- Agent does work → calls `cascrow_mcp_submit` with `amountUSD: 0`
|
|
32
|
-
- 5 independent AI models vote on whether the work is complete
|
|
33
|
-
- User sees: "4/5 models approved, 89% confidence"
|
|
34
|
-
- Public certificate at `cascrow.com/proof/[hash]`
|
|
35
|
-
|
|
36
|
-
This works today on testnet. No MetaMask, no wallet, no escrow required.
|
|
37
|
-
Positions cascrow as the **trust/verification layer for AI work** before the agent economy matures.
|
|
38
|
-
|
|
39
|
-
## What Needs to Be Built
|
|
40
|
-
|
|
41
|
-
### 1. HTTP MCP Endpoint — `src/app/api/mcp/route.ts`
|
|
42
|
-
|
|
43
|
-
Replace stdio transport with HTTP transport using `@modelcontextprotocol/sdk`:
|
|
44
|
-
|
|
45
|
-
```ts
|
|
46
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
47
|
-
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
48
|
-
|
|
49
|
-
// Same 16 tools as cascrow-mcp/index.js but served over HTTP
|
|
50
|
-
// Auth: API key from Authorization header or ?api_key= query param
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
The 16 tools already exist in `cascrow-mcp/index.js` — they just need to be
|
|
54
|
-
ported from stdio to HTTP transport. All business logic (`/api/mcp/submit`,
|
|
55
|
-
`/api/contracts`, etc.) stays unchanged.
|
|
56
|
-
|
|
57
|
-
### 2. Smithery Registration
|
|
58
|
-
|
|
59
|
-
- Create Smithery account under `cascrow` org (not personal `moeller` namespace)
|
|
60
|
-
- Go to smithery.ai/new
|
|
61
|
-
- Namespace: `cascrow` / Server ID: `cascrow`
|
|
62
|
-
- MCP Server URL: `https://cascrow.com/mcp`
|
|
63
|
-
- Result: `smithery.ai/server/cascrow/cascrow` with one-click install
|
|
64
|
-
|
|
65
|
-
### 3. Auth for Remote Connections
|
|
66
|
-
|
|
67
|
-
Remote users authenticate with their cascrow API key (`csk_...`).
|
|
68
|
-
Two options (both fine):
|
|
69
|
-
- `Authorization: Bearer csk_...` header
|
|
70
|
-
- `?api_key=csk_...` query param (easier for Smithery config UI)
|
|
71
|
-
|
|
72
|
-
### 4. Smithery Config Schema (update smithery.yaml)
|
|
73
|
-
|
|
74
|
-
```yaml
|
|
75
|
-
startCommand:
|
|
76
|
-
type: http
|
|
77
|
-
configSchema:
|
|
78
|
-
type: object
|
|
79
|
-
properties:
|
|
80
|
-
CASCROW_API_KEY:
|
|
81
|
-
type: string
|
|
82
|
-
description: "Your cascrow API key (csk_...)"
|
|
83
|
-
required:
|
|
84
|
-
- CASCROW_API_KEY
|
|
85
|
-
url: https://cascrow.com/mcp
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
## Effort Estimate
|
|
89
|
-
|
|
90
|
-
~4–6 hours. The hard parts (tools, auth, business logic) are already done.
|
|
91
|
-
Only the transport layer needs to change.
|
|
92
|
-
|
|
93
|
-
## When to Do This
|
|
94
|
-
|
|
95
|
-
**Now** — the verification use case (amountUSD: 0) works on testnet today.
|
|
96
|
-
Getting listed on Smithery/Claude.ai Web establishes cascrow as the
|
|
97
|
-
verification standard before competitors enter the space.
|
package/server.json
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
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.8.0",
|
|
13
|
-
"packages": [
|
|
14
|
-
{
|
|
15
|
-
"registryType": "npm",
|
|
16
|
-
"registryBaseUrl": "https://registry.npmjs.org",
|
|
17
|
-
"identifier": "cascrow-mcp",
|
|
18
|
-
"version": "1.8.0",
|
|
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
|
-
}
|
package/smithery.yaml
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Smithery configuration file: https://smithery.ai/docs/config#smitheryyaml
|
|
2
|
-
|
|
3
|
-
# Remote HTTP transport (Claude.ai web, Claude.ai API)
|
|
4
|
-
url: https://cascrow.com/api/mcp
|
|
5
|
-
|
|
6
|
-
startCommand:
|
|
7
|
-
type: stdio
|
|
8
|
-
configSchema:
|
|
9
|
-
type: object
|
|
10
|
-
properties:
|
|
11
|
-
CASCROW_API_KEY:
|
|
12
|
-
type: string
|
|
13
|
-
description: "Optional. Your cascrow API key (starts with csk_) — get one at cascrow.com/register or POST /api/agent/register. Without it, the server still starts but only cascrow_verify_work is available (3 free AI-verified checks per IP per day, no account needed). Set this to unlock all 18 tools."
|
|
14
|
-
pattern: "^csk_"
|
|
15
|
-
CASCROW_BASE_URL:
|
|
16
|
-
type: string
|
|
17
|
-
description: "Cascrow API base URL. Leave blank to use the default (https://cascrow.com)."
|
|
18
|
-
default: "https://cascrow.com"
|
|
19
|
-
required: []
|
|
20
|
-
commandFunction: |-
|
|
21
|
-
(config) => ({
|
|
22
|
-
command: 'npx',
|
|
23
|
-
args: ['-y', 'cascrow-mcp'],
|
|
24
|
-
env: {
|
|
25
|
-
CASCROW_API_KEY: config.CASCROW_API_KEY || '',
|
|
26
|
-
CASCROW_BASE_URL: config.CASCROW_BASE_URL || 'https://cascrow.com'
|
|
27
|
-
}
|
|
28
|
-
})
|