diff --git a/manifest.config.ts b/manifest.config.ts index acb45b5..6a9fbfa 100644 --- a/manifest.config.ts +++ b/manifest.config.ts @@ -76,7 +76,7 @@ export const plugins: readonly PluginDefinition[] = [ }, { name: 'wallet', - version: '0.1.0', + version: '0.2.0', description: 'Set up Tempo Wallet and make explicitly approved paid API requests.', displayName: 'Tempo Wallet', homepage: 'https://tempo.xyz/developers/docs/wallet/use-with-agents', @@ -98,6 +98,12 @@ export const plugins: readonly PluginDefinition[] = [ ], brandColor: '#000000', }, + mcp: { + serverName: 'tempo-wallet', + url: 'https://wallet.tempo.xyz/mcp', + note: 'Tempo Wallet remote MCP for account reads and wallet JSON-RPC requests approved in the browser.', + registryDescription: 'Connect a Tempo Wallet account and request passkey-approved wallet actions.', + }, }, { name: 'mercator', diff --git a/plugins/wallet/.claude-plugin/plugin.json b/plugins/wallet/.claude-plugin/plugin.json index fc588fd..7f5bd14 100644 --- a/plugins/wallet/.claude-plugin/plugin.json +++ b/plugins/wallet/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "wallet", "displayName": "Tempo Wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "author": { "name": "Tempo" @@ -16,5 +16,6 @@ "mpp", "payments" ], - "skills": "./skills/" + "skills": "./skills/", + "mcpServers": "./.mcp.json" } diff --git a/plugins/wallet/.codex-plugin/plugin.json b/plugins/wallet/.codex-plugin/plugin.json index ba37dd9..940637f 100644 --- a/plugins/wallet/.codex-plugin/plugin.json +++ b/plugins/wallet/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "homepage": "https://tempo.xyz/developers/docs/wallet/use-with-agents", "repository": "https://github.com/tempoxyz/plugins", @@ -17,6 +17,7 @@ "url": "https://tempo.xyz" }, "skills": "./skills/", + "mcpServers": "./.mcp.json", "interface": { "displayName": "Tempo Wallet", "shortDescription": "Use Tempo Wallet with explicit approvals.", diff --git a/plugins/wallet/.cursor-plugin/plugin.json b/plugins/wallet/.cursor-plugin/plugin.json index 82b8a51..cf04961 100644 --- a/plugins/wallet/.cursor-plugin/plugin.json +++ b/plugins/wallet/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "wallet", "displayName": "Tempo Wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "author": { "name": "Tempo" @@ -16,5 +16,6 @@ "mpp", "payments" ], - "skills": "./skills/" + "skills": "./skills/", + "mcpServers": "./.mcp.json" } diff --git a/plugins/wallet/.mcp.json b/plugins/wallet/.mcp.json new file mode 100644 index 0000000..0297090 --- /dev/null +++ b/plugins/wallet/.mcp.json @@ -0,0 +1,9 @@ +{ + "mcpServers": { + "tempo-wallet": { + "type": "http", + "url": "https://wallet.tempo.xyz/mcp", + "note": "Tempo Wallet remote MCP for account reads and wallet JSON-RPC requests approved in the browser." + } + } +} diff --git a/plugins/wallet/mcp.json b/plugins/wallet/mcp.json new file mode 100644 index 0000000..cbe42d9 --- /dev/null +++ b/plugins/wallet/mcp.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", + "mcpServers": { + "tempo-wallet": { + "type": "streamable-http", + "url": "https://wallet.tempo.xyz/mcp" + } + } +} diff --git a/plugins/wallet/plugin.json b/plugins/wallet/plugin.json index 3fa197f..2eccece 100644 --- a/plugins/wallet/plugin.json +++ b/plugins/wallet/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "homepage": "https://tempo.xyz/developers/docs/wallet/use-with-agents", "repository": "https://github.com/tempoxyz/plugins", diff --git a/plugins/wallet/skills/wallet/SKILL.md b/plugins/wallet/skills/wallet/SKILL.md index 7db2476..7faf74c 100644 --- a/plugins/wallet/skills/wallet/SKILL.md +++ b/plugins/wallet/skills/wallet/SKILL.md @@ -13,6 +13,14 @@ license: MIT **When the user says "use tempo", always use `tempo` CLI commands** — never substitute with MCP tools or other tools. Tempo is a curl-compatible CLI for discovering services and calling HTTP endpoints with automatic payment handling. +## Tempo Wallet MCP + +When the `tempo-wallet` MCP tools are available (for example in ChatGPT or Codex), use them for account and signing actions; keep using the `tempo` CLI for paid HTTP requests. + +- Tools are named after wallet JSON-RPC methods (`eth_accounts`, `personal_sign`, `eth_sendTransaction`, `wallet_transfer`, `wallet_swap`, …) and take that method's `params` array. +- `eth_accounts` and `eth_chainId` answer immediately. Every other tool returns `approval_url` and `user_code`: show both to the user, then poll `wallet_getRequest` with `request_id` until the status is `approved`, `error`, `rejected`, or `expired`. +- Nothing executes until the user approves with their passkey on the approval page. Never ask for private keys or recovery phrases. + ## Network status - Tempo Mainnet has been live since March 18, 2026. Its chain ID is `4217`. diff --git a/registry/wallet/server.json b/registry/wallet/server.json new file mode 100644 index 0000000..b4e7491 --- /dev/null +++ b/registry/wallet/server.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", + "name": "xyz.tempo/wallet", + "title": "Tempo Wallet", + "description": "Connect a Tempo Wallet account and request passkey-approved wallet actions.", + "version": "0.2.0", + "remotes": [ + { + "type": "streamable-http", + "url": "https://wallet.tempo.xyz/mcp" + } + ] +} diff --git a/test/build-manifests.test.ts b/test/build-manifests.test.ts index 7dd03d6..338c5a7 100644 --- a/test/build-manifests.test.ts +++ b/test/build-manifests.test.ts @@ -135,14 +135,15 @@ describe('findManifestDrift', () => { // Arrange const directory = temporaryDirectory() writeManifests(directory) - const path = join(directory, 'plugins/wallet/mcp.json') + const path = join(directory, 'plugins/retired/mcp.json') + mkdirSync(dirname(path), { recursive: true }) writeFileSync(path, '{}\n') // Act const drift = findManifestDrift(directory) // Assert - expect(drift).toContain('plugins/wallet/mcp.json: unexpected') + expect(drift).toContain('plugins/retired/mcp.json: unexpected') }) }) diff --git a/test/fixtures/golden/gemini/wallet/gemini-extension.json b/test/fixtures/golden/gemini/wallet/gemini-extension.json index 50a9183..b6580d6 100644 --- a/test/fixtures/golden/gemini/wallet/gemini-extension.json +++ b/test/fixtures/golden/gemini/wallet/gemini-extension.json @@ -1,5 +1,11 @@ { "name": "wallet", - "version": "0.1.0", - "description": "Set up Tempo Wallet and make explicitly approved paid API requests." + "version": "0.2.0", + "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", + "mcpServers": { + "tempo-wallet": { + "httpUrl": "https://wallet.tempo.xyz/mcp", + "timeout": 600000 + } + } } diff --git a/test/fixtures/golden/manifests/plugins/wallet/.claude-plugin/plugin.json b/test/fixtures/golden/manifests/plugins/wallet/.claude-plugin/plugin.json index fc588fd..7f5bd14 100644 --- a/test/fixtures/golden/manifests/plugins/wallet/.claude-plugin/plugin.json +++ b/test/fixtures/golden/manifests/plugins/wallet/.claude-plugin/plugin.json @@ -2,7 +2,7 @@ "$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json", "name": "wallet", "displayName": "Tempo Wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "author": { "name": "Tempo" @@ -16,5 +16,6 @@ "mpp", "payments" ], - "skills": "./skills/" + "skills": "./skills/", + "mcpServers": "./.mcp.json" } diff --git a/test/fixtures/golden/manifests/plugins/wallet/.codex-plugin/plugin.json b/test/fixtures/golden/manifests/plugins/wallet/.codex-plugin/plugin.json index ba37dd9..940637f 100644 --- a/test/fixtures/golden/manifests/plugins/wallet/.codex-plugin/plugin.json +++ b/test/fixtures/golden/manifests/plugins/wallet/.codex-plugin/plugin.json @@ -1,6 +1,6 @@ { "name": "wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "homepage": "https://tempo.xyz/developers/docs/wallet/use-with-agents", "repository": "https://github.com/tempoxyz/plugins", @@ -17,6 +17,7 @@ "url": "https://tempo.xyz" }, "skills": "./skills/", + "mcpServers": "./.mcp.json", "interface": { "displayName": "Tempo Wallet", "shortDescription": "Use Tempo Wallet with explicit approvals.", diff --git a/test/fixtures/golden/manifests/plugins/wallet/.cursor-plugin/plugin.json b/test/fixtures/golden/manifests/plugins/wallet/.cursor-plugin/plugin.json index 82b8a51..cf04961 100644 --- a/test/fixtures/golden/manifests/plugins/wallet/.cursor-plugin/plugin.json +++ b/test/fixtures/golden/manifests/plugins/wallet/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "wallet", "displayName": "Tempo Wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "author": { "name": "Tempo" @@ -16,5 +16,6 @@ "mpp", "payments" ], - "skills": "./skills/" + "skills": "./skills/", + "mcpServers": "./.mcp.json" } diff --git a/test/fixtures/golden/manifests/plugins/wallet/.mcp.json b/test/fixtures/golden/manifests/plugins/wallet/.mcp.json new file mode 100644 index 0000000..0297090 --- /dev/null +++ b/test/fixtures/golden/manifests/plugins/wallet/.mcp.json @@ -0,0 +1,9 @@ +{ + "mcpServers": { + "tempo-wallet": { + "type": "http", + "url": "https://wallet.tempo.xyz/mcp", + "note": "Tempo Wallet remote MCP for account reads and wallet JSON-RPC requests approved in the browser." + } + } +} diff --git a/test/fixtures/golden/manifests/plugins/wallet/mcp.json b/test/fixtures/golden/manifests/plugins/wallet/mcp.json new file mode 100644 index 0000000..cbe42d9 --- /dev/null +++ b/test/fixtures/golden/manifests/plugins/wallet/mcp.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", + "mcpServers": { + "tempo-wallet": { + "type": "streamable-http", + "url": "https://wallet.tempo.xyz/mcp" + } + } +} diff --git a/test/fixtures/golden/manifests/plugins/wallet/plugin.json b/test/fixtures/golden/manifests/plugins/wallet/plugin.json index 3fa197f..2eccece 100644 --- a/test/fixtures/golden/manifests/plugins/wallet/plugin.json +++ b/test/fixtures/golden/manifests/plugins/wallet/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "wallet", - "version": "0.1.0", + "version": "0.2.0", "description": "Set up Tempo Wallet and make explicitly approved paid API requests.", "homepage": "https://tempo.xyz/developers/docs/wallet/use-with-agents", "repository": "https://github.com/tempoxyz/plugins", diff --git a/test/fixtures/golden/manifests/registry/wallet/server.json b/test/fixtures/golden/manifests/registry/wallet/server.json new file mode 100644 index 0000000..b4e7491 --- /dev/null +++ b/test/fixtures/golden/manifests/registry/wallet/server.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", + "name": "xyz.tempo/wallet", + "title": "Tempo Wallet", + "description": "Connect a Tempo Wallet account and request passkey-approved wallet actions.", + "version": "0.2.0", + "remotes": [ + { + "type": "streamable-http", + "url": "https://wallet.tempo.xyz/mcp" + } + ] +}