@attesso/mcp 1.3.2 → 2.0.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Attesso
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @attesso/mcp
2
2
 
3
- Model Context Protocol server for Attesso payment operations. Works with any MCP-compatible client.
3
+ MCP server for Attesso authorization and safety tools. Works with Claude Desktop and any MCP-compatible client.
4
4
 
5
- ## Setup
5
+ Attesso doesn't touch money — it authorizes, validates, revokes, and audits. This MCP server lets AI agents check their spending authorization and audit trail.
6
6
 
7
- Add to your MCP client configuration:
7
+ ## Setup
8
8
 
9
9
  ```json
10
10
  {
@@ -27,14 +27,13 @@ Add to your MCP client configuration:
27
27
  | Tool | Description |
28
28
  |------|-------------|
29
29
  | `attesso_get_mandate` | Get mandate details: spending limit, status, restrictions |
30
- | `attesso_get_card` | Check card status and details |
30
+ | `attesso_get_audit_trail` | Full liability chain, biometric proof, and audit trail |
31
31
 
32
32
  ### Write Operations
33
33
 
34
34
  | Tool | Description |
35
35
  |------|-------------|
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 |
36
+ | `attesso_revoke_mandate` | Revoke mandate, atomically destroy all derived instruments |
38
37
 
39
38
  ## Environment Variables
40
39
 
@@ -53,68 +52,24 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
53
52
 
54
53
  const server = createAttessoMCPServer({
55
54
  apiKey: process.env.ATTESSO_API_KEY,
56
- mandateId: 'mandate_xyz', // optional: pre-configure mandate
57
- readOnlyMode: false, // optional: disable write operations
55
+ mandateId: 'mandate_xyz',
56
+ readOnlyMode: false,
58
57
  });
59
58
 
60
59
  const transport = new StdioServerTransport();
61
60
  await server.connect(transport);
62
61
  ```
63
62
 
64
- ## Security Notes
65
-
66
- 1. **API Keys**: Only use restricted keys (`rk_test_*` for development, `rk_live_*` for production). Never use management keys (`sk_mgmt_*`).
67
-
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.
69
-
70
- 3. **Read-Only Mode**: For monitoring or status checks, enable read-only mode to prevent card issuance:
71
- ```json
72
- {
73
- "env": {
74
- "ATTESSO_API_KEY": "rk_test_...",
75
- "ATTESSO_READ_ONLY": "true"
76
- }
77
- }
78
- ```
79
-
80
- ## Example Conversation
81
-
82
- **User**: What's the status of mandate_abc123?
83
-
84
- **Assistant** (calls `attesso_get_mandate`):
85
- ```json
86
- {
87
- "id": "mandate_abc123",
88
- "status": "active",
89
- "spendingLimit": 50000,
90
- "currency": "USD"
91
- }
92
- ```
93
-
94
- **Assistant**: Mandate mandate_abc123 is active with $500.00 available to spend.
95
-
96
- ---
97
-
98
- **User**: I need a card for $347 to book a flight.
99
-
100
- **Assistant** (calls `attesso_issue_card`):
101
- ```json
102
- {
103
- "cardId": "card_xyz789",
104
- "number": "4242...1234",
105
- "expMonth": 3,
106
- "expYear": 2026,
107
- "expiresAt": "2026-02-08T12:05:00Z",
108
- "spendingLimit": 34700
109
- }
110
- ```
63
+ ## Security
111
64
 
112
- **Assistant**: Done. I've issued a virtual card ending in 1234 with a $347.00 limit. It expires in 5 minutes.
65
+ - **API Keys**: Only restricted keys (`rk_test_*`, `rk_live_*`). Never management keys.
66
+ - **Mandate creation requires biometric auth** — cannot be done via MCP. The user must pre-authorize.
67
+ - **Read-only mode**: For monitoring without revocation capability.
113
68
 
114
69
  ## Related Packages
