@aura-payments/mcp-server 1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/client.ts","../src/resources/agents.ts","../src/resources/mandates.ts","../src/errors.ts","../src/tools/agents.ts","../src/tools/escrows.ts","../src/tools/mandates.ts","../src/tools/wallets.ts","../src/index.ts","../src/bin.ts"],"names":["ResourceTemplate","ChainSchema","z"],"mappings":"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","file":"bin.mjs","sourcesContent":["/**\n * Aura SDK client factory for the MCP server.\n *\n * Reads `AURA_API_KEY` and (optionally) `AURA_BASE_URL` from the environment\n * the MCP host launched us in (Claude Desktop / Cursor / etc. inject env via\n * the `env` field in mcp.json). The client is created lazily on first tool\n * invocation so missing env doesn't crash the server during the MCP handshake\n * — instead, the FIRST tool call returns a clear error the LLM can act on.\n */\n\nimport { AuraClient } from '@aura-payments/sdk'\n\nlet cached: AuraClient | null = null\n\nexport function getClient(): AuraClient {\n if (cached) return cached\n const apiKey = process.env.AURA_API_KEY\n if (!apiKey) {\n throw new MissingAuraApiKeyError()\n }\n cached = new AuraClient({\n apiKey,\n baseUrl: process.env.AURA_BASE_URL,\n // Honor caller's preference; default to SDK default (auto on POST/PUT)\n autoIdempotency: process.env.AURA_AUTO_IDEMPOTENCY !== 'false',\n })\n return cached\n}\n\nexport class MissingAuraApiKeyError extends Error {\n constructor() {\n super(\n 'AURA_API_KEY not set. Configure it in your MCP client config — for ' +\n 'example in mcp.json: { \"mcpServers\": { \"aura\": { \"command\": ' +\n '\"aura-mcp\", \"env\": { \"AURA_API_KEY\": \"pk_live_...\" } } } }. Get a ' +\n 'key at https://getaura.sh.'\n )\n this.name = 'MissingAuraApiKeyError'\n }\n}\n","/**\n * Agent resources for the Aura MCP server.\n *\n * Resources let the LLM \"read\" structured data without invoking a tool. The\n * URI scheme `aura://agents/{id}` lets the LLM pull an agent's state into\n * its context when the user asks \"what's the status of agent X?\" — without\n * the round-trip cost (and audit log noise) of a full tool call.\n */\n\nimport {\n ResourceTemplate,\n} from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\nimport { getClient } from '../client'\n\nexport function registerAgentResources(server: McpServer): void {\n server.resource(\n 'agent',\n new ResourceTemplate('aura://agents/{id}', { list: undefined }),\n async (uri, { id }) => {\n const client = getClient()\n const agent = await client.agents.get(String(id))\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(agent, null, 2),\n },\n ],\n }\n }\n )\n\n server.resource(\n 'agent-balance',\n new ResourceTemplate('aura://agents/{id}/balance', { list: undefined }),\n async (uri, { id }) => {\n const client = getClient()\n const balance = await client.agents.getBalance(String(id))\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(balance, null, 2),\n },\n ],\n }\n }\n )\n}\n","/**\n * Mandate resources for the Aura MCP server.\n *\n * `aura://mandates/pending` — the operator's inbox as a resource. The LLM\n * can pull this into context to answer \"what's waiting for approval?\"\n * without invoking a tool. The list is account-scoped via the API key.\n */\n\nimport {\n ResourceTemplate,\n} from '@modelcontextprotocol/sdk/server/mcp.js'\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\nimport { getClient } from '../client'\n\nexport function registerMandateResources(server: McpServer): void {\n server.resource(\n 'mandates-pending',\n 'aura://mandates/pending',\n async (uri) => {\n const client = getClient()\n const page = await client.mandates.listPending({ limit: 50 })\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(page, null, 2),\n },\n ],\n }\n }\n )\n\n server.resource(\n 'mandate',\n new ResourceTemplate('aura://mandates/{id}', { list: undefined }),\n async (uri, { id }) => {\n const client = getClient()\n const mandate = await client.mandates.get(String(id))\n return {\n contents: [\n {\n uri: uri.href,\n mimeType: 'application/json',\n text: JSON.stringify(mandate, null, 2),\n },\n ],\n }\n }\n )\n}\n","/**\n * Error helpers — wrap an SDK call so any throw becomes a structured MCP\n * tool error instead of crashing the server. The MCP spec expects tools to\n * return `{ content: [...], isError: true }` on failure so the LLM can read\n * the error message and decide what to do (retry with different args, ask\n * the user, give up). We never let exceptions escape past the tool boundary.\n */\n\nimport {\n AuraAPIError,\n AuraAuthenticationError,\n AuraError,\n AuraNotFoundError,\n AuraRateLimitError,\n AuraTimeoutError,\n AuraValidationError,\n} from '@aura-payments/sdk'\n\nimport { MissingAuraApiKeyError } from './client'\n\n// The MCP SDK's CallToolResult requires an index signature for forward-compat\n// metadata fields (`_meta`, custom annotations, etc.). Both shapes include it\n// so they're assignable to the SDK's expected return type.\n\nexport interface ToolErrorResult {\n [key: string]: unknown\n content: Array<{ type: 'text'; text: string }>\n isError: true\n}\n\nexport interface ToolSuccessResult {\n [key: string]: unknown\n content: Array<{ type: 'text'; text: string }>\n isError?: false\n}\n\n/**\n * Wrap an async tool body so any thrown error becomes an `isError: true`\n * MCP tool result with a human-readable message. Adds an `errorCode` line\n * the LLM can pattern-match on for retry decisions.\n */\nexport async function withToolErrorHandling<T>(\n body: () => Promise<T>,\n successFormatter: (data: T) => string = defaultJsonFormatter\n): Promise<ToolSuccessResult | ToolErrorResult> {\n try {\n const result = await body()\n return {\n content: [{ type: 'text', text: successFormatter(result) }],\n }\n } catch (err) {\n return formatError(err)\n }\n}\n\nfunction defaultJsonFormatter(data: unknown): string {\n return JSON.stringify(data, null, 2)\n}\n\nfunction formatError(err: unknown): ToolErrorResult {\n if (err instanceof MissingAuraApiKeyError) {\n return errorResult('CONFIG_ERROR', err.message)\n }\n if (err instanceof AuraAuthenticationError) {\n return errorResult(\n 'AUTH_ERROR',\n `Authentication failed: ${err.message}. Check that AURA_API_KEY is correct and not revoked.`\n )\n }\n if (err instanceof AuraNotFoundError) {\n return errorResult('NOT_FOUND', err.message)\n }\n if (err instanceof AuraValidationError) {\n return errorResult('VALIDATION_ERROR', err.message)\n }\n if (err instanceof AuraRateLimitError) {\n return errorResult(\n 'RATE_LIMITED',\n `Rate limited. ${err.retryAfter ? `Retry after ${err.retryAfter}s.` : 'Back off and retry.'}`\n )\n }\n if (err instanceof AuraTimeoutError) {\n return errorResult('TIMEOUT', err.message)\n }\n if (err instanceof AuraAPIError) {\n return errorResult(`API_ERROR_${err.statusCode}`, err.message)\n }\n if (err instanceof AuraError) {\n return errorResult(err.code || 'AURA_ERROR', err.message)\n }\n if (err instanceof Error) {\n return errorResult('UNKNOWN_ERROR', err.message)\n }\n return errorResult('UNKNOWN_ERROR', String(err))\n}\n\nfunction errorResult(code: string, message: string): ToolErrorResult {\n return {\n isError: true,\n content: [\n {\n type: 'text',\n text: `errorCode: ${code}\\nmessage: ${message}`,\n },\n ],\n }\n}\n\n/**\n * Build a structured tool error directly (without an exception) — used by\n * guards like the wallet-create env gate that decline to act before any SDK\n * call. Same shape `withToolErrorHandling` produces, so the LLM reads it\n * identically.\n */\nexport function toolError(code: string, message: string): ToolErrorResult {\n return errorResult(code, message)\n}\n","/**\n * Agent tools for the Aura MCP server.\n *\n * Wraps AuraClient.agents — the agent-native primitives that make Aura the\n * payments substrate for AI agents. `freeze` and `evaluate` are the most\n * load-bearing for agent safety: an LLM operator can pause an autonomous\n * agent or pre-check a transaction without committing it.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport { z } from 'zod'\n\n\nimport { getClient } from '../client'\nimport { withToolErrorHandling } from '../errors'\n\nconst ChainSchema = z.enum(['ARC', 'ARB', 'BASE', 'ETH', 'MATIC'])\n\nconst SpendingLimitSchema = z.object({\n limitType: z.enum([\n 'per_transaction',\n 'daily',\n 'weekly',\n 'monthly',\n 'lifetime',\n ]),\n maxAmount: z.string().describe('Whole-number USDC amount as a string'),\n currency: z.string().optional().default('USDC'),\n})\n\nconst MerchantRuleSchema = z.object({\n ruleType: z.enum(['allowlist', 'blocklist']),\n destinationType: z.enum(['address', 'domain', 'category', 'entity_id']),\n destinationValue: z.string().min(1),\n})\n\nexport function registerAgentTools(server: McpServer): void {\n server.tool(\n 'aura_create_agent',\n 'Create a new AI agent with a dedicated wallet and optional initial spending policy. The wallet is provisioned on-chain during this call (a few seconds latency).',\n {\n name: z.string().min(1).max(100),\n description: z.string().max(500).optional(),\n type: z.enum(['treasury', 'payment', 'trading', 'custom']),\n chain: ChainSchema.optional().default('ARC'),\n metadata: z.record(z.unknown()).optional(),\n initialPolicy: z\n .object({\n name: z.string().optional(),\n description: z.string().optional(),\n spendingLimits: z.array(SpendingLimitSchema).optional(),\n merchantRules: z.array(MerchantRuleSchema).optional(),\n requiresApprovalAbove: z.string().optional(),\n autoApproveBelow: z.string().optional(),\n })\n .optional(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.create(args)\n })\n )\n\n server.tool(\n 'aura_list_agents',\n 'List agents for the authenticated account, paginated. Filter by status or type.',\n {\n status: z.enum(['active', 'paused', 'archived']).optional(),\n type: z.enum(['treasury', 'payment', 'trading', 'custom']).optional(),\n limit: z.number().int().min(1).max(200).optional(),\n offset: z.number().int().min(0).optional(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.list(args)\n })\n )\n\n server.tool(\n 'aura_get_agent',\n 'Get a single agent by id with its current status, wallet, and recent activity.',\n {\n agentId: z.string().uuid(),\n },\n async ({ agentId }) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.get(agentId)\n })\n )\n\n server.tool(\n 'aura_get_agent_balance',\n 'Get the current USDC balance of an agent\\'s wallet (on-chain at request time).',\n {\n agentId: z.string().uuid(),\n },\n async ({ agentId }) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.getBalance(agentId)\n })\n )\n\n server.tool(\n 'aura_freeze_agent',\n 'Kill switch — halt all autonomous activity for an agent. Sets status=paused AND auto-rejects every pending mandate the agent has in flight. Idempotent.',\n {\n agentId: z.string().uuid(),\n reason: z.string().max(500).optional().describe('Surfaced in activity event metadata for audit trail'),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.freeze(args)\n })\n )\n\n server.tool(\n 'aura_unfreeze_agent',\n 'Resume autonomous activity for a frozen agent (status -> active). Previously cascade-rejected mandates are NOT restored — the agent re-creates them on its next loop.',\n {\n agentId: z.string().uuid(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.unfreeze(args)\n })\n )\n\n server.tool(\n 'aura_evaluate_policy',\n 'Run a hypothetical transaction through the policy engine WITHOUT executing it. Returns the decision (auto_approve / auto_deny / requires_human_approval) and which rules matched. When the decision requires human approval, a mandate row is created and its id is returned.',\n {\n agentId: z.string().uuid(),\n amount: z.string().describe('USDC amount as decimal string'),\n destination: z.string().describe('Counterparty wallet (0x...) or merchant identifier'),\n destinationType: z\n .enum(['address', 'domain', 'category', 'entity_id'])\n .optional(),\n reasoning: z.string().optional(),\n metadata: z.record(z.unknown()).optional(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.agents.evaluate(args)\n })\n )\n}\n","/**\n * Escrow tools for the Aura MCP server.\n *\n * Wraps the AuraClient.escrows resource. Each tool is a thin delegation —\n * the SDK handles auth, retries, idempotency. We just declare the input\n * schema (so the LLM knows what to pass), call the SDK, and JSON-stringify\n * the result so the LLM can read it.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport { z } from 'zod'\n\n\nimport { getClient } from '../client'\nimport { withToolErrorHandling } from '../errors'\n\nconst ChainSchema = z.enum(['ARC', 'ARB', 'BASE', 'ETH', 'MATIC'])\n\nconst SplitInputSchema = z.object({\n ownerType: z.enum([\n 'buyer',\n 'seller',\n 'platform',\n 'vendor',\n 'creator',\n 'affiliate',\n 'logistics',\n 'tax',\n ]),\n ownerId: z.string().uuid(),\n role: z.enum([\n 'seller',\n 'platform',\n 'vendor',\n 'creator',\n 'affiliate',\n 'logistics',\n 'tax',\n ]),\n percentage: z.number().min(0).max(100),\n})\n\nexport function registerEscrowTools(server: McpServer): void {\n server.tool(\n 'aura_create_escrow',\n 'Create a new escrow with payment splits across vendor/platform/seller wallets. Default chain is ARC. Async by default — returns an escrowId immediately while contract deployment continues in background.',\n {\n orderId: z.string().describe('Caller-provided order id, unique per account'),\n buyerOwnerId: z.string().uuid().describe('UUID of the buyer in the platform'),\n amount: z\n .string()\n .describe('Whole-number USDC amount as a string (e.g. \"100\" for $100)'),\n chain: ChainSchema.optional().describe('Target chain. Defaults to ARC'),\n splits: z\n .array(SplitInputSchema)\n .min(1)\n .describe('Payment splits. Percentages must sum to 100.'),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.create(args)\n })\n )\n\n server.tool(\n 'aura_get_escrow',\n 'Get the current state of an escrow by id, including splits and on-chain deployment status.',\n {\n escrowId: z.string().uuid(),\n },\n async ({ escrowId }) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.get(escrowId)\n })\n )\n\n server.tool(\n 'aura_list_escrows',\n 'List escrows for the authenticated account, optionally filtered by state. Returns paginated results.',\n {\n state: z\n .enum([\n 'initiated',\n 'deployed',\n 'funded',\n 'locked',\n 'released',\n 'refunded',\n 'disputed',\n 'all',\n ])\n .optional(),\n sortBy: z\n .enum(['created_desc', 'created_asc', 'amount_desc', 'amount_asc'])\n .optional(),\n search: z.string().optional(),\n limit: z.number().int().min(1).max(200).optional(),\n offset: z.number().int().min(0).optional(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.list(args)\n })\n )\n\n server.tool(\n 'aura_fund_escrow',\n 'Fund an existing escrow from the buyer wallet. Once funded, the escrow can be released (after unlock conditions) or refunded.',\n {\n escrowId: z.string().uuid(),\n buyerWalletId: z.string().uuid(),\n amount: z.string().describe('USDC amount to fund (whole-number string)'),\n correlationId: z.string().optional(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.fund(args)\n })\n )\n\n server.tool(\n 'aura_release_escrow',\n 'Release a funded escrow to the recipients per the original splits. Requires the unlock conditions to be met (or manual override with actorId).',\n {\n escrowId: z.string().uuid(),\n actorId: z.string().uuid().describe('UUID of the user/agent performing the release'),\n reason: z.string().optional(),\n correlationId: z.string().optional(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.release(args)\n })\n )\n\n server.tool(\n 'aura_refund_escrow',\n 'Refund a funded escrow back to the buyer. Requires a reason (audit trail).',\n {\n escrowId: z.string().uuid(),\n reason: z.string().min(10),\n actorId: z.string().uuid(),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.refund(args)\n })\n )\n\n server.tool(\n 'aura_receive_and_split',\n 'Receive USDC and split it to recipients in ONE call — composes escrow create→fund→release. The payer (payerOwnerId) may be the agent itself (splitting funds it holds) or a counterparty; funds move from that party\\'s Aura wallet. Returns a `stage` (created|deployed|funded|released): if it stops at \"deployed\" with `fundingRequired`, fund that wallet (e.g. aura_request_testnet_funds) and retry. Testnet only.',\n {\n orderId: z.string().describe('Caller-provided order id, unique per account'),\n payerOwnerId: z\n .string()\n .describe('Entity that funds the escrow (the agent itself or a counterparty)'),\n amount: z\n .string()\n .describe('Whole-number USDC amount as a string (e.g. \"50\"). Each split must net ≥ $1 after fees.'),\n splits: z\n .array(SplitInputSchema)\n .min(1)\n .describe('Payment splits. Percentages must sum to 100.'),\n chain: z\n .enum(['ARC', 'ARB', 'BASE'])\n .optional()\n .describe('Testnet chain. Defaults to ARC.'),\n actorId: z\n .string()\n .optional()\n .describe('Actor recorded on release. Defaults to payerOwnerId.'),\n autoRelease: z\n .boolean()\n .optional()\n .describe('Release immediately after funding. Default true.'),\n waitForDeploymentMs: z\n .number()\n .int()\n .min(0)\n .optional()\n .describe('Max ms to wait for on-chain deployment. Default 60000.'),\n waitForFundingMs: z\n .number()\n .int()\n .min(0)\n .optional()\n .describe('Max ms to wait for funds to settle (funded/locked) before releasing. Default 60000.'),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.escrows.receiveAndSplit(args)\n })\n )\n}\n","/**\n * Mandate tools for the Aura MCP server.\n *\n * Wraps AuraClient.mandates — the operator's approval inbox. The MCP layer\n * is read-and-list focused; approve/reject require a signed decision, which\n * we expose as a separate tool that takes a precomputed signature. The LLM\n * shouldn't ever see the operator's HMAC secret, so the signature must be\n * computed by the caller's environment (CLI, mobile app, etc.) and passed\n * in. The tool simply forwards it.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport { z } from 'zod'\n\n\nimport { getClient } from '../client'\nimport { withToolErrorHandling } from '../errors'\n\nexport function registerMandateTools(server: McpServer): void {\n server.tool(\n 'aura_list_mandates',\n \"List mandates for the authenticated account. Defaults to status=pending so it acts as the operator's inbox by default. Most-urgent (soonest-expiring) first.\",\n {\n status: z\n .enum(['pending', 'approved', 'rejected', 'cancelled'])\n .optional()\n .default('pending'),\n agentId: z.string().uuid().optional(),\n limit: z.number().int().min(1).max(200).optional(),\n cursor: z.string().uuid().optional().describe('Last mandate id from the previous page'),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.mandates.list(args)\n })\n )\n\n server.tool(\n 'aura_get_mandate',\n \"Get a single mandate by id, including its full intent payload (the action the agent wants to take), expiry, and decision history.\",\n {\n mandateId: z.string().uuid(),\n },\n async ({ mandateId }) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.mandates.get(mandateId)\n })\n )\n\n server.tool(\n 'aura_approve_mandate',\n \"Approve a pending mandate. The decisionSignature MUST be precomputed by the caller (HMAC-SHA256 over `${mandateId}:approve:${decidedAt}`) — the LLM should never see the HMAC secret. Use the CLI or mobile app to compute it. Idempotent: re-approving an already-approved mandate returns the existing decision.\",\n {\n mandateId: z.string().uuid(),\n decisionMethod: z.enum(['biometric', 'passcode', 'manual']),\n decisionSignature: z\n .string()\n .min(16)\n .describe('HMAC-SHA256 hex digest, computed by the caller'),\n decidedAt: z\n .string()\n .datetime()\n .optional()\n .describe('ISO-8601 timestamp the signature commits to. Defaults to \"now\" server-side.'),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.mandates.approve(args)\n })\n )\n\n server.tool(\n 'aura_reject_mandate',\n 'Reject a pending mandate. Same signature scheme as approve — caller computes it, LLM forwards.',\n {\n mandateId: z.string().uuid(),\n decisionMethod: z.enum(['biometric', 'passcode', 'manual']),\n decisionSignature: z.string().min(16),\n decidedAt: z.string().datetime().optional(),\n reason: z.string().optional().describe('Human-readable reason logged to the activity feed'),\n },\n async (args) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.mandates.reject(args)\n })\n )\n}\n","/**\n * Wallet tools for the Aura MCP server.\n *\n * Surface for the agent receive path (AURA-015):\n * - `aura_get_wallet_balance` — read on-chain USDC balance.\n * - `aura_create_wallet` — provision a receive address (create-or-get,\n * MOVES NO MONEY). Gated behind `AURA_MCP_ALLOW_WALLET_CREATE` so the host\n * operator must consciously enable autonomous provisioning; testnet chains\n * only on this surface. Mainnet creation stays on the SDK/dashboard.\n * - `aura_request_testnet_funds` — drip testnet USDC via the platform faucet\n * (capability-probed; graceful when the endpoint isn't deployed yet).\n *\n * `transfer` is deliberately NOT exposed here — moving money autonomously is\n * out of scope for the MCP surface.\n */\n\nimport type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\nimport { z } from 'zod'\n\n\nimport { getClient } from '../client'\nimport { toolError, withToolErrorHandling } from '../errors'\n\n/** Testnet chains only on the agent surface (ARC/ARB/BASE map to testnets). */\nconst TestnetChainSchema = z.enum(['ARC', 'ARB', 'BASE'])\n\n/** Whether the host operator has enabled autonomous wallet creation. */\nfunction walletCreateEnabled(): boolean {\n const v = (process.env.AURA_MCP_ALLOW_WALLET_CREATE ?? '').trim().toLowerCase()\n return v === '1' || v === 'true' || v === 'yes'\n}\n\nexport function registerWalletTools(server: McpServer): void {\n server.tool(\n 'aura_get_wallet_balance',\n \"Get a wallet's current USDC balance (on-chain at request time).\",\n {\n walletId: z.string().uuid(),\n },\n async ({ walletId }) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.wallets.getBalance(walletId)\n })\n )\n\n server.tool(\n 'aura_create_wallet',\n 'Provision (create-or-get) a wallet to RECEIVE USDC into. Idempotent and moves no money. Testnet only. Disabled unless the host sets AURA_MCP_ALLOW_WALLET_CREATE=1.',\n {\n entityId: z\n .string()\n .min(1)\n .describe('Your unique identifier for the wallet owner (e.g. the agent id)'),\n chain: TestnetChainSchema.optional().describe('Testnet chain. Defaults to ARC.'),\n type: z\n .enum([\n 'BUSINESS',\n 'buyer',\n 'seller',\n 'platform',\n 'vendor',\n 'creator',\n 'affiliate',\n 'logistics',\n 'tax',\n ])\n .optional()\n .describe('Wallet owner type. Defaults to BUSINESS.'),\n },\n async ({ entityId, chain, type }) => {\n if (!walletCreateEnabled()) {\n return toolError(\n 'WALLET_CREATE_DISABLED',\n 'Wallet creation is disabled on this MCP host. Set ' +\n 'AURA_MCP_ALLOW_WALLET_CREATE=1 in the server env to enable it, or ' +\n 'create the wallet via the Aura CLI (`aura wallet create`) or SDK.'\n )\n }\n return withToolErrorHandling(async () => {\n const client = getClient()\n return client.wallets.create({ entityId, chain, type })\n })\n }\n )\n\n server.tool(\n 'aura_request_testnet_funds',\n 'Request testnet USDC for a wallet from the platform faucet (testnet only). Drips are async — balance reflects after a few seconds. Returns FAUCET_UNAVAILABLE if the deployment has no faucet enabled.',\n {\n walletId: z.string().uuid(),\n token: z.string().optional().describe(\"Token to drip. Defaults to 'USDC'.\"),\n chain: TestnetChainSchema.optional().describe(\"Override the wallet's chain.\"),\n },\n async ({ walletId, token, chain }) =>\n withToolErrorHandling(async () => {\n const client = getClient()\n return client.wallets.requestTestnetFunds(walletId, { token, chain })\n })\n )\n}\n","/**\n * Aura Payments MCP Server — programmatic entry point.\n *\n * The MCP server exposes Aura's escrow, agent, mandate, and wallet primitives\n * as Model Context Protocol tools and resources, so AI agents (Claude,\n * Cursor, Continue, custom orchestrators) can drive Aura natively over\n * stdio without writing HTTP boilerplate.\n *\n * This file exports `createServer()` for programmatic use (tests, custom\n * transports, embedding in other MCP hosts). For the standalone binary,\n * see `bin.ts`.\n *\n * Wire shape: thin wrapper over `@aura-payments/sdk`. We do not duplicate\n * any business logic — the SDK is the single source of truth for HTTP\n * shape, idempotency, retries, and error mapping.\n */\n\nimport { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'\n\nimport { registerAgentResources } from './resources/agents'\nimport { registerMandateResources } from './resources/mandates'\nimport { registerAgentTools } from './tools/agents'\nimport { registerEscrowTools } from './tools/escrows'\nimport { registerMandateTools } from './tools/mandates'\nimport { registerWalletTools } from './tools/wallets'\n\nexport interface CreateServerOptions {\n name?: string\n version?: string\n}\n\n/**\n * Build a fully-configured MCP server with all Aura tools and resources\n * registered. The caller is responsible for connecting it to a transport\n * (stdio, SSE, etc.).\n */\nexport function createServer(options: CreateServerOptions = {}): McpServer {\n const server = new McpServer({\n name: options.name ?? 'aura-payments',\n version: options.version ?? '1.0.0',\n })\n\n // Tools — actions the LLM can take.\n registerEscrowTools(server)\n registerAgentTools(server)\n registerMandateTools(server)\n registerWalletTools(server)\n\n // Resources — data the LLM can read into context.\n registerAgentResources(server)\n registerMandateResources(server)\n\n return server\n}\n\nexport { getClient, MissingAuraApiKeyError } from './client'\n","#!/usr/bin/env node\n/**\n * Aura MCP Server binary entry — `aura-mcp`.\n *\n * Connects the server (built in `index.ts`) to a stdio transport, which is\n * what Claude Desktop, Cursor, Continue, and other MCP hosts expect when\n * they spawn an MCP server as a subprocess.\n *\n * Usage in mcp.json:\n * {\n * \"mcpServers\": {\n * \"aura\": {\n * \"command\": \"aura-mcp\",\n * \"env\": { \"AURA_API_KEY\": \"pk_live_...\" }\n * }\n * }\n * }\n *\n * If the SDK package is installed alongside this one (typical for npx /\n * global install), the host doesn't need to set anything else. For non-\n * standard hosts, set AURA_BASE_URL to point at a different platform\n * deployment (default: https://getaura.sh/api).\n */\n\nimport { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'\n\nimport { createServer } from './index'\n\nasync function main(): Promise<void> {\n const server = createServer()\n const transport = new StdioServerTransport()\n await server.connect(transport)\n // Keep the process alive — stdio transport handles the message loop.\n // The server exits when the host closes stdin.\n}\n\nmain().catch((err) => {\n // MCP hosts pipe stderr to their logs — surface the failure clearly.\n // We do NOT exit 0 on error; non-zero tells the host the server died.\n // eslint-disable-next-line no-console\n console.error('aura-mcp: fatal error:', err)\n process.exit(1)\n})\n"]}
@@ -0,0 +1,47 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { AuraClient } from '@aura-payments/sdk';
3
+
4
+ /**
5
+ * Aura SDK client factory for the MCP server.
6
+ *
7
+ * Reads `AURA_API_KEY` and (optionally) `AURA_BASE_URL` from the environment
8
+ * the MCP host launched us in (Claude Desktop / Cursor / etc. inject env via
9
+ * the `env` field in mcp.json). The client is created lazily on first tool
10
+ * invocation so missing env doesn't crash the server during the MCP handshake
11
+ * — instead, the FIRST tool call returns a clear error the LLM can act on.
12
+ */
13
+
14
+ declare function getClient(): AuraClient;
15
+ declare class MissingAuraApiKeyError extends Error {
16
+ constructor();
17
+ }
18
+
19
+ /**
20
+ * Aura Payments MCP Server — programmatic entry point.
21
+ *
22
+ * The MCP server exposes Aura's escrow, agent, mandate, and wallet primitives
23
+ * as Model Context Protocol tools and resources, so AI agents (Claude,
24
+ * Cursor, Continue, custom orchestrators) can drive Aura natively over
25
+ * stdio without writing HTTP boilerplate.
26
+ *
27
+ * This file exports `createServer()` for programmatic use (tests, custom
28
+ * transports, embedding in other MCP hosts). For the standalone binary,
29
+ * see `bin.ts`.
30
+ *
31
+ * Wire shape: thin wrapper over `@aura-payments/sdk`. We do not duplicate
32
+ * any business logic — the SDK is the single source of truth for HTTP
33
+ * shape, idempotency, retries, and error mapping.
34
+ */
35
+
36
+ interface CreateServerOptions {
37
+ name?: string;
38
+ version?: string;
39
+ }
40
+ /**
41
+ * Build a fully-configured MCP server with all Aura tools and resources
42
+ * registered. The caller is responsible for connecting it to a transport
43
+ * (stdio, SSE, etc.).
44
+ */
45
+ declare function createServer(options?: CreateServerOptions): McpServer;
46
+
47
+ export { type CreateServerOptions, MissingAuraApiKeyError, createServer, getClient };
@@ -0,0 +1,47 @@
1
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ import { AuraClient } from '@aura-payments/sdk';
3
+
4
+ /**
5
+ * Aura SDK client factory for the MCP server.
6
+ *
7
+ * Reads `AURA_API_KEY` and (optionally) `AURA_BASE_URL` from the environment
8
+ * the MCP host launched us in (Claude Desktop / Cursor / etc. inject env via
9
+ * the `env` field in mcp.json). The client is created lazily on first tool
10
+ * invocation so missing env doesn't crash the server during the MCP handshake
11
+ * — instead, the FIRST tool call returns a clear error the LLM can act on.
12
+ */
13
+
14
+ declare function getClient(): AuraClient;
15
+ declare class MissingAuraApiKeyError extends Error {
16
+ constructor();
17
+ }
18
+
19
+ /**
20
+ * Aura Payments MCP Server — programmatic entry point.
21
+ *
22
+ * The MCP server exposes Aura's escrow, agent, mandate, and wallet primitives
23
+ * as Model Context Protocol tools and resources, so AI agents (Claude,
24
+ * Cursor, Continue, custom orchestrators) can drive Aura natively over
25
+ * stdio without writing HTTP boilerplate.
26
+ *
27
+ * This file exports `createServer()` for programmatic use (tests, custom
28
+ * transports, embedding in other MCP hosts). For the standalone binary,
29
+ * see `bin.ts`.
30
+ *
31
+ * Wire shape: thin wrapper over `@aura-payments/sdk`. We do not duplicate
32
+ * any business logic — the SDK is the single source of truth for HTTP
33
+ * shape, idempotency, retries, and error mapping.
34
+ */
35
+
36
+ interface CreateServerOptions {
37
+ name?: string;
38
+ version?: string;
39
+ }
40
+ /**
41
+ * Build a fully-configured MCP server with all Aura tools and resources
42
+ * registered. The caller is responsible for connecting it to a transport
43
+ * (stdio, SSE, etc.).
44
+ */
45
+ declare function createServer(options?: CreateServerOptions): McpServer;
46
+
47
+ export { type CreateServerOptions, MissingAuraApiKeyError, createServer, getClient };