toreador-mcp-server
@toreador/mcp-server
Toreador の公式 Model Context Protocol サーバーです。Claude Desktop、Cursor、その他MCP対応のアシスタントが、あなたに代わって暗号資産のQRコードを生成し、支払いセッションを管理できるようにします。
⚠️ Toreador ダッシュボード から取得できる ProプランのAPIキー (
tdr_...) が必要です。MCPサーバーはローカルで実行され、あなたのキーを使用してhttps://toreador.io/api/v1/publicを呼び出します。
公開されているツール
ツール | 機能 |
| ネイティブトークン(BTC、ETH、SOL、POL)またはSolana SPL(Solana上のUSDC)のQRコードを生成します。オンチェーン支払いURIとbase64 PNGデータURIを返します。 |
| Ethereum、Polygon、またはBase上のERC-20ステーブルコイン(USDC、USDT、EURC)のホスト型支払いセッションを作成します。セッションID、セキュリティコード、ホスト型支払いURLを返します。 |
| ERC-20支払いセッションのステータス( |
| 直近50件のQRコード生成履歴を一覧表示します。 |
| 直近50件のERC-20支払いセッションを一覧表示します。 |
Related MCP server: paybysquare-generator
Claude Desktopへのインストール
Claude Desktopの設定ファイルを編集します:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
mcpServers の下に toreador エントリを追加します:
{
"mcpServers": {
"toreador": {
"command": "npx",
"args": ["-y", "@toreador/mcp-server"],
"env": {
"TOREADOR_API_KEY": "tdr_your_key_here"
}
}
}
}Claude Desktopを再起動してください。ツールメニューに5つのToreadorツールが表示されるはずです。
Cursorへのインストール
Cursorの設定 → MCP → 「Add new MCP server」に以下を貼り付けます:
{
"command": "npx",
"args": ["-y", "@toreador/mcp-server"],
"env": { "TOREADOR_API_KEY": "tdr_..." }
}プロンプトの例
インストール後、MCPクライアントで以下のプロンプトを試してみてください:
"bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh 宛に 0.001 BTC を送るためのビットコインQRコードを生成して。"
"0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18 宛に Polygon 上で 50 USDC を支払うためのセッションを作成して。"
"セッション ses_123 のステータスを教えて。"
"直近10件の支払いセッションを表示して。"
アシスタントが適切なツールを選択してToreadorを呼び出し、結果を返します。これには、ほとんどのクライアントでインライン表示可能なQRコードのデータURIも含まれます。
設定
環境変数 | デフォルト | 説明 |
| 必須 | ProプランのAPIキー。形式: |
|
| APIベースURLの上書き(テスト用)。 |
|
| リクエストごとのタイムアウト(ミリ秒)。 |
信頼と安全性
ローカルのみ。 MCPサーバーはstdioを介してあなたのマシン上で実行されます。APIキーは、
toreador.ioへのアウトバウンドHTTPS呼び出し以外でコンピュータから外部へ送信されることはありません。ノンカストディアル。 Toreadorは資金を保持しません。MCPツールはQRコードの生成とセッション状態の読み取りのみを行い、資金を移動させることはできません。
読み取りまたは作成のみ、破壊操作なし。 ツールは新しい支払いオブジェクトを作成するか、既存のオブジェクトを読み取るだけです。「削除」や「返金」ツールはありません。
ソースからのビルド
git clone https://github.com/Bentonabento/toreador-sdk.git
cd toreador-sdk/mcp
npm install
npm run build
TOREADOR_API_KEY=tdr_... node dist/index.jsサーバーが起動し、stderrに [toreador-mcp] ready (5 tools registered) と出力され、stdinでのMCPリクエストを待機します。
ライセンス
MIT
Available Tools
5 toolstoreador_create_sessionA
Create a hosted payment session for ERC-20 stablecoins on EVM chains (USDC, USDT, EURC on Ethereum, Polygon or Base). Returns a session ID, a 6-character security code to display to the payer, and a URL to a Toreador-hosted payment page where the payer connects their wallet. Sessions expire 15 minutes after creation. PRO PLAN REQUIRED. For native tokens or Solana SPL, use toreador_generate_qr instead.
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Stablecoin symbol. One of: USDC, USDT, EURC. | |
| chainId | Yes | EVM chain. One of: ethereum, polygon, base. | |
| amount | Yes | Amount in the token's natural unit (e.g. "100" for 100 USDC). | |
| recipientAddress | Yes | Destination EVM wallet address (0x...). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behaviors: returns session ID, security code, and payment page URL; session expires after 15 minutes; requires pro plan. No annotations provided, but description adequately covers the mutation nature and constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main purpose. No wasted words; each sentence provides useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter create tool with no output schema, the description covers return values, expiration, and alternative tool. Lacks details on error scenarios or authentication, but is fairly complete for the task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds minimal extra meaning beyond the schema: it restates the allowed values for token and chainId but does not elaborate on format or constraints for amount or recipientAddress.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates a hosted payment session for ERC-20 stablecoins on EVM chains, listing specific tokens and chains. It distinguishes from the sibling toreador_generate_qr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (for ERC-20 stablecoins on EVM chains) and when not to (for native tokens or Solana SPL, use toreador_generate_qr). Also notes pro plan requirement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toreador_generate_qrA
Generate a crypto QR code for a native token (BTC, ETH, SOL, POL) or a Solana SPL token (USDC on Solana). Returns the QR data URI (PNG base64) and the on-chain payment URI (BIP21, EIP-681, Solana Pay). FREE — no API key needed for these chains. For ERC-20 stablecoins on Ethereum/Polygon/Base (USDT, USDC, EURC), use toreador_create_session (Pro plan required).
| Name | Required | Description | Default |
|---|---|---|---|
| token | Yes | Token symbol. One of: BTC, ETH, SOL, POL, USDC (Solana only). | |
| chainId | Yes | Chain identifier. One of: bitcoin, ethereum, polygon, base, solana. | |
| amount | Yes | Amount as a decimal string in the token's natural unit (e.g. "0.001" for BTC, "50" for USDC). Use a string to preserve decimal precision. | |
| recipientAddress | Yes | Destination wallet address. Must match the chain (bech32 for BTC, EIP-55 for EVM, base58 for Solana). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It states the tool returns a QR data URI and payment URI, and that it is free, implying no state changes. However, it does not explicitly confirm non-destructiveness or describe side effects, but the context suggests a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence clearly defines the tool's purpose and output, and the second provides additional context (free usage and alternative). No unnecessary information, well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, full schema coverage, and no output schema, the description sufficiently covers what the tool does, its inputs, and when to use it. It mentions the output structure (QR data URI and payment URI) and distinguishes sibling tools. No gaps are apparent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 4 parameters with detailed descriptions (100% coverage). The description does not add significant meaning beyond what the schema already provides, such as the list of tokens and the requirement for decimal string amounts. Thus, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a crypto QR code for specific native tokens and Solana SPL tokens, and specifies what it returns (QR data URI and payment URI). It distinguishes itself from the sibling tool toreador_create_session by noting that for ERC-20 stablecoins, that other tool should be used.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (for native tokens and Solana SPL tokens) and when to use the alternative toreador_create_session (for ERC-20 stablecoins). It also mentions that no API key is needed, providing clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toreador_get_payment_statusA
Get the current status of an ERC-20 payment session by ID. Status values: pending, submitted, confirming, completed, expired, failed. Includes on-chain confirmation count and tx hash once submitted.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID returned by toreador_create_session. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description bears full burden; it discloses status values and return fields, sufficient for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, first is front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with full schema coverage, the description explains return values and statuses, adequate without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3; description adds minimal context about sessionId origin beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves payment session status by ID, lists status values and included information, distinguishing it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates use when a sessionId is available but lacks explicit guidance on when to use versus siblings or when not to.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toreador_list_historyA
List the 50 most recent QR code generations for the authenticated account. Returns a list of payment requests with token, chain, amount, recipient and timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool lists history for the authenticated account and returns specific fields, but does not mention side effects, permission requirements, rate limits, or error conditions. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and limit, then specify returned fields. No wasted words, every sentence serves a clear function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description details the returned list structure (token, chain, amount, recipient, timestamp). It also mentions limit (50 recency) and authentication scope. However, it could be more complete by statically declaring the tool as read-only or explaining ordering.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is 100%. The description does not need to add parameter information. Baseline for 0 parameters is 4, and the description meets this without adding unnecessary detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the 50 most recent QR code generations for the authenticated account, specifying the returned fields (token, chain, amount, recipient, timestamp). This distinguishes it from sibling tools like toreador_create_session, toreador_generate_qr, toreador_get_payment_status, and toreador_list_sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing history but provides no explicit when-to-use or when-not-to-use guidance compared to alternatives. While the context from sibling names helps, the description itself lacks direct comparisons or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toreador_list_sessionsA
List the 50 most recent ERC-20 payment sessions for the authenticated account. Includes status, tx hash, confirmations and timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explicitly states 'list' (implying read-only) and lists included data fields (status, tx hash, confirmations, timestamps). It does not disclose rate limits or further behavioral traits, but for a simple read operation, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no extraneous words. Every phrase adds value: '50 most recent', 'ERC-20 payment sessions', 'authenticated account', and the list of included fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (no parameters, no output schema), the description covers the essentials. However, it does not mention pagination or how to retrieve older sessions, which could be useful context. Overall adequate but not perfect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters (100% coverage trivially). The description adds significant meaning by specifying the count (50 most recent) and included fields, which is valuable context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists the 50 most recent ERC-20 payment sessions for the authenticated account. It specifies the resource (sessions), verb (list), and scope (50 most recent, authenticated account), distinguishing it from siblings like create_session and generate_qr.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for viewing recent sessions but does not explicitly state when to use this tool versus alternatives like list_history. No when-not or alternative tools are mentioned, leaving room for improvement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.2.5- First observed
toreador_create_session - First observed
toreador_generate_qr - First observed
toreador_get_payment_status - First observed
toreador_list_history - First observed
toreador_list_sessions
TDQS
Scored across 5 tools
Each tool has a distinct purpose: creating sessions for ERC-20 stablecoins, generating QR codes for native tokens, checking session status, listing QR history, and listing sessions. No overlap or ambiguity.
All tool names follow a consistent 'toreador_verb_noun' pattern (e.g., create_session, generate_qr, get_payment_status, list_history, list_sessions). Verbs and nouns are clearly chosen and consistent.
With 5 tools, the server is well-scoped for its purpose of handling crypto payments. It covers creation, generation, status checks, and history listing without being overly numerous or sparse.
The tool set covers ERC-20 sessions well (create, status, list) but lacks a status checker for QR-generated payments (native tokens/SPL). This is a notable gap that could cause agents to be unable to confirm payment completion for those types.
Maintenance
Related MCP Connectors
Non-custodial crypto payments for AI assistants: balances, payments, and create payment links.
Non-custodial payment links and drafts for BTC, Lightning, USDC, EURC, SOL and ETH. Payer signs.
Keyless non-custodial crypto payments for AI agents: payment links and tip jars, no API key.
Pay-per-call MCP tools via x402 (USDC on Base): QR codes, images, text analysis, web fetch.
Related MCP Servers
- FlicenseAqualityBmaintenanceAccept crypto payments on Algorand, VOI, Hedera & Stellar. Create hosted checkout links, verify on-chain payments, and generate MPP/x402/AP2 challenges from any MCP client. Supports all 16 AlgoVoi networks (USDC + native on mainnet + testnet).112-
- FlicenseAqualityDmaintenanceEnables to generate, decode, and validate PayBySquare QR codes for Slovak payments, with MCP integration for use with Claude Desktop and other MCP clients.42-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to manage Bitcoin micropayments, service offers, and escrow contracts through MCP tools, without requiring a Lightning node.8 npmMIT
- AlicenseAqualityDmaintenanceKeyless crypto payments for AI agents. One MCP call turns any wallet address into a non-custodial crypto payment link or tip jar, no API key and no account, with funds settling straight to your wallet at a 0% platform fee (USDC/USDT, BTC, LTC, DASH, DOGE, ZCASH).341 npmMIT