Skip to main content
Glama

basezap-mcp

Un servidor MCP (Protocolo de Contexto de Modelo) que expone las herramientas del agente de propinas de BaseZap a cualquier cliente MCP — Claude Desktop, Cursor, Claude Code, etc.

Este servidor es de solo lectura / no custodio por diseño: nunca retiene claves privadas, nunca firma nada y nunca transmite una transacción. Solo obtiene información de la plataforma, calcula cotizaciones de tarifas y construye datos de llamada sin firmar para transferencias ERC-20 que un cliente separado conectado a una billetera debe firmar y enviar.

Herramientas

  • get_platform_info — cadena, dirección de USDC, tarifa de plataforma (pbs), billetera de tarifas.

  • get_tip_quote — dado un monto en USDC, devuelve la división exacta de la tarifa del creador/plataforma.

  • build_tip_calldata — dada una dirección de destinatario + monto, devuelve datos de llamada sin firmar para ambas partes de una propina. Nunca firma ni envía nada.

  • resolve_farcaster_username — resuelve un nombre de usuario de Farcaster a su dirección de billetera verificada (usa directamente el endpoint /api/resolve-user de BaseZap).

Related MCP server: x402-bazaar-mcp

Instalar

npm install --ignore-scripts
npm run build

(--ignore-scripts evita problemas de compilación de módulos nativos en algunos entornos, por ejemplo, Termux/Android — es inofensivo usarlo en cualquier lugar).

Ejecución independiente (para pruebas)

npm start

O prueba una sola llamada a una herramienta directamente a través de stdio sin ningún cliente MCP:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_tip_quote","arguments":{"amountUsdc":1}}}' | node build/index.js

Configuración de Claude Desktop

Agrega esto a tu claude_desktop_config.json (Configuración → Desarrollador → Editar Config):

{
  "mcpServers": {
    "basezap": {
      "command": "node",
      "args": ["/absolute/path/to/basezap-mcp/build/index.js"],
      "env": {
        "BASEZAP_USE_X402": "false"
      }
    }
  }
}

Reemplaza la ruta con la ruta absoluta real a build/index.js en tu máquina. Reinicia Claude Desktop después de editar la configuración.

Modo gratuito vs. de pago (x402)

Por defecto (BASEZAP_USE_X402=false o sin establecer), el servidor llama al endpoint gratuito de BaseZap (/api/agent). Establece BASEZAP_USE_X402=true para enrutar las llamadas a través del endpoint x402 de pago en su lugar ($0.001 USDC por llamada).

Importante: establecer BASEZAP_USE_X402=true por sí solo NO hace que el servidor pague automáticamente — recibirás un claro error HTTP 402 Payment Required en cada llamada a menos que hayas configurado el pago automático por separado (ver más abajo) o estés usando un cliente/puerta de enlace MCP que ya maneje el pago x402 por ti.

Opcional: pago automático x402

Consulta AUTOPAY.md para obtener una guía desde cero sobre cómo hacer que este servidor pague sus propias tarifas x402 automáticamente usando una billetera con fondos. Léelo atentamente antes de usarlo — implica poner una clave privada real en una variable de entorno, y un servidor de pago automático mal configurado puede gastar dinero real silenciosamente en cada llamada a una herramienta. NO está conectado por defecto, y debes entender exactamente qué hace antes de habilitarlo.

Contrato de solicitud verificado

La forma exacta de solicitud/respuesta en la que se basa este servidor se confirmó en vivo contra el endpoint real /api/agent (no se asumió de la documentación):

{ "tool": "get_tip_quote", "args": { "amount_usdc": 1 } }

devuelve:

{ "total_usdc": 1, "creator_receives_usdc": 0.95, "platform_fee_usdc": 0.05, "platform_fee_bps": 500 }

Nota: la API en sí misma usa nombres de campo en snake_case dentro de args — las entradas de herramientas MCP de este servidor usan camelCase amigable (amountUsdc) y traducen internamente, por lo que esto solo es relevante si estás modificando el servidor en sí.

Available Tools

4 tools
build_tip_calldataA

