basezap-mcp
basezap-mcp
BaseZap의 팁 지급 에이전트 도구를 모든 MCP 클라이언트(Claude Desktop, Cursor, Claude Code 등)에 노출하는 MCP(Model Context Protocol) 서버입니다.
이 서버는 설계상 읽기 전용/비수탁형입니다. 절대 개인 키를 보유하지 않으며, 서명하지 않고, 트랜잭션을 브로드캐스트하지 않습니다. 플랫폼 정보를 가져오고, 수수료 견적을 계산하며, 별도의 지갑 연결 클라이언트가 서명하고 전송할 서명되지 않은 ERC-20 전송 calldata를 구축하기만 합니다.
도구
get_platform_info— 체인, USDC 주소, 플랫폼 수수료(bps), 수수료 지갑.get_tip_quote— USDC 금액을 입력하면 정확한 제작자/플랫폼 수수료 분할을 반환합니다.build_tip_calldata— 수신자 주소와 금액을 입력하면 팁의 두 구간에 대한 서명되지 않은 calldata를 반환합니다. 절대 서명하거나 전송하지 않습니다.resolve_farcaster_username— Farcaster 사용자 이름을 확인하여 확인된 지갑 주소로 변환합니다(BaseZap의/api/resolve-user엔드포인트를 직접 사용).
Related MCP server: x402-bazaar-mcp
설치
npm install --ignore-scripts
npm run build(--ignore-scripts는 일부 환경(예: Termux/Android)에서 네이티브 모듈 빌드 문제를 방지합니다 — 어디서든 사용해도 무해합니다.)
독립 실행(테스트용)
npm start또는 MCP 클라이언트 없이 stdio를 통해 단일 도구 호출을 직접 테스트할 수 있습니다:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_tip_quote","arguments":{"amountUsdc":1}}}' | node build/index.jsClaude Desktop 설정
이 내용을 claude_desktop_config.json에 추가하세요(설정 → 개발자 → 구성 편집):
{
"mcpServers": {
"basezap": {
"command": "node",
"args": ["/absolute/path/to/basezap-mcp/build/index.js"],
"env": {
"BASEZAP_USE_X402": "false"
}
}
}
}경로를 컴퓨터의 실제 절대 경로(build/index.js)로 바꾸세요. 구성을 편집한 후 Claude Desktop을 다시 시작하십시오.
무료 vs 유료(x402) 모드
기본값(BASEZAP_USE_X402=false 또는 설정되지 않음)에서는 서버가 BaseZap의 무료 엔드포인트(/api/agent)를 호출합니다. BASEZAP_USE_X402=true로 설정하면 대신 유료 x402 엔드포인트를 통해 호출이 라우팅됩니다(호출당 $0.001 USDC).
중요: BASEZAP_USE_X402=true만 설정하면 서버가 자동으로 지불하지 않습니다 — 별도로 자동 지불을 설정하지 않았거나(아래 참조) 이미 x402 지불을 처리하는 MCP 클라이언트/게이트웨이를 사용하지 않는 한 모든 호출에서 명확한 HTTP 402 Payment Required 오류가 발생합니다.
선택 사항: x402 자동 지불
자금이 있는 지갑을 사용하여 이 서버가 자체 x402 수수료를 자동으로 지불하도록 하는 처음부터 시작하는 가이드는 AUTOPAY.md를 참조하세요. 사용하기 전에 신중히 읽으세요 — 실제 개인 키를 환경 변수에 넣는 작업이 포함되며, 잘못 구성된 자동 지불 서버는 모든 도구 호출에서 조용히 실제 돈을 소비할 수 있습니다. 기본적으로 연결되어 있지 않으며, 활성화하기 전에 정확히 무엇을 하는지 이해해야 합니다.
검증된 요청 계약
이 서버가 의존하는 정확한 요청/응답 형태는 실제 /api/agent 엔드포인트에 대해 실시간으로 확인되었습니다(문서에서 추정한 것이 아님):
{ "tool": "get_tip_quote", "args": { "amount_usdc": 1 } }반환:
{ "total_usdc": 1, "creator_receives_usdc": 0.95, "platform_fee_usdc": 0.05, "platform_fee_bps": 500 }API 자체는 args 내부에서 snake_case 필드 이름을 사용합니다 — 이 서버의 MCP 도구 입력은 사용자 친화적인 camelCase(amountUsdc)를 사용하고 내부적으로 변환하므로, 서버 자체를 수정하는 경우에만 관련됩니다.
Available Tools
4 toolsbuild_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.
| Name | Required | Description | Default |
|---|---|---|---|
| recipient | Yes | The recipient's wallet address, e.g. 0xabc123... | |
| amountUsdc | Yes | Total tip amount in USDC, before the fee split |
TDQS
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.
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.
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.
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.
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.
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.
| 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 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| amountUsdc | Yes | Tip amount in USDC, e.g. 1 for $1.00 |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| username | Yes | A Farcaster username, e.g. 'afifarioss' or '@afifarioss' |
TDQS
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.
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.
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.
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.
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.
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.
4 tool updates
v1.0.0- First observed
build_tip_calldata - First observed
get_platform_info - First observed
get_tip_quote - First observed
resolve_farcaster_username
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: platform info, tip quote, calldata building, and username resolution. There is no overlap or ambiguity.
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.
Four tools is well-scoped for a focused tipping service. Each tool earns its place, covering the essential operations without unnecessary bloat.
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.
Related MCP Connectors
Read-only MCP gateway. Paid verify is $0.01 USDC on Base.
Paid MCP tools behind one endpoint. Agents pay per call in USDC on Base via x402.
Monetize any MCP server: x402 paywall, pay-per-call billing in USDC on Base, agent marketplace.
Agent-commerce MCP server for x402/USDC payments and affiliate splits on Base.
Related MCP Servers
- AlicenseAqualityCmaintenanceEight 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.8135 npmMIT
- AlicenseBqualityAmaintenanceMCP 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.17159 npmMIT
- AlicenseAqualityDmaintenanceA read-only MCP server that lets any MCP-compatible AI agent inspect wallets and contracts on Base directly through natural conversation.6MIT
- FlicenseAqualityBmaintenanceMCP server for a live x402 payment gateway on Base (USDC). Lets AI agents discover, preview for free, then pay per call — with prepaid gasless payments, signed receipts, and delta delivery.7-