Skip to main content
Glama
Logitale

toreador-mcp-server

by Logitale

@toreador/mcp-server

Official Model Context Protocol server for Toreador. Lets Claude Desktop, Cursor, and any other MCP-capable assistant generate crypto QR codes and manage payment sessions on your behalf.

toreador-mcp-server MCP server

⚠️ Requires a Pro plan API key (tdr_...) from your Toreador dashboard. The MCP server runs locally and uses your key to call https://toreador.io/api/v1/public.

Tools exposed

Tool

What it does

toreador_generate_qr

Generate a QR code for native tokens (BTC, ETH, SOL, POL) or Solana SPL (USDC on Solana). Returns the on-chain payment URI and a base64 PNG data URI.

toreador_create_session

Create a hosted payment session for ERC-20 stablecoins (USDC, USDT, EURC) on Ethereum, Polygon or Base. Returns a session ID, security code and a hosted payment URL.

toreador_get_payment_status

Poll the status of an ERC-20 payment session: pending / submitted / confirming / completed / expired / failed.

toreador_list_history

List the 50 most recent QR code generations.

toreador_list_sessions

List the 50 most recent ERC-20 payment sessions.

Related MCP server: paybysquare-generator

Install in Claude Desktop

Edit Claude Desktop's config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%/Claude/claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Add the toreador entry under mcpServers:

{
  "mcpServers": {
    "toreador": {
      "command": "npx",
      "args": ["-y", "@toreador/mcp-server"],
      "env": {
        "TOREADOR_API_KEY": "tdr_your_key_here"
      }
    }
  }
}

Restart Claude Desktop. You should see the 5 Toreador tools in the tools menu.

Install in Cursor

In Cursor settings → MCP → "Add new MCP server", paste:

{
  "command": "npx",
  "args": ["-y", "@toreador/mcp-server"],
  "env": { "TOREADOR_API_KEY": "tdr_..." }
}

Example prompts

Once installed, try these prompts in your MCP client:

  • "Generate a Bitcoin QR code for 0.001 BTC to bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh."

  • "Create a USDC payment session for 50 USDC on Polygon to 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18."

  • "What's the status of session ses_123?"

  • "Show me my last 10 payment sessions."

The assistant will pick the right tool, call Toreador, and return the result — including the QR code data URI which most clients can render inline.

Configuration

Environment variable

Default

Description

TOREADOR_API_KEY

required

Your Pro plan API key. Format: tdr_....

TOREADOR_BASE_URL

https://toreador.io/api/v1/public

Override the API base URL (useful for testing).

TOREADOR_TIMEOUT_MS

30000

Per-request timeout in milliseconds.

Trust and safety

  • Local only. The MCP server runs on your machine via stdio. Your API key never leaves your computer except in outbound HTTPS calls to toreador.io.

  • Non-custodial. Toreador never holds funds. The MCP tools only generate QR codes and read session state — they cannot move money.

  • Read or create, no destruction. Tools either generate new payment objects or read existing ones. There is no "delete" or "refund" tool.

Build from source

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

The server will boot, print [toreador-mcp] ready (5 tools registered) to stderr, and wait for MCP requests on stdin.

License

MIT

Available Tools

5 tools
toreador_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesStablecoin symbol. One of: USDC, USDT, EURC.
chainIdYesEVM chain. One of: ethereum, polygon, base.
amountYesAmount in the token's natural unit (e.g. "100" for 100 USDC).
recipientAddressYesDestination EVM wallet address (0x...).

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesToken symbol. One of: BTC, ETH, SOL, POL, USDC (Solana only).
chainIdYesChain identifier. One of: bitcoin, ethereum, polygon, base, solana.
amountYesAmount 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.
recipientAddressYesDestination wallet address. Must match the chain (bech32 for BTC, EIP-55 for EVM, base58 for Solana).

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYesSession ID returned by toreador_create_session.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters5/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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. Dates show when Glama detected each change.

  1. 5 tool updatesv0.2.5
    • First observedtoreador_create_session
    • First observedtoreador_generate_qr
    • First observedtoreador_get_payment_status
    • First observedtoreador_list_history
    • First observedtoreador_list_sessions

TDQS

A4.3/5.0
Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables to generate, decode, and validate PayBySquare QR codes for Slovak payments, with MCP integration for use with Claude Desktop and other MCP clients.
    4
    2
    -
  • A
    license
    A
    quality
    B
    maintenance
    Keyless 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).
    3
    67
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Logitale/toreador-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server