@attesso/mcp 1.3.0 → 1.3.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 +24 -48
- package/dist/bin/attesso-mcp.js +0 -0
- package/package.json +12 -12
package/README.md
CHANGED
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
# @attesso/mcp
|
|
2
2
|
|
|
3
|
-
Model Context Protocol server for Attesso
|
|
4
|
-
|
|
5
|
-
- Claude Desktop
|
|
6
|
-
- Cursor
|
|
7
|
-
- Windsurf
|
|
8
|
-
- Continue
|
|
9
|
-
- Zed
|
|
10
|
-
- Cline
|
|
11
|
-
- And more
|
|
12
|
-
|
|
13
|
-
## Installation
|
|
14
|
-
|
|
15
|
-
```bash
|
|
16
|
-
npm install @attesso/mcp
|
|
17
|
-
```
|
|
3
|
+
Model Context Protocol server for Attesso payment operations. Works with any MCP-compatible client.
|
|
18
4
|
|
|
19
5
|
## Setup
|
|
20
6
|
|
|
21
|
-
Add to your MCP client
|
|
7
|
+
Add to your MCP client configuration:
|
|
22
8
|
|
|
23
9
|
```json
|
|
24
10
|
{
|
|
@@ -34,25 +20,21 @@ Add to your MCP client's configuration. For Claude Desktop (`~/Library/Applicati
|
|
|
34
20
|
}
|
|
35
21
|
```
|
|
36
22
|
|
|
37
|
-
Restart Claude Desktop after updating the configuration.
|
|
38
|
-
|
|
39
23
|
## Available Tools
|
|
40
24
|
|
|
41
25
|
### Read Operations
|
|
42
26
|
|
|
43
27
|
| Tool | Description |
|
|
44
28
|
|------|-------------|
|
|
45
|
-
| `attesso_get_mandate` | Get mandate details
|
|
46
|
-
| `
|
|
47
|
-
| `attesso_get_passport` | Get passport token for merchant authentication |
|
|
29
|
+
| `attesso_get_mandate` | Get mandate details: spending limit, status, restrictions |
|
|
30
|
+
| `attesso_get_card` | Check card status and details |
|
|
48
31
|
|
|
49
32
|
### Write Operations
|
|
50
33
|
|
|
51
34
|
| Tool | Description |
|
|
52
35
|
|------|-------------|
|
|
53
|
-
| `
|
|
54
|
-
| `
|
|
55
|
-
| `attesso_cancel` | Cancel authorization and release held funds |
|
|
36
|
+
| `attesso_issue_card` | Issue an ephemeral virtual card from a mandate |
|
|
37
|
+
| `attesso_revoke_mandate` | Revoke a mandate so it can no longer be used |
|
|
56
38
|
|
|
57
39
|
## Environment Variables
|
|
58
40
|
|
|
@@ -71,8 +53,8 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
71
53
|
|
|
72
54
|
const server = createAttessoMCPServer({
|
|
73
55
|
apiKey: process.env.ATTESSO_API_KEY,
|
|
74
|
-
mandateId: 'mandate_xyz', //
|
|
75
|
-
readOnlyMode: false, //
|
|
56
|
+
mandateId: 'mandate_xyz', // optional: pre-configure mandate
|
|
57
|
+
readOnlyMode: false, // optional: disable write operations
|
|
76
58
|
});
|
|
77
59
|
|
|
78
60
|
const transport = new StdioServerTransport();
|
|
@@ -81,11 +63,11 @@ await server.connect(transport);
|
|
|
81
63
|
|
|
82
64
|
## Security Notes
|
|
83
65
|
|
|
84
|
-
1. **API Keys**: Only use restricted keys (`rk_test_*` for development, `rk_live_*` for production)
|
|
66
|
+
1. **API Keys**: Only use restricted keys (`rk_test_*` for development, `rk_live_*` for production). Never use management keys (`sk_mgmt_*`).
|
|
85
67
|
|
|
86
|
-
2. **Mandate Creation**: Mandates require user biometric authentication
|
|
68
|
+
2. **Mandate Creation**: Mandates require user biometric authentication and cannot be created via MCP. The user must pre-authorize a mandate before the AI assistant can use it.
|
|
87
69
|
|
|
88
|
-
3. **Read-Only Mode**: For monitoring
|
|
70
|
+
3. **Read-Only Mode**: For monitoring or status checks, enable read-only mode to prevent card issuance:
|
|
89
71
|
```json
|
|
90
72
|
{
|
|
91
73
|
"env": {
|
|
@@ -95,50 +77,44 @@ await server.connect(transport);
|
|
|
95
77
|
}
|
|
96
78
|
```
|
|
97
79
|
|
|
98
|
-
4. **Idempotency**: Payment operations automatically generate idempotency keys for safe retries.
|
|
99
|
-
|
|
100
80
|
## Example Conversation
|
|
101
81
|
|
|
102
82
|
**User**: What's the status of mandate_abc123?
|
|
103
83
|
|
|
104
|
-
**
|
|
84
|
+
**Assistant** (calls `attesso_get_mandate`):
|
|
105
85
|
```json
|
|
106
86
|
{
|
|
107
87
|
"id": "mandate_abc123",
|
|
108
88
|
"status": "active",
|
|
109
89
|
"spendingLimit": 50000,
|
|
110
|
-
"amountSpent": 0,
|
|
111
90
|
"currency": "USD"
|
|
112
91
|
}
|
|
113
92
|
```
|
|
114
93
|
|
|
115
|
-
**
|
|
94
|
+
**Assistant**: Mandate mandate_abc123 is active with $500.00 available to spend.
|
|
116
95
|
|
|
117
96
|
---
|
|
118
97
|
|
|
119
|
-
**User**:
|
|
98
|
+
**User**: I need a card for $347 to book a flight.
|
|
120
99
|
|
|
121
|
-
**
|
|
100
|
+
**Assistant** (calls `attesso_issue_card`):
|
|
122
101
|
```json
|
|
123
102
|
{
|
|
124
|
-
"
|
|
125
|
-
"
|
|
126
|
-
"
|
|
127
|
-
"
|
|
128
|
-
"
|
|
103
|
+
"cardId": "card_xyz789",
|
|
104
|
+
"number": "4242...1234",
|
|
105
|
+
"expMonth": 3,
|
|
106
|
+
"expYear": 2026,
|
|
107
|
+
"expiresAt": "2026-02-08T12:05:00Z",
|
|
108
|
+
"spendingLimit": 34700
|
|
129
109
|
}
|
|
130
110
|
```
|
|
131
111
|
|
|
132
|
-
**
|
|
112
|
+
**Assistant**: Done. I've issued a virtual card ending in 1234 with a $347.00 limit. It expires in 5 minutes.
|
|
133
113
|
|
|
134
114
|
## Related Packages
|
|
135
115
|
|
|
136
|
-
- [`@attesso/sdk`](https://www.npmjs.com/package/@attesso/sdk)
|
|
137
|
-
- [`@attesso/types`](https://www.npmjs.com/package/@attesso/types)
|
|
138
|
-
|
|
139
|
-
## Documentation
|
|
140
|
-
|
|
141
|
-
Full documentation: https://www.attesso.com/docs
|
|
116
|
+
- [`@attesso/sdk`](https://www.npmjs.com/package/@attesso/sdk) -- API client with Vercel AI SDK integration
|
|
117
|
+
- [`@attesso/types`](https://www.npmjs.com/package/@attesso/types) -- TypeScript types
|
|
142
118
|
|
|
143
119
|
## License
|
|
144
120
|
|
package/dist/bin/attesso-mcp.js
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@attesso/mcp",
|
|
3
|
-
"version": "1.3.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "1.3.2",
|
|
4
|
+
"description": "Attesso bindings for the Model Context Protocol.",
|
|
5
5
|
"author": "Attesso",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -31,12 +31,6 @@
|
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
|
-
"scripts": {
|
|
35
|
-
"build": "tsc",
|
|
36
|
-
"dev": "tsc --watch",
|
|
37
|
-
"clean": "rm -rf dist",
|
|
38
|
-
"test": "vitest run"
|
|
39
|
-
},
|
|
40
34
|
"keywords": [
|
|
41
35
|
"attesso",
|
|
42
36
|
"mcp",
|
|
@@ -49,10 +43,10 @@
|
|
|
49
43
|
"llm"
|
|
50
44
|
],
|
|
51
45
|
"dependencies": {
|
|
52
|
-
"@attesso/sdk": "workspace:*",
|
|
53
|
-
"@attesso/types": "workspace:*",
|
|
54
46
|
"@modelcontextprotocol/sdk": "^1.25.0",
|
|
55
|
-
"zod-to-json-schema": "^3.23.0"
|
|
47
|
+
"zod-to-json-schema": "^3.23.0",
|
|
48
|
+
"@attesso/sdk": "1.3.2",
|
|
49
|
+
"@attesso/types": "1.2.2"
|
|
56
50
|
},
|
|
57
51
|
"peerDependencies": {
|
|
58
52
|
"zod": ">=3.25.0"
|
|
@@ -66,5 +60,11 @@
|
|
|
66
60
|
"typescript": "^5.7.0",
|
|
67
61
|
"vitest": "^2.1.0",
|
|
68
62
|
"zod": "^3.25.0"
|
|
63
|
+
},
|
|
64
|
+
"scripts": {
|
|
65
|
+
"build": "tsc",
|
|
66
|
+
"dev": "tsc --watch",
|
|
67
|
+
"clean": "rm -rf dist",
|
|
68
|
+
"test": "vitest run"
|
|
69
69
|
}
|
|
70
|
-
}
|
|
70
|
+
}
|