Given a recipient address and a USDC amount, returns UNSIGNED ERC-20 transfer calldata for both legs of a BaseZap tip (creator leg + platform fee leg). This tool never holds keys, never signs, and never broadcasts anything — the returned calldata must be signed and sent by a separate wallet-connected client.

NameRequiredDescriptionDefault
recipientYesThe recipient's wallet address, e.g. 0xabc123...
amountUsdcYesTotal tip amount in USDC, before the fee split

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description fully bears the transparency burden. It states the tool is read-only (never signs or broadcasts), returns unsigned calldata, and describes the output as two parts (creator + platform fee). No contradictions.

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 action and key constraints. Every phrase adds value—no fluff, jargon-only terms (UNSIGNED, ERC-20, BaseZap) are domain-appropriate.

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?

The tool builds calldata for two legs—commendable to mention. But without an output schema, the description could specify the exact format (e.g., hex string, object). The fee split details are omitted, though sibling get_tip_quote may provide them. Nearly complete but has a minor gap in output specification.

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?

Schema covers both parameters with descriptions (recipient with pattern, amountUsdc with exclusive minimum). The description adds value by linking them to the output context (USDC amount before fee split, recipient for calldata). The 100% schema coverage raises the baseline to 3, and the description provides moderate extra meaning.

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?

Description clearly states the tool builds unsigned ERC-20 transfer calldata for both legs of a BaseZap tip, using a verb ('builds') and resource ('calldata for BaseZap tip'). It distinguishes from sibling tools like get_tip_quote (which provides quotes) and get_platform_info (which returns platform details).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly warns that the tool never keys/signs/broadcasts, requiring external signing—a clear usage constraint. However, it does not specify when to prefer this tool over alternatives (e.g., after quoting with get_tip_quote) or mention prerequisites like wallet connectivity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_platform_infoA

Returns BaseZap's static platform configuration: chain, USDC contract address, platform fee (basis points), and the platform fee wallet address. Read-only, no arguments needed.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full responsibility. It explicitly states 'Read-only,' which is the key behavioral trait, and notes no arguments are needed, reducing ambiguity. It could further disclose whether the data is cached or if authentication is required, but for static platform config the description is sufficiently transparent.

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 two sentences: the first lists the purpose and return data, the second confirms read-only and no arguments. Every word contributes meaning, there is no repetition or fluff. Perfectly structured for quick parsing.

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 simplicity (no parameters, no output schema, low complexity), the description is fully complete. It covers purpose, behavior, input requirements, and expected output content. No additional information is needed for correct tool invocation.

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?

There are zero parameters, and the schema coverage is 100%. The description adds value by explicitly stating 'no arguments needed,' clarifying there is no input required. It also previews the output fields (chain, USDC address, fee, wallet), compensating for the lack of an output 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 returns BaseZap's static platform configuration, listing specific fields (chain, USDC contract, platform fee, fee wallet). It ends with 'Read-only, no arguments needed,' which reinforces its purpose. The sibling tools involve tipping and username resolution, so this tool is distinct and easily differentiated.

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 explains what the tool does and notes it takes no arguments, giving basic usage guidance. However, it does not provide explicit when-to-use or when-not-to-use scenarios, nor does it reference alternatives among the sibling tools. For a simple read-only config tool, this is minimally adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_tip_quoteA

Given a USDC tip amount, returns the exact fee split: how much the creator/recipient receives vs. how much goes to BaseZap's platform fee wallet. Does not send anything — quote only.

NameRequiredDescriptionDefault
amountUsdcYesTip amount in USDC, e.g. 1 for $1.00

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It transparently states that the tool is read-only and does not trigger any side effects ('Does not send anything'). It also discloses the exact output (fee split between creator/recipient and platform wallet). While it does not mention authentication or rate limiting, the disclosed behaviors are sufficient for a simple quote 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?