115
70
 
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
71
+ - [`@attesso/sdk`](https://www.npmjs.com/package/@attesso/sdk) API client with Vercel AI SDK integration
72
+ - [`@attesso/types`](https://www.npmjs.com/package/@attesso/types) TypeScript types
118
73
 
119
74
  ## License
120
75
 
File without changes
@@ -11,33 +11,14 @@ export declare const schemas: {
11
11
  }, {
12
12
  mandateId: string;
13
13
  }>;
14
- issueCard: z.ZodObject<{
14
+ revokeMandate: z.ZodObject<{
15
15
  mandateId: z.ZodString;
16
- amount: z.ZodNumber;
17
- ttlSeconds: z.ZodOptional<z.ZodNumber>;
18
- allowedMccs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
19
- blockedMccs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
20
16
  }, "strip", z.ZodTypeAny, {
21
17
  mandateId: string;
22
- amount: number;
23
- ttlSeconds?: number | undefined;
24
- allowedMccs?: string[] | undefined;
25
- blockedMccs?: string[] | undefined;
26
18
  }, {
27
19
  mandateId: string;
28
- amount: number;
29
- ttlSeconds?: number | undefined;
30
- allowedMccs?: string[] | undefined;
31
- blockedMccs?: string[] | undefined;
32
20
  }>;
33
- getCard: z.ZodObject<{
34
- cardId: z.ZodString;
35
- }, "strip", z.ZodTypeAny, {
36
- cardId: string;
37
- }, {
38
- cardId: string;
39
- }>;
40
- revokeMandate: z.ZodObject<{
21
+ getAuditTrail: z.ZodObject<{
41
22
  mandateId: z.ZodString;
42
23
  }, "strip", z.ZodTypeAny, {
43
24
  mandateId: string;
@@ -46,7 +27,6 @@ export declare const schemas: {
46
27
  }>;
47
28
  };
48
29
  export type GetMandateInput = z.infer<typeof schemas.getMandate>;
49
- export type IssueCardInput = z.infer<typeof schemas.issueCard>;
50
- export type GetCardInput = z.infer<typeof schemas.getCard>;
51
30
  export type RevokeMandateInput = z.infer<typeof schemas.revokeMandate>;
31
+ export type GetAuditTrailInput = z.infer<typeof schemas.getAuditTrail>;
52
32
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AACjE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC;AAC3D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;CAYnB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;AACjE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC;AACvE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,aAAa,CAAC,CAAC"}
@@ -7,18 +7,11 @@ export const schemas = {
7
7
  getMandate: z.object({
8
8
  mandateId: z.string().describe('The unique identifier of the mandate to retrieve'),
9
9
  }),
10
- issueCard: z.object({
11
- mandateId: z.string().describe('The mandate ID to issue an ephemeral card from'),
12
- amount: z.number().positive().describe('Amount in cents the agent wants to spend (e.g., 34700 for $347.00)'),
13
- ttlSeconds: z.number().int().min(60).max(900).optional().describe('Card time-to-live in seconds (60-900, default 300)'),
14
- allowedMccs: z.array(z.string()).optional().describe('Restrict card to these merchant category codes'),
15
- blockedMccs: z.array(z.string()).optional().describe('Block card from these merchant category codes'),
16
- }),
17
- getCard: z.object({
18
- cardId: z.string().describe('The unique identifier of the card to retrieve'),
19
- }),
20
10
  revokeMandate: z.object({
21
11
  mandateId: z.string().describe('The mandate ID to revoke'),
22
12
  }),
13
+ getAuditTrail: z.object({
14
+ mandateId: z.string().describe('The mandate ID to get the audit trail for'),
15
+ }),
23
16
  };
24
17
  //# sourceMappingURL=schemas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KACnF,CAAC;IAEF,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;QAClB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAChF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;QAC5G,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QACvH,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACtG,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KACtG,CAAC;IAEF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KAC7E,CAAC;IAEF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3D,CAAC;CACH,CAAC"}
1
+ {"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;KACnF,CAAC;IAEF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3D,CAAC;IAEF,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC;QACtB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;KAC5E,CAAC;CACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP Server Factory for Attesso
3
3
  *
4
- * Creates an MCP server that exposes Attesso payment tools.
4
+ * Creates an MCP server that exposes Attesso authorization tools.
5
5
  * Used by Claude Desktop and other MCP-compatible AI assistants.
6
6
  */
7
7
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
@@ -19,12 +19,11 @@ export interface AttessoMCPServerConfig {
19
19
  /**
20
20
  * If provided, use this mandate ID for all operations.
21
21
  * Falls back to ATTESSO_MANDATE_ID env var.
22
- * Useful for pre-configured agents with a known mandate.
23
22
  */
24
23
  mandateId?: string;
25
24
  /**
26
- * If true, only expose read-only tools (get_mandate, get_card).
27
- * Write operations (issue_card, revoke_mandate) will not be available.
25
+ * If true, only expose read-only tools (get_mandate, get_audit_trail).
26
+ * Write operations (revoke_mandate) will not be available.
28
27
  * @default false
29
28
  */
30
29
  readOnlyMode?: boolean;
@@ -41,14 +40,6 @@ export interface AttessoMCPServerConfig {
41
40
  * const transport = new StdioServerTransport();
42
41
  * await server.connect(transport);
43
42
  * ```
44
- *
45
- * @example With configuration
46
- * ```typescript
47
- * const server = createAttessoMCPServer({
48
- * mandateId: 'mandate_xyz',
49
- * readOnlyMode: true,
50
- * });
51
- * ```
52
43
  */
53
44
  export declare function createAttessoMCPServer(config?: AttessoMCPServerConfig): Server;
54
45
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAoBnE,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,sBAA2B,GAAG,MAAM,CAmIlF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAmBnE,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,GAAE,sBAA2B,GAAG,MAAM,CAwFlF"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * MCP Server Factory for Attesso
3
3
  *
4
- * Creates an MCP server that exposes Attesso payment tools.
4
+ * Creates an MCP server that exposes Attesso authorization tools.
5
5
  * Used by Claude Desktop and other MCP-compatible AI assistants.
6
6
  */
7
7
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
@@ -20,18 +20,9 @@ import { getToolByName, getReadOnlyTools, getAllTools, } from './tools.js';
20
20
  * const transport = new StdioServerTransport();
21
21
  * await server.connect(transport);
22
22
  * ```
23
- *
24
- * @example With configuration
25
- * ```typescript
26
- * const server = createAttessoMCPServer({
27
- * mandateId: 'mandate_xyz',
28
- * readOnlyMode: true,
29
- * });
30
- * ```
31
23
  */
32
24
  export function createAttessoMCPServer(config = {}) {
33
25
  const apiKey = config.apiKey ?? process.env.ATTESSO_API_KEY;
34
- // Validate API key format (only restricted keys allowed for agents)
35
26
  if (apiKey && !apiKey.startsWith('rk_test_') && !apiKey.startsWith('rk_live_')) {
36
27
  console.error('Error: Attesso MCP server requires restricted keys (rk_test_* or rk_live_*)');
37
28
  }
@@ -41,7 +32,6 @@ export function createAttessoMCPServer(config = {}) {
41
32
  });
42
33
  const defaultMandateId = config.mandateId ?? process.env.ATTESSO_MANDATE_ID;
43
34
  const readOnlyMode = config.readOnlyMode ?? false;
44
- // Get tools based on mode
45
35
  const availableTools = readOnlyMode ? getReadOnlyTools() : getAllTools();
46
36
  const server = new Server({
47
37
  name: 'attesso',
@@ -51,7 +41,6 @@ export function createAttessoMCPServer(config = {}) {
51
41
  tools: {},
52
42
  },
53
43
  });
54
- // Handle list_tools request
55
44
  server.setRequestHandler(ListToolsRequestSchema, async () => {
56
45
  const tools = availableTools.map((tool) => ({
57
46
  name: tool.name,
@@ -60,61 +49,32 @@ export function createAttessoMCPServer(config = {}) {
60
49
  }));
61
50
  return { tools };
62
51
  });
63
- // Handle call_tool request
64
52
  server.setRequestHandler(CallToolRequestSchema, async (request) => {
65
53
  const { name, arguments: args } = request.params;
66
54
  const toolDef = getToolByName(name);
67
55
  if (!toolDef) {
68
56
  return {
69
- content: [
70
- {
71
- type: 'text',
72
- text: JSON.stringify({ error: `Unknown tool: ${name}` }),
73
- },
74
- ],
57
+ content: [{ type: 'text', text: JSON.stringify({ error: `Unknown tool: ${name}` }) }],
75
58
  isError: true,
76
59
  };
77
60
  }
78
- // Check read-only mode
79
61
  if (readOnlyMode && toolDef.isWriteOperation) {
80
62
  return {
81
- content: [
82
- {
83
- type: 'text',
84
- text: JSON.stringify({
85
- error: 'Write operations are disabled in read-only mode',
86
- tool: name,
87
- }),
88
- },
89
- ],
63
+ content: [{ type: 'text', text: JSON.stringify({ error: 'Write operations are disabled in read-only mode', tool: name }) }],
90
64
  isError: true,
91
65
  };
92
66
  }
93
- // Validate input
94
67
  const parseResult = toolDef.zodSchema.safeParse(args);
95
68
  if (!parseResult.success) {
96
69
  return {
97
- content: [
98
- {
99
- type: 'text',
100
- text: JSON.stringify({
101
- error: 'Invalid input',
102
- details: parseResult.error.format(),
103
- }),
104
- },
105
- ],
70
+ content: [{ type: 'text', text: JSON.stringify({ error: 'Invalid input', details: parseResult.error.format() }) }],
106
71
  isError: true,
107
72
  };
108
73
  }
109
74
  try {
110
75
  const result = await executeToolCall(client, name, parseResult.data, defaultMandateId);
111
76
  return {
112
- content: [
113
- {
114
- type: 'text',
115
- text: JSON.stringify(result, null, 2),
116
- },
117
- ],
77
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
118
78
  };
119
79
  }
120
80
  catch (error) {
@@ -124,52 +84,36 @@ export function createAttessoMCPServer(config = {}) {
124
84
  ? { error: error.message }
125
85
  : { error: 'Unknown error' };
126
86
  return {
127
- content: [
128
- {
129
- type: 'text',
130
- text: JSON.stringify(errorMessage),
131
- },
132
- ],
87
+ content: [{ type: 'text', text: JSON.stringify(errorMessage) }],
133
88
  isError: true,
134
89
  };
135
90
  }
136
91
  });
137
92
  return server;
138
93
  }
139
- /**
140
- * Execute a tool call against the Attesso API.
141
- */
142
94
  async function executeToolCall(client, toolName, input, defaultMandateId) {
143
95
  switch (toolName) {
144
96
  case 'attesso_get_mandate': {
145
97
  const { mandateId } = input;
146
98
  const id = mandateId ?? defaultMandateId;
147
- if (!id) {
99
+ if (!id)
148
100
  throw new AttessoError('MANDATE_NOT_FOUND', 'mandateId is required');
149
- }
150
101
  return client.getMandate(id);
151
102
  }
152
- case 'attesso_issue_card': {
153
- const { mandateId, amount, ttlSeconds, allowedMccs, blockedMccs } = input;
103
+ case 'attesso_revoke_mandate': {
104
+ const { mandateId } = input;
154
105
  const id = mandateId ?? defaultMandateId;
155
- if (!id) {
106
+ if (!id)
156
107
  throw new AttessoError('MANDATE_NOT_FOUND', 'mandateId is required');
157
- }
158
- return client.issueCard(id, { amount, ttlSeconds, allowedMccs, blockedMccs });
108
+ await client.revokeMandate(id);
109
+ return { revoked: true };
159
110
  }
160
- case 'attesso_get_card': {
161
- const { cardId } = input;
162
- // Use the SDK's request method via a direct API call
163
- return client.request('GET', `/v1/cards/${cardId}`);
164
- }
165
- case 'attesso_revoke_mandate': {
111
+ case 'attesso_get_audit_trail': {
166
112
  const { mandateId } = input;
167
113
  const id = mandateId ?? defaultMandateId;
168
- if (!id) {
114
+ if (!id)
169
115
  throw new AttessoError('MANDATE_NOT_FOUND', 'mandateId is required');
170
- }
171
- // Use the SDK's request method via a direct API call
172
- return client.request('DELETE', `/v1/mandates/${id}`);
116
+ return client.getDisputeEvidence(id);
173
117
  }
174
118
  default:
175
119
  throw new Error(`Unknown tool: ${toolName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * MCP Tool Definitions for Attesso
3
3
  *
4
- * Defines the 4 tools exposed via MCP:
4
+ * Defines the 3 tools exposed via MCP:
5
5
  * - attesso_get_mandate (read)
6
- * - attesso_issue_card (write)
7
- * - attesso_get_card (read)
8
6
  * - attesso_revoke_mandate (write)
7
+ * - attesso_get_audit_trail (read)
9
8
  */
10
9
  import { z } from 'zod';
11
10
  import { zodToJsonSchema } from 'zod-to-json-schema';
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,EA0C3C,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,wBAAgB,gBAAgB,IAAI,cAAc,EAAE,CAEnD;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAChD,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,eAAO,MAAM,eAAe,EAAE,cAAc,EA+B3C,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEtE;AAED,wBAAgB,gBAAgB,IAAI,cAAc,EAAE,CAEnD;AAED,wBAAgB,WAAW,IAAI,cAAc,EAAE,CAE9C"}
package/dist/src/tools.js CHANGED
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * MCP Tool Definitions for Attesso
3
3
  *
4
- * Defines the 4 tools exposed via MCP:
4
+ * Defines the 3 tools exposed via MCP:
5
5
  * - attesso_get_mandate (read)
6
- * - attesso_issue_card (write)
7
- * - attesso_get_card (read)
8
6
  * - attesso_revoke_mandate (write)
7
+ * - attesso_get_audit_trail (read)
9
8
  */
10
9
  import { zodToJsonSchema } from 'zod-to-json-schema';
11
10
  import { schemas } from './schemas.js';
@@ -14,35 +13,25 @@ export const toolDefinitions = [
14
13
  {
15
14
  name: 'attesso_get_mandate',
16
15
  description: 'Get details about a spending mandate including the spending limit, status, and restrictions. ' +
17
- 'Use this to check how much money is available before issuing a card.',
16
+ 'Use this to check what the user has authorized and what constraints apply.',
18
17
  inputSchema: zodToJsonSchema(schemas.getMandate, 'GetMandateInput'),
19
18
  zodSchema: schemas.getMandate,
20
19
  isWriteOperation: false,
21
20
  },
22
21
  {
23
- name: 'attesso_get_card',
24
- description: 'Get the status and details of an issued ephemeral card. ' +
25
- 'Use this to check if a card is still active or has been used.',
26
- inputSchema: zodToJsonSchema(schemas.getCard, 'GetCardInput'),
27
- zodSchema: schemas.getCard,
22
+ name: 'attesso_get_audit_trail',
23
+ description: 'Get the complete audit trail for a mandate including biometric proof, ' +
24
+ 'developer identity, agent actions, and revocation events. ' +
25
+ 'Use this to review what happened under a mandate or to resolve a dispute.',
26
+ inputSchema: zodToJsonSchema(schemas.getAuditTrail, 'GetAuditTrailInput'),
27
+ zodSchema: schemas.getAuditTrail,
28
28
  isWriteOperation: false,
29
29
  },
30
30
  // Write operations
31
- {
32
- name: 'attesso_issue_card',
33
- description: 'Issue an ephemeral virtual card from a standing mandate. ' +
34
- 'This auth-holds the user\'s payment method and creates a card with a TTL. ' +
35
- 'The card auto-destructs after use or when the TTL expires. ' +
36
- 'Amount must be in cents (e.g., 34700 for $347.00). ' +
37
- 'Only call this when you are ready to make a purchase.',
38
- inputSchema: zodToJsonSchema(schemas.issueCard, 'IssueCardInput'),
39
- zodSchema: schemas.issueCard,
40
- isWriteOperation: true,
41
- },
42
31
  {
43
32
  name: 'attesso_revoke_mandate',
44
- description: 'Revoke a mandate so it can no longer be used to issue cards. ' +
45
- 'Use this when the mandate is no longer needed.',
33
+ description: 'Revoke a mandate, atomically destroying all derived payment instruments ' +
34
+ 'across all processors. Use this when spending authorization is no longer needed.',
46
35
  inputSchema: zodToJsonSchema(schemas.revokeMandate, 'RevokeMandateInput'),
47
36
  zodSchema: schemas.revokeMandate,
48
37
  isWriteOperation: true,
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUvC,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,kBAAkB;IAClB;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,+FAA+F;YAC/F,sEAAsE;QACxE,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC;QACnE,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,gBAAgB,EAAE,KAAK;KACxB;IACD;QACE,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,0DAA0D;YAC1D,+DAA+D;QACjE,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC;QAC7D,SAAS,EAAE,OAAO,CAAC,OAAO;QAC1B,gBAAgB,EAAE,KAAK;KACxB;IACD,mBAAmB;IACnB;QACE,IAAI,EAAE,oBAAoB;QAC1B,WAAW,EACT,2DAA2D;YAC3D,4EAA4E;YAC5E,6DAA6D;YAC7D,qDAAqD;YACrD,uDAAuD;QACzD,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC;QACjE,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,gBAAgB,EAAE,IAAI;KACvB;IACD;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,+DAA+D;YAC/D,gDAAgD;QAClD,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC;QACzE,SAAS,EAAE,OAAO,CAAC,aAAa;QAChC,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUvC,MAAM,CAAC,MAAM,eAAe,GAAqB;IAC/C,kBAAkB;IAClB;QACE,IAAI,EAAE,qBAAqB;QAC3B,WAAW,EACT,+FAA+F;YAC/F,4EAA4E;QAC9E,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC;QACnE,SAAS,EAAE,OAAO,CAAC,UAAU;QAC7B,gBAAgB,EAAE,KAAK;KACxB;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,WAAW,EACT,wEAAwE;YACxE,4DAA4D;YAC5D,2EAA2E;QAC7E,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC;QACzE,SAAS,EAAE,OAAO,CAAC,aAAa;QAChC,gBAAgB,EAAE,KAAK;KACxB;IACD,mBAAmB;IACnB;QACE,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,0EAA0E;YAC1E,kFAAkF;QACpF,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,aAAa,EAAE,oBAAoB,CAAC;QACzE,SAAS,EAAE,OAAO,CAAC,aAAa;QAChC,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC;AAEF,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,eAAe,CAAC;AACzB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@attesso/mcp",
3
- "version": "1.3.2",
4
- "description": "Attesso bindings for the Model Context Protocol.",
3
+ "version": "2.0.0",
4
+ "description": "Attesso MCP server. Authorization and safety tools for AI agents.",
5
5
  "author": "Attesso",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -31,22 +31,27 @@
31
31
  "publishConfig": {
32
32
  "access": "public"
33
33
  },
34
+ "scripts": {
35
+ "build": "tsc",
36
+ "dev": "tsc --watch",
37
+ "clean": "rm -rf dist"
38
+ },
34
39
  "keywords": [
35
40
  "attesso",
36
41
  "mcp",
37
42
  "model-context-protocol",
38
43
  "ai-agents",
39
44
  "mandates",
40
- "virtual-cards",
41
- "payments",
45
+ "authorization",
46
+ "safety",
42
47
  "claude",
43
48
  "llm"
44
49
  ],
45
50
  "dependencies": {
46
- "@modelcontextprotocol/sdk": "^1.25.0",
47
- "zod-to-json-schema": "^3.23.0",
48
- "@attesso/sdk": "1.3.2",
49
- "@attesso/types": "1.2.2"
51
+ "@attesso/sdk": "workspace:*",
52
+ "@attesso/types": "workspace:*",
53
+ "@modelcontextprotocol/sdk": "^1.26.0",
54
+ "zod-to-json-schema": "^3.23.0"
50
55
  },
51
56
  "peerDependencies": {
52
57
  "zod": ">=3.25.0"
@@ -57,14 +62,8 @@
57
62
  }
58
63
  },
59
64
  "devDependencies": {
60
- "typescript": "^5.7.0",
61
- "vitest": "^2.1.0",
65
+ "typescript": "^5.9.0",
66
+ "vitest": "^4.0.0",
62
67
  "zod": "^3.25.0"
63
- },
64
- "scripts": {
65
- "build": "tsc",
66
- "dev": "tsc --watch",
67
- "clean": "rm -rf dist",
68
- "test": "vitest run"
69
68
  }
70
- }
69
+ }