mcpField
A
Abstraxn Agent Layer

Abstraxn Agent Layer

远程服务
github.com/Abstraxn-Labs金融数据410 周前更新
代码仓库

关于 Abstraxn Agent Layer

Abstraxn Agent Layer 是面向 MCP 客户端和 Agent 的公共 Web3 MCP 服务,提供链上数据及相关查询。它同时提供免费的读取和未签名交易工具,以及由调用者钱包直接结算的按次付费中继服务。

主要功能

  1. 01查询 EVM 与 Solana 链及交易
  2. 02获取 Gas、ERC-20 信息和代币现价
  3. 03构建未签名的转账交易
  4. 04提供天气查询工具
  5. 05付费查询市场、Web3、旅行、地点和身份信息

适用场景

  1. 01查看区块高度、交易状态或 Gas 数据
  2. 02准备转账交易但不签名或广播
  3. 03查询市场、钱包、旅行或地点数据
  4. 04批量解析社交资料身份

MCP 相关

服务通过 HTTP MCP 端点提供带命名空间的 Web3、网络、天气、市场、旅行、地点和社交资料工具。付费工具通过 x402 支付挑战处理,由调用者的钱包直接结算。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.abstraxn.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

12
参数类型必填说明
chainenum否区块链网络;或使用 "all"(默认值)表示所有受支持的链。以下值之一:solana、solana-devnet、ethereum、sepolia、polygon、amoy、bsc、bsc-testnet、base、base-sepolia、tempo、tempo-testnet、arbitrum-one、monad、skale-base-sepolia、allsolana | solana-devnet | ethereum | sepolia | polygon | amoy | bsc | bsc-testnet | base | base-sepolia | tempo | tempo-testnet | arbitrum-one | monad | skale-base-sepolia | all

详细介绍

Abstraxn 公共 Web3 MCP 服务

许可证:MIT Node

面向 Web3 数据的免费公共 MCP(Model Context Protocol)服务。将任意 MCP 客户端(Claude Desktop、Cursor 或你自己的 Agent)连接到此服务,即可读取实时链上数据(区块高度、gas、交易状态、ERC-20 信息、现货价格)、查询天气预报、构建未签名的 EVM/Solana 转账交易;此外,少数按次付费的工具还可查询市场数据、钱包/代币/ENS、旅行搜索、地点/太阳能/航拍视图数据,以及社交资料身份信息。

无需 API 密钥、无需账户、无需注册。 免费工具人人可用;付费工具通过 x402 支付协议直接从调用者自己的钱包结算——此服务绝不会代替你持有或签署资金。

基于官方 @modelcontextprotocol/sdk 和 NestJS 11 构建。

目录


快速开始

git clone https://github.com/Abstraxn-Labs/abstraxn-agent-layer.git
cd abstraxn-agent-layer
npm install
cp .env.example .env
# Edit .env: Postgres connection + UPSTREAM_RELAY_BASE_URL / ENRICHMENT_RELAY_BASE_URL
# (each required for its own group of paid tools) + WEATHERAPI_KEY (required for weather.forecast)
npm run start:dev
  • 健康检查:GET http://localhost:3011/health
  • MCP 端点:POST http://localhost:3011/mcp
  • API 文档(仅健康检查):http://localhost:3011/api/docs

数据库迁移会在启动时自动运行——无需单独执行 CLI 步骤。

通过 Claude Desktop / Cursor 使用

将以下内容添加到 MCP 客户端的配置中(例如 claude_desktop_config.json 或 Cursor 的 mcp.json):

{
  "mcpServers": {
    "abstraxn-public-web3": {
      "url": "http://localhost:3011/mcp"
    }
  }
}

重启客户端后,下方的工具即可使用——无需进行其他设置。

可用工具

工具付费?功能
network.blocknumber否查询当前 EVM 区块编号或 Solana 槽位。可查询单条链,也可一次查询全部。
network.transaction_status否根据哈希查询 EVM 或 Solana 上的交易/签名。
network.gas_info否查询 EVM 链的当前 gas 价格及 EIP-1559 费用提示。
network.token_info否查询 ERC-20 名称 / 符号 / 小数位数 / 总供应量。
network.token_price否通过 CoinGecko 查询现货价格(默认为 ETH/USD)。
network.prepare_transfer否根据明确指定的 from/to/amount 构建未签名的原生代币/ERC-20/SPL 转账交易。绝不签名或广播。
weather.forecast否查询当前天气状况、天气预报、天文信息、地点搜索、历史天气和海洋天气,共 6 项操作。
market.crypto是查询加密货币市场数据(来源于 CoinGecko),共 6 项操作。
web3.lookup是多链钱包 / 代币 / ENS / 交易模拟查询,共 7 项操作。
travel.search是搜索航班和酒店,共 2 项操作。
places.lookup是查询地点 / 太阳能 / 航拍视图,共 11 项操作。
social.profile_lookup是对一批记录进行个人 / 社交资料身份解析。

工具按领域命名(network.*、market.*、web3.*、travel.*、places.*、 social.*),MCP 客户端可按树状结构浏览,而不是查看扁平列表。

付费工具的工作方式: 无需支付即可调用工具,此时会收到 paymentRequired 挑战(而非错误)。钱包客户端会为其签名,并在重试相同调用时设置 paymentPayload——费用由你的钱包直接支付;此服务仅负责转发请求。

直接调用工具(curl)

