SmoothSend MCP Server
This MCP server helps AI assistants integrate SmoothSend's gasless transaction services for Aptos and Avalanche (AVAX) by providing documentation, code snippets, credit estimation, and address lookups.
Get documentation for sections like overview, installation, quickstart, API reference, examples, and billing (Aptos) plus AVAX-specific docs.
Estimate monthly credit costs based on gas usage, gas price, APT price, and transaction volume.
Look up Aptos mainnet token addresses for USDC, USDT, WBTC, USDe, and USD1.
Get AVAX deployed contract addresses (EntryPoint, VerifyingPaymaster, SimpleAccountFactory) and supported tokens for Fuji and mainnet.
Fetch ready-to-use code snippets for patterns like wallet adapter setup, per-function gasless routing, USDC transfers, fee preview, error handling, testnet setup, and AVAX-specific integrations (wagmi, Privy, backend).
Provide direct resource access to documentation pages via URIs for AI assistants to read.
Provides guidance and code snippets for integrating SmoothSend gasless transactions into Next.js applications, including wallet adapter setup and error handling.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@SmoothSend MCP Servershow me how to send USDC on Aptos without the user paying for gas"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@smoothsend/mcp
MCP (Model Context Protocol) server for SmoothSend. Enables AI assistants in Cursor, Claude Desktop, Windsurf, and other MCP-compatible tools to help developers integrate gasless transactions on Aptos and Avalanche (AVAX).
What it does
Once configured, AI assistants in your editor can:
Answer questions about the SmoothSend SDK and API — Aptos (fee-payer gasless) and AVAX (ERC-4337 account abstraction)
Generate integration code for any use case, including wagmi, Privy, and backend/Node patterns on AVAX
Estimate monthly credit costs based on your transaction volume
Look up Aptos mainnet token addresses (USDC, USDT, WBTC, USDe, USD1)
Look up AVAX deployed contract addresses (EntryPoint, VerifyingPaymaster, SimpleAccountFactory) and supported tokens, per network (Fuji / mainnet)
Pull up full documentation for any section (installation, quickstart, examples, billing, and the AVAX equivalents)
Related MCP server: gulltoppr
Install
npm install -g @smoothsend/mcpOr run directly with npx (no install needed):
npx @smoothsend/mcpConfigure
Cursor
Add to ~/.cursor/mcp.json (or your project's .cursor/mcp.json):
{
"mcpServers": {
"smoothsend": {
"command": "npx",
"args": ["@smoothsend/mcp"]
}
}
}Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"smoothsend": {
"command": "npx",
"args": ["@smoothsend/mcp"]
}
}
}Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"smoothsend": {
"command": "npx",
"args": ["@smoothsend/mcp"]
}
}
}Tools
Tool | Description |
| Get documentation for a section. Aptos: |
| Estimate monthly Aptos credits given |
| Get Aptos mainnet asset address for |
| Get AVAX deployed contract addresses (EntryPoint, VerifyingPaymaster, SimpleAccountFactory) and supported tokens for |
| Get a code snippet. Aptos: |
Resources
Resources are doc pages that AI assistants can read directly:
URI | Content |
| Overview, quick start, pricing (Aptos) |
| Installation guide (Aptos) |
| Step-by-step quickstart (Aptos) |
| Full API reference (Aptos) |
| Real-world code examples (Aptos) |
| Pricing and credit details |
| AVAX overview — ERC-4337, sponsorship modes, how it differs from Aptos |
| Step-by-step AVAX quickstart — wagmi and Privy paths |
| Full AVAX API reference — provider, hooks, |
| Real-world AVAX examples — wagmi, Privy, and backend/Node |
Example prompts
Once configured, try asking your AI assistant:
"How do I add SmoothSend to my Next.js app?"
"Show me how to send USDC without the user needing APT"
"My dApp does ~5000 contract calls per month at 200 gas each. How much will SmoothSend cost?"
"What's the USDC asset address on Aptos mainnet?"
"How do I handle SmoothSend errors when credits run out?"
"How do I sponsor gas for my wagmi dApp on Avalanche?"
"What's the VerifyingPaymaster address on Avalanche Fuji?"
"How do I submit a sponsored AVAX transaction from a backend script?"
"How do I use SmoothSend with a Privy embedded wallet on Avalanche?"
Development
# Install dependencies
npm install
# Build TypeScript
npm run build
# Type check
npm run typecheck
# Run locally
node dist/index.jsLinks
Available Tools
4 toolsestimate_creditsA
Estimate the monthly SmoothSend credit cost for a dApp based on transaction volume and type. Returns per-transaction fee and monthly total.
| Name | Required | Description | Default |
|---|---|---|---|
| gas_used | Yes | Gas units used per transaction (from Aptos Explorer "Gas Used" field). Typical values: APT transfer ~7, token transfer ~24, contract call ~200, DeFi ~1000. | |
| gas_unit_price | No | Gas unit price in octas (from Aptos Explorer). Default is 100 octas if unsure. | |
| apt_price_usd | No | Current APT price in USD. Used to calculate USD cost. Default is 8.0 if unsure. | |
| volume | Yes | Expected number of transactions per month. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool returns per-transaction fee and monthly total, which clarifies output behavior, but lacks details on error handling, rate limits, authentication needs, or whether it performs calculations locally versus querying external data. The description adds some value but leaves gaps in behavioral context.
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 highly concise and front-loaded, consisting of two sentences that directly state the tool's purpose and output without any wasted words. Every sentence earns its place by providing essential information, making it easy to scan and understand quickly.
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 no annotations and no output schema, the description partially compensates by specifying return values (per-transaction fee and monthly total). However, for a tool with 4 parameters and calculations, it lacks details on formula, assumptions, or error cases. It's adequate but has clear gaps in contextual richness for a cost-estimation tool.
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%, so the input schema already documents all parameters thoroughly with examples and defaults. The description adds no additional parameter semantics beyond what's in the schema, such as explaining relationships between parameters or edge cases. Baseline 3 is appropriate as the schema does the heavy lifting.
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's purpose with specific verbs ('estimate', 'returns') and resources ('monthly SmoothSend credit cost for a dApp'), distinguishing it from sibling tools like get_code_snippet or get_docs. It explicitly mentions the calculation is based on transaction volume and type, which adds specificity beyond a generic estimation tool.
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 estimating credit costs based on transaction data, but provides no explicit guidance on when to use this tool versus alternatives or any prerequisites. It doesn't mention scenarios where it might not be applicable or compare it to other cost-estimation methods, leaving usage context inferred rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_code_snippetB
Get a ready-to-use code snippet for a specific SmoothSend integration pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| use_case | Yes | The integration pattern to get code for. "wallet-adapter-setup" makes all transactions gasless. "use-smooth-send" is for per-function routing (some functions gasless, others not). |
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 of behavioral disclosure. It states the tool retrieves code snippets but doesn't disclose behavioral traits such as whether it's read-only, if there are rate limits, authentication requirements, or what the output format looks like (e.g., code language, structure). This leaves significant gaps for an AI agent to understand how to invoke it effectively.
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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core action and resource, making it easy to parse. Every part of the sentence earns its place by conveying essential 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?
Given the tool's complexity (single parameter with full schema coverage, no output schema, no annotations), the description is minimally adequate. It explains what the tool does but lacks details on behavioral aspects and usage context. Without annotations or an output schema, more information on return values or operational constraints would improve completeness for effective agent use.
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 100% description coverage, with a clear enum and descriptions for the use_case parameter. The tool description doesn't add any parameter-specific information beyond what's in the schema, such as syntax or format details. Since schema coverage is high, the baseline score of 3 is appropriate, as the schema does the heavy lifting without additional value from the description.
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's purpose: 'Get a ready-to-use code snippet for a specific SmoothSend integration pattern.' It specifies the verb ('Get') and resource ('code snippet') with context about SmoothSend integration patterns. However, it doesn't explicitly differentiate from sibling tools like get_docs, which might also provide code-related information.
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 no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like get_docs or estimate_credits, nor does it specify prerequisites or contexts where this tool is preferred. The usage is implied through the parameter description but not explicitly stated in the tool description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_docsA
Get SmoothSend documentation for a specific topic. Use this to answer questions about installation, integration, API methods, examples, or billing.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | The documentation section to retrieve. Use "overview" for general info and pricing, "api-reference" for method signatures and 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 of behavioral disclosure. It implies a read-only operation by using 'Get', but doesn't explicitly state if it's safe, requires authentication, has rate limits, or what the output format is. For a tool with no annotations, this is a moderate gap, as it provides basic intent but misses key behavioral details like response structure or potential errors.
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, front-loaded with the core purpose and followed by usage guidance. Every word earns its place, with no redundancy or fluff. It efficiently conveys essential information in a compact form, making it highly readable and effective for an AI agent.
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 low complexity (1 parameter, no output schema, no annotations), the description is moderately complete. It covers purpose and usage but lacks details on behavioral aspects like output format or error handling. Without annotations or an output schema, the agent might struggle with what to expect from the tool, leaving some gaps in understanding how to interpret results.
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 100% description coverage, with the 'topic' parameter well-documented via enum and description. The description adds value by listing example topics ('installation, integration, API methods, examples, or billing'), which reinforces the parameter's purpose and provides context beyond the schema's enum values. This compensates well, though it doesn't add syntax or format details, so it's not a perfect score.
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's purpose: 'Get SmoothSend documentation for a specific topic.' It specifies the verb ('Get') and resource ('SmoothSend documentation'), and while it doesn't explicitly differentiate from sibling tools, the focus on documentation distinguishes it from tools like 'estimate_credits' or 'get_token_address'. However, it doesn't mention how it differs from 'get_code_snippet', which might also relate to documentation, keeping it from a perfect score.
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 clear context on when to use this tool: 'to answer questions about installation, integration, API methods, examples, or billing.' This gives explicit guidance on the types of queries it handles. However, it doesn't specify when not to use it or mention alternatives among sibling tools, such as whether 'get_code_snippet' is for code examples instead of general documentation, so it lacks full exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_token_addressA
Get the Aptos Mainnet fungible asset address for a supported token (USDC, USDT, WBTC, USDe, USD1). Required when using ScriptComposerClient.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | The token symbol to look up. |
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 of behavioral disclosure. It describes the tool's purpose and context but lacks details on behavioral traits such as rate limits, error handling, or response format. The description does not contradict any annotations, but it could be more informative about operational aspects.
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 appropriately sized and front-loaded, consisting of two concise sentences that directly state the tool's purpose and usage context without any wasted words. Every sentence earns its place by providing essential information efficiently.
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 low complexity (single parameter with enum) and no output schema, the description is reasonably complete. It covers the purpose, supported tokens, and usage context. However, it could be more complete by including information about the return value or error cases, which would help an agent understand what to expect from the tool's execution.
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 100% description coverage, with a well-documented 'symbol' parameter including an enum. The description adds value by specifying the supported tokens (USDC, USDT, WBTC, USDe, USD1), which aligns with the enum, but does not provide additional semantic details beyond what the schema already covers. This meets the baseline for high schema coverage.
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 specific action ('Get'), resource ('Aptos Mainnet fungible asset address'), and scope ('for a supported token'). It distinguishes this tool from siblings by specifying its unique function of retrieving token addresses, unlike estimate_credits, get_code_snippet, or get_docs which serve different purposes.
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 clear context for when to use this tool ('Required when using ScriptComposerClient'), indicating its dependency or prerequisite scenario. However, it does not explicitly state when not to use it or name alternatives for similar functions, which prevents a perfect score.
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.1- First observed
estimate_credits - First observed
get_code_snippet - First observed
get_docs - First observed
get_token_address
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose with no overlap: cost estimation, code retrieval, documentation access, and token address lookup. An agent can easily differentiate between them based on their specific functions.
All tools follow a consistent verb_noun pattern (estimate_credits, get_code_snippet, get_docs, get_token_address) with 'get' used for three tools and 'estimate' for one, maintaining readability and predictability throughout.
Four tools are reasonable for a SmoothSend integration server, covering key areas like cost, code, docs, and tokens. It's slightly lean but not incomplete, as the tools address core needs without unnecessary bloat.
The tool set covers essential integration tasks: planning (estimate), implementation (code snippet), reference (docs), and configuration (token address). Minor gaps might exist, such as direct API calls or transaction execution, but agents can work around these using the provided tools.
Maintenance
Related MCP Connectors
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
- ZapierOAuthcom.zapier.mcp
Zapier MCP connects AI tools like Claude, ChatGPT, and Cursor to over 8,000 apps and 30,000+ actions, enabling AI to perform real-world tasks such as sending messages, searching data, scheduling events, and updating records. It acts as a translator between AI tools and apps, handling authentication, rate limits, and retries automatically, transforming AI from a conversational tool into a functional extension of your business stack.
The OpenZeppelin Solidity Contracts MCP server integrates OpenZeppelin's security and style rules into AI-driven development workflows, enabling AI assistants to generate safe, correct, and production-ready smart contracts. It automatically validates generated code against OpenZeppelin standards (including imports, modifiers, naming conventions, and security checks) and supports various contract types including ERC-20, ERC-721, ERC-1155, Stablecoins, RWA, Governor, and Account contracts through prompt-driven workflows.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Solana blockchain, manage accounts and tokens, and develop and deploy smart contracts end-to-end.4-
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to resolve smart contract ABIs, read, encode, simulate, and prepare transactions across multiple blockchains via a REST API or MCP server, with no signing required.-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to interact with Sui Network through tools for balance checks, transfers, swaps, staking, and more.16Apache 2.0

xian-mcp-serverofficial
FlicenseBqualityAmaintenanceEnables AI assistants to interact with the Xian blockchain, including wallet management, token transfers, smart contract operations, DEX trading, and indexed blockchain data queries through a unified MCP and HTTP interface.35-