The description consists of two sentences with zero wasted words. The first sentence immediately states the core function and output. The second clarifies what it does not do. The structure is front-loaded and perfectly concise.

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 a single parameter and no output schema, the description fully explains the input (USDC amount) and the output (fee split details). It also clarifies the tool's non-execution behavior. There are no gaps—the AI agent can confidently decide whether to invoke this tool and understand its return value.

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 coverage is 100%, with a clear parameter description and a constraint (exclusiveMinimum). The tool description does not add any new meaning beyond what the schema already provides (e.g., it restates 'USDC tip amount'). Following the rubric, baseline 3 is appropriate when schema coverage is high and the description adds no extra semantic value.

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 uses a specific verb ('returns') and a precise resource ('exact fee split'). It clearly distinguishes this tool from the sibling 'build_tip_calldata' by explicitly stating 'Does not send anything — quote only.' The purpose is unambiguous and well-differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly tells the AI when to use this tool (to get a fee quote before sending a tip) and when not to use it (because it does not send anything). However, it does not explicitly name the alternative tool 'build_tip_calldata' or provide an explicit when-not-to-use condition, leaving the decision slightly less guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resolve_farcaster_usernameA

Resolves a Farcaster username (with or without @) to their profile info and verified wallet address on Base. Useful for looking up a tip recipient's address before calling build_tip_calldata.

NameRequiredDescriptionDefault
usernameYesA Farcaster username, e.g. 'afifarioss' or '@afifarioss'

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description bears full responsibility for behavioral disclosure. It states the tool resolves a username to profile info and verified wallet address, implying a read operation. However, it does not mention error behavior (e.g., for nonexistent usernames), rate limits, authentication needs, or the structure of the returned profile info. This is adequate for a simple lookup but leaves gaps.

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: the first states the core functionality, the second provides a usage context linking to a sibling tool. No extraneous words, no repetition of schema details, and the structure is front-loaded with the main action.

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 tool's simplicity (1 param, no output schema), the description covers the essential purpose and a concrete use case. It mentions the key output elements (profile info and wallet address on Base). However, it does not describe the return format or error conditions, which a lacking output schema makes more necessary. Minor gap, but still largely complete for the context.

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 description coverage is 100% for a single parameter, with the schema already providing type, constraints, and an example. The description adds the note about accepting usernames 'with or without @', which aligns with the schema example. The additional context about the resolution output (profile info and wallet address) gives purpose to the parameter but does not deeply expand semantics beyond what the schema conveys.

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 action ('Resolves a Farcaster username') and the specific resource (username to profile info and verified wallet address on Base). It distinguishes itself from siblings by explicitly linking to build_tip_calldata as a downstream use case. The verb 'Resolves' is specific and the resource is well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear when-to-use scenario: 'Useful for looking up a tip recipient's address before calling build_tip_calldata.' This establishes context and a workflow. However, it does not explicitly state when not to use the tool or mention alternative siblings for resolution.

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.

  1. 4 tool updatesv1.0.0
    • First observedbuild_tip_calldata
    • First observedget_platform_info
    • First observedget_tip_quote
    • First observedresolve_farcaster_username

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: platform info, tip quote, calldata building, and username resolution. There is no overlap or ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case: get_platform_info, get_tip_quote, build_tip_calldata, resolve_farcaster_username. No mixing of conventions.

Tool Count5/5

Four tools is well-scoped for a focused tipping service. Each tool earns its place, covering the essential operations without unnecessary bloat.

Completeness5/5

The tool surface covers the full workflow for preparing a tip: platform config, fee quote, address resolution, and calldata generation. The omission of signing and broadcasting is intentional and not a gap.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Eight crypto and DeFi data tools for AI agents: prices, gas, one ParaSwap route quote, GoPlus token security and top-holder samples, DefiLlama yields, Hyperliquid/dYdX funding, and observed wallet balances. Inspect prices free; pay 0.001–0.008 USDC per call on Base through x402. No API key or subscription.
    8
    135 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    MCP server exposing x402 Bazaar's paid Base APIs (token risk/honeypot, prices, gas, wallet intel, tx decode + AI utilities) as agent tools. Your agent pays per call in USDC over x402 — no API keys, no signup.
    17
    115 npm
    MIT