大多数人会使用 MCP 客户端(见上文),但如果你想直接通过脚本调用,此端点也提供基于 HTTP 的纯 JSON-RPC:

BASE=http://localhost:3011
ACCEPT='Accept: application/json, text/event-stream'   # required by the MCP spec

# 1. Initialize a session
curl -s -X POST "$BASE/mcp" -H 'Content-Type: application/json' -H "$ACCEPT" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0"}}}'

# 2. List available tools
curl -s -X POST "$BASE/mcp" -H 'Content-Type: application/json' -H "$ACCEPT" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

# 3. Call a tool
curl -s -X POST "$BASE/mcp" -H 'Content-Type: application/json' -H "$ACCEPT" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"network.token_price","arguments":{"symbol":"bitcoin"}}}'

GET /mcp 会按设计返回 405——每次调用都是无状态的,因此没有可恢复的会话。

配置

将 .env.example 复制为 .env。除标记为必填的项外,所有配置均有安全默认值:

变量必填说明
PORT否HTTP 端口(默认 3011)
POSTGRES_HOST / PORT / USER / PASSWORD / DB否Postgres 连接配置,仅用于滥用追踪
PUBLIC_MCP_RATE_LIMIT_PER_MIN / _WINDOW_MS否全局 IP 速率限制(默认每分钟 30 次)
CHAIN_RPC_*否各链的 EVM RPC 覆盖配置 — 未设置时使用公共默认值(见 src/mcp/utils/chain-registry.util.ts)
SOLANA_RPC_URL / SOLANA_DEVNET_RPC_URL否Solana 集群 RPC 覆盖配置
WEATHERAPI_KEY是weather.forecast 的免费 API 密钥 — 可在 WeatherAPI.com 的注册页面获取(免费套餐每月提供 100K 次调用,不使用任何付费功能)。未设置时,weather.forecast 会返回明确错误,而不会导致整个服务失败。
WEATHERAPI_BASE_URL是weather.forecast 的上游基础 URL — 源代码中没有提交默认值,因此在设置前,该工具会正常报错(.env.example 中提供 https://api.weatherapi.com/v1;可覆盖此值,以便在本地测试时指向模拟服务或自托管镜像)。
UPSTREAM_RELAY_BASE_URL是market.crypto / web3.lookup / travel.search 背后的上游中继基础 URL — 未提交默认值,因此在设置前,这 3 个工具都无法使用
ENRICHMENT_RELAY_BASE_URL是places.lookup / social.profile_lookup 背后的上游中继基础 URL — 与 UPSTREAM_RELAY_BASE_URL 指向不同的上游,未提交默认值

工作原理

MCP client (Claude Desktop, Cursor, your agent)
    → POST /mcp  (this service, stateless — a fresh McpServer per request)
    → free tools: direct chain RPC / CoinGecko calls
    → paid tools: relayed upstream, settled by the caller's wallet via x402

这是一个独立部署的单体服务 — 它与任何其他 Abstraxn 服务都不共用工作区或数据库。这是有意为之:一些 MCP 注册目录要求公共 MCP 服务位于自己的仓库中,只有一个路由和一组固定工具,并且可以端到端审查。

技术栈: Node.js 20+ · NestJS 11 · @modelcontextprotocol/sdk ^1.30.0(官方 SDK)· PostgreSQL + TypeORM · @x402/core · viem(EVM)+ 原始 JSON-RPC(Solana 读取)· @solana/web3.js + @solana/spl-token(Solana 转账构建)· @skalenetwork/bite(SKALE 隐私加密转账)· helmet、 @nestjs/throttler

数据库

Postgres 仅用于滥用追踪 — 不存在租户、策略或配置表:

表用途
observed_ips每个调用方 IP 对应一行,记录累计调用次数和最后访问时间。
observed_wallets每个通过 x402 付款的钱包地址对应一行。
public_mcp_transactions已完成付费调用的仅追加历史记录。

如果无法连接 Postgres,调用仍会成功 — 追踪写入采用尽力而为的方式,绝不会阻塞或导致真实 MCP 请求失败。

安全

由于任何人都可以不使用密钥调用此服务,有几项重要约束:

  • 不存在 SSRF 攻击面: 每个出站 URL(链 RPC、上游中继、CoinGecko)都来自服务端配置 — 没有工具会接受调用方提供的 URL。
  • 速率限制是全局的,并以 IP 为键 — 在没有账户的情况下,这是唯一可用的调控手段。如果服务部署在反向代理之后,请在 main.ts 中设置 app.set('trust proxy', ...),否则限流器会限制代理,而不是真实调用方。
  • 除数据库密码和 WEATHERAPI_KEY 外,不存在其他密钥,二者仅通过环境变量配置,且绝不会记录到日志中 — weather.forecast 会将密钥作为查询参数构建其提供商请求 URL,但所有日志行只会包含操作名称和错误消息,绝不包含 URL 本身。
  • CORS 有意设为通配符 — 此处不会有任何租户专属内容跨越来源边界。

发现安全问题?请先阅读 CONTRIBUTING.md,再提交公开问题。

脚本

脚本描述
npm run start:dev以监听模式运行
npm run build编译到 dist/
npm run start:prod运行编译后的构建(dist/main)
npm run lintESLint
npm testJest — 单元测试、SDK 级集成测试和 HTTP 冒烟测试

贡献

欢迎提交问题和 PR — 如何添加新工具以及项目的完成标准,请参阅 CONTRIBUTING.md。

许可证:MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。