AssetFare
Có giới hạn, không lưu ký, quy trình báo giá và thực thi chưa ký từ Solana SOL sang Base ETH dành cho các tác nhân AI. Mười ba công cụ MCP từ xa; máy chủ không bao giờ nhận khóa riêng tư và không bao giờ ký hoặc gửi giao dịch.
Máy chủ MCP được lưu trữ
npx add-mcp 'https://api.assetfare.dev/mcp'Cài vào Claude Code, Codex, Cursor và nhiều công cụ khác
Tài liệu
AssetFare MCP — Solana to Base or Arbitrum bridge API
An MCP client/server wrapper for AssetFare's capped, non-custodial Solana SOL → Base ETH or Arbitrum ETH workflows. Use it when an AI agent needs a verifiable quote, bridge workflow, or unsigned execution plan without handing custody to a routing service.
MCP is optional. AssetFare's primary machine interface is the public REST API described by OpenAPI. Agents can obtain and compare a quote without installing this wrapper:
- APIs.json:
https://assetfare.dev/apis.json - OpenAPI:
https://api.assetfare.dev/openapi.json - Read-only Arazzo workflow:
https://assetfare.dev/arazzo.yaml
Safety model
- AssetFare MCP never accepts a private key and never signs or submits a transaction.
- Read-only tools expose current status, signed manifest, and quotes.
- State-changing tools only create authentication/session records or prepare/verify unsigned workflow actions. MCP clients should require user approval for those calls.
- The caller independently verifies every returned unsigned action and signs/submits with its own wallets.
Remote endpoint
https://api.assetfare.dev/mcp
Official MCP Registry server: io.github.odaiin/assetfare.
REST/OpenAPI first call
Use the public quote endpoint when an agent has not explicitly connected MCP. No API key, wallet authentication, session, signature, or transaction is required for this read-only evaluation call:
node examples/rest-quote.mjs 300
python3 examples/rest_quote.py 300
curl -sS https://api.assetfare.dev/v1/quote \
-H 'content-type: application/json' \
-d '{"from_chain":"solana","from_token":"SOL","to_chain":"base","to_token":"ETH","amount_usd":300}'
Connect a remote MCP client directly—no package installation or AssetFare API key is required:
claude mcp add --transport http assetfare https://api.assetfare.dev/mcp
{
"mcpServers": {
"assetfare": {
"url": "https://api.assetfare.dev/mcp"
}
}
}
Codex CLI and app
Add the remote server from the CLI:
codex mcp add assetfare --url https://api.assetfare.dev/mcp
Or add it to ~/.codex/config.toml or a project .codex/config.toml. The
writes approval mode prompts for tools that are not annotated read-only:
[mcp_servers.assetfare]
url = "https://api.assetfare.dev/mcp"
default_tools_approval_mode = "writes"
Gemini CLI
gemini mcp add --transport http assetfare https://api.assetfare.dev/mcp
Equivalent ~/.gemini/settings.json entry:
{
"mcpServers": {
"assetfare": {
"url": "https://api.assetfare.dev/mcp",
"type": "http",
"trust": false
}
}
}
Cursor
Add the following server to a project .cursor/mcp.json or the global
~/.cursor/mcp.json:
{
"mcpServers": {
"assetfare": {
"url": "https://api.assetfare.dev/mcp"
}
}
}
Connecting is unauthenticated. Execution tools subsequently require the wallet-bound token produced by AssetFare's non-transactional signMessage flow. Do not place that token in any MCP configuration file.
Agent skill
The portable Agent Skill is skills/assetfare-route/SKILL.md.
Skills.lc-compatible clients can install it directly from this public GitHub repository.
First-call evaluation
Run npm run first-call-eval to verify a fresh MCP client can discover the
tools, validate the signed manifest and status, and obtain a $300 quote without
creating a wallet login, session, signature, or transaction.
Use Streamable HTTP. The endpoint has no server-side API key; wallet authentication happens through the AssetFare tools.
Local stdio
The repository also contains a stdio-compatible wrapper for self-hosting. The public Registry entry uses the remote Streamable HTTP endpoint; npm publication is intentionally deferred until a separate package-release review.
Trust material
- Security contact:
security@assetfare.dev - Security policy and private reporting:
https://github.com/odaiin/assetfare-mcp/security/policy - Signed manifest:
https://api.assetfare.dev/.well-known/assetfare-manifest.json - Public signing key:
https://assetfare.dev/.well-known/assetfare-manifest.pub - Status:
https://api.assetfare.dev/v1/status - OpenAPI:
https://api.assetfare.dev/openapi.json - APIs.json:
https://assetfare.dev/apis.json - Arazzo:
https://assetfare.dev/arazzo.yaml - Server card:
https://api.assetfare.dev/.well-known/mcp/server-card.json - Agent guide:
https://assetfare.dev/llms-full.txt - Mainnet evidence:
https://assetfare.dev/evidence/ - Live same-input comparison:
https://assetfare.dev/compare/solana-to-base/
Discovery
- Official MCP Registry:
io.github.odaiin/assetfare - Smithery:
https://smithery.ai/servers/twotw55/assetfare - Glama:
https://glama.ai/mcp/connectors/io.github.odaiin/assetfare - Agent Skill:
https://www.skills.sh/odaiin/assetfare-mcp/assetfare-route
The wrapper deliberately contains no AssetFare route engine, wallets, RPC credentials, or internal operations data.
Agent use case
For a Solana-to-Base or Solana-to-Arbitrum $300 request, an agent reads the signed manifest and status, calls assetfare_quote with destination_chain, compares disclosed executable receive and ETA, and only then asks the wallet owner to approve the non-transactional login message. The agent independently signs and submits every on-chain action; this MCP server never does.
See the first-call evaluation script, the public mainnet evidence at https://assetfare.dev/evidence/, and the end-to-end case study at https://assetfare.dev/case-studies/solana-to-base-mainnet-canary/.