Abstraxn Agent Layer MCP server
online · 100% uptimeio.github.sandeep-antier/abstraxn·v1.0.0·4 starsAbstraxn: public Web3 MCP server for read-only chain data and pay-per-call relays.
4 stars
Reviews
Write oneNobody has reviewed Abstraxn Agent Layer yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Abstraxn Agent Layer tools (12, 1 write)
write = sends, deletes, buys or postsmarket.cryptoFreeCrypto market-data lookups (CoinGecko-sourced pricing and market data), paid per call in USDC/USDm directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`: - search ($0.001): fuzzy-search coins by name/symbol. Requires `q`. Call this first to resolve a coin id before using price_feed or historical_data, both of which need an id (e.g. "bitcoin"), not a ticker. - price_feed ($0.001): current price (and optionally 24h change / market cap) for one or more coins. Requires `ids` (comma-separated coin ids). Optional `currencies` (comma-separated fiat codes, default "usd"), `include_24h` (default true), `include_mcap` (default false). - market_data ($0.002): coins ranked by market cap (or another order) — use for "top N coins" / market overview questions. Optional `currency` (default "usd"), `category`, `order` (default "market_cap_desc"), `limit` (1-250, default 100), `page` (default 1). - historical_data ($0.003): historical price/market cap/volume series for one coin. Requires `id`. Optional `currency` (default "usd"), `days` (lookback window or "max", default 30), `interval` (e.g. "daily"). - trending ($0.001): currently trending coins by search interest. No extra parameters. - token_prices ($0.005): DEX-derived prices for up to 200 tokens in one call. Requires `tokens`, an array of `{chain, token_address}` objects. Prices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.
network.blocknumberFreeRead the current chain head — EVM block number or Solana slot — for a supported network. Free, read-only, no wallet needed. Use this to confirm a network is progressing before submitting a transaction, correlate off-chain events with on-chain height, or choose a safe starting point when scanning logs. Pass `chain` as one of: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia. Omit `chain` (or pass `all`) to query every resolvable chain in one call.
network.gas_infoFreeGet the current gas price and EIP-1559 fee hints for an EVM chain. Free, read-only, no wallet needed. Use this to estimate transaction cost or explain fees to a user before they send a transaction. `chain` is required. Supported chains: ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.
network.prepare_transferwrite actionFreeBuild an **unsigned** native or token transfer transaction for a supported chain, from an explicit sender you provide. Free, read-only against the chain (nonce/gas/fees are read live) — this tool never signs, broadcasts, holds a key, or enforces any allowlist/spend limit. This server never binds a caller wallet, so `from` is always required. Supported chains: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia. Token (`token` field): - Solana: 'SOL' (native, default) or 'USDC'. - EVM: native symbol (default), 'USDC', 'USDC.e' where configured for the chain, or a raw 0x contract address (decimals are read live from the contract; `token_decimals` is only a fallback if that read fails). Gas: the sender pays gas in the chain's native token once they sign — this server never sponsors it. Raw calldata (EVM only): pass `data` (hex, 0x-prefixed) with `to` as the contract call target and `amount` as the native value to send (use "0" for a pure call). Privacy (`private`, EVM only): requests SKALE BITE encryption, only supported on skale-base-sepolia, where it defaults to true — pass `private: false` there for a plaintext transfer. Rejected on every other chain.
network.token_infoFreeRead ERC-20 token metadata — name, symbol, decimals, total supply — for a token contract on an EVM chain. Free, read-only. Pass `token` as a contract address (0x…) or symbol `USDC` / `USDC.e` on chains where a lookup is configured. This server never holds a caller wallet, so no balance is ever returned — only public token metadata. Both `chain` and `token` are required. Supported chains: ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.
network.token_priceFreeGet a spot token price from a public market API (CoinGecko). Free — no payment or wallet needed. Defaults to ETH/USD.
network.transaction_statusFreeCheck the status of a transaction. Supports both EVM (transaction hash) and Solana (signature). Free, read-only. Use this to confirm a transfer landed, debug a failed transaction, or report status to a user. Both `chain` and `transaction_hash` are required. Available chains: solana, solana-devnet, ethereum, sepolia, polygon, amoy, bsc, bsc-testnet, base, base-sepolia, tempo, tempo-testnet, arbitrum-one, monad, skale-base-sepolia.
places.lookupFreePlaces, solar, and aerial-view lookups, paid per call directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`: - text_search_full ($0.08): full-detail place text search. Requires `textQuery`. Optional `maxResultCount` (1-5, default 5), `excludeFields` (default ["photos"]), `pageToken`, `locationBias` ({circle:{center:{latitude,longitude},radius}}), `includedType`, `languageCode` (default "en"), `openNow`, `minRating` (0-5), `priceLevels`. - text_search_partial ($0.02): same as text_search_full but returns fewer fields per place — cheaper for quick lookups. Same parameters. - nearby_search_full ($0.08): full-detail search for places within a radius. Requires `locationRestriction` ({circle:{center:{latitude,longitude},radius (0-50000)}}) — do NOT send a bare top-level latitude/longitude/radius. Optional `includedTypes`/`excludedTypes` (max 50 each), `maxResultCount` (1-5, default 5), `excludeFields` (default ["photos"]), `languageCode` (default "en"), `rankPreference` (POPULARITY default, or DISTANCE). - nearby_search_partial ($0.02): same as nearby_search_full, fewer fields, cheaper. Same parameters. - place_details_full ($0.05): full details for one place. Requires `placeId` — the exact place id returned by an earlier text_search/nearby_search result; do not invent or guess it. Optional `excludeFields` (default ["photos"]), `languageCode` (default "en"). - place_details_partial ($0.02): same as place_details_full, fewer fields, cheaper. Same parameters. - solar_building_insights ($0.02): rooftop solar potential for one location. Requires `latitude` (-90..90) and `longitude` (-180..180). Optional `requiredQuality` (LOW/MEDIUM/HIGH, default HIGH). - solar_data_layers ($0.08): raw solar data layers for an area. Requires `latitude`, `longitude`. Optional `radiusMeters` (0.1-175, default 50), `view` (default "FULL_LAYERS"), `requiredQuality` (default HIGH), `pixelSizeMeters` (default 0.25, documented as one of 0.1/0.25/0.5/1.0 but not schema-enforced), `exactQualityRequired` (default false). - solar_rgb_image ($0.05): renders one of the solar_data_layers assets as a viewable image. Either `id` (the exact asset id already returned by an earlier solar_data_layers call — "Mode A"; do not invent or guess it) OR both `latitude` and `longitude` ("Mode B") is required — provide exactly one mode, not both. Optional `radiusMeters` (0.1-100, default 30, Mode B only), `layer` (default "rgb"), `month` (1-12), `hour` (0-23), `format` (png/jpeg, default png), `scale` (1-2, default 1), `crop` (default false), `quality` (1-100, default 85). - aerial_view_lookup_video ($0.01): check whether a rendered aerial-view video already exists / poll its render status. Exactly one of `address` or `videoId` is required — `videoId` must be the exact value returned by an earlier aerial_view_render_video call; do not invent or guess it. - aerial_view_render_video ($0.01): kick off rendering a new aerial-view video for an address. Requires `address`. Poll aerial_view_lookup_video with the returned videoId until ready. Pagination: text_search_full/partial and nearby_search_full/partial return `nextPageToken` when more results exist — repeat the ORIGINAL call (same textQuery / locationRestriction / etc.) with `pageToken` set to page further. `pageToken` must be the exact `nextPageToken` value from that earlier response — do not invent or guess it. excludeFields: colon-separated nested-path syntax trims nested response fields, e.g. "organization:technologies" excludes just that sub-field. All place-search/details actions default-exclude `photos` if `excludeFields` is omitted — pass `excludeFields: []` to include photos. Prices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.
social.profile_lookupFreeResolve person / social-profile identity for a batch of records, paid per call directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Supports two modes per record: - Fuzzy match: supply `first_name` and/or `last_name` plus `emails` and/or `phones`. - Reverse lookup: supply only `emails` and/or `phones`, no name required. Every record needs a caller-chosen `record_id` (any string) to correlate it with its match in the response, plus at least one non-empty first_name/last_name, or at least one non-empty entry in emails, or at least one non-empty entry in phones — an empty array counts as not provided. Optional top-level `match_condition_fields` (e.g. `["linkedin_url"]`) restricts results to matches that include ALL of the named fields. The exact response shape (field names/nesting per match) is passed through unchanged from the upstream provider — read whatever comes back rather than assuming a fixed shape. Charges ~$0.02 per call — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.
travel.searchFreeFlight and hotel search, paid per call in USDC/USDm directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`: - flight_search ($0.02): live flight fares via Google Flights. Requires `origin`, `destination`, `departureDate`. Optional `returnDate`, `adults`, `children`, `travelClass`, `stops`, `maxPrice`, `currency`. - hotel_search ($0.02): live hotel prices/ratings via Google Hotels. Requires `q` (city or hotel name), `checkInDate`, `checkOutDate`. Optional `adults`, `children`, `sortBy`, `minPrice`, `maxPrice`, `hotelClass`, `currency`. Prices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.
weather.forecastFreeWeather data from a global weather data provider — current conditions, short-range forecast, astronomy, historical, marine, and location search. Free, read-only, no wallet needed. Every action requires `q`, a location: a city name (e.g. "Paris"), "lat,lon" (e.g. "48.85,2.35"), a US/UK/Canadian postal code, or an IATA airport code. Pick one `action`: - current: current conditions for `q`. Optional `aqi` (default false) adds basic air quality data. - forecast: forecast for `q`. Optional `days` — this deployment runs on a data plan capped at 3 days, so only 1-3 is accepted; omit for the provider default. Optional `aqi`, `alerts` (default false, adds active weather alerts for the location where available). - astronomy: sunrise/sunset/moonrise/moonset/moon phase for `q` on `date` (required, YYYY-MM-DD). - search: resolve a fuzzy `q` into matching locations (name, region, country, lat/lon) — use this first if you only have an approximate place name and need to disambiguate. - history: past weather for `q` on `date` (required, YYYY-MM-DD, must be yesterday). This deployment enforces a free-tier data plan that only allows yesterday's date — any other date is rejected before a provider call is made. - marine: marine/sailing conditions for `q`. This deployment runs on a data plan limited to 1 day of data with no tide information. Results are for general informational purposes only — do not use them as the sole basis for decisions involving personal safety, aviation, marine navigation, or emergency planning.
web3.lookupFreeMulti-chain wallet, token, ENS, and transaction-simulation lookups, paid per call in USDC/USDm directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`: - wallet_balances ($0.005): token balances for a wallet across 20+ chains. Requires `chain` and `address`. - wallet_transactions ($0.005): transaction history with asset transfers for a wallet. Requires `address`. Optional `chain`, `limit`. - wallet_pnl ($0.01): realized and unrealized profit/loss per token for a wallet. Requires `chain` and `address`. - token_metadata ($0.002): name/symbol/decimals for a token contract. Requires `chain` and `address`. - ens_resolve ($0.001): resolve an ENS name to an Ethereum address. Requires `name`. - ens_reverse ($0.001): resolve an Ethereum address to its ENS name. Requires `address`. - tx_simulate ($0.01): simulate an EVM transaction before sending — gas estimate, execution trace, revert reason. Requires `network_id`, `from`, `to`. Optional `value`, `data`, `gas`. Prices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.
Public scan report
scanner v0.1.10 · 2026-11-04 · same rubric, same numbers if you re-run it
- –Code scanremote-only server, no package to scann/a
- Live reliabilityremote reachable in 2628ms17/20
- Tool poisoning12 tool descriptions checked13/15
- Auth qualityopen endpoint exposes 1 write-action tools with no auth3/15
- Maintenancelast push 75 days ago12/15
- Maintainer identitynamespace and repository owner differ; GitHub account older than a year6/10
Findings (2)
- highWrite-action tools reachable without authentication
auth.open-write - lowUnusually long tool description (over 2,000 characters)
poison.long-descriptiontool places.lookup: …Places, solar, and aerial-view lookups, paid per call directly from the caller's own wallet via the x402 protocol — no Abstraxn account needed. Pick one `action`: - text_search_full ($0.08): full-detail place text search. Requires `textQuery`. Optional `maxResultCount` (1-5, default 5), `excludeFields` (default ["photos"]), `pageToken`, `locationBias` ({circle:{center:{latitude,longitude},radius}}), `includedType`, `languageCode` (default "en"), `openNow`, `minRating` (0-5), `priceLevels`. - text_search_partial ($0.02): same as text_search_full but returns fewer fields per place — cheaper for quick lookups. Same parameters. - nearby_search_full ($0.08): full-detail search for places within a radius. Requires `locationRestriction` ({circle:{center:{latitude,longitude},radius (0-50000)}}) — do NOT send a bare top-level latitude/longitude/radius. Optional `includedTypes`/`excludedTypes` (max 50 each), `maxResultCount` (1-5, default 5), `excludeFields` (default ["photos"]), `languageCode` (default "en"), `rankPreference` (POPULARITY default, or DISTANCE). - nearby_search_partial ($0.02): same as nearby_search_full, fewer fields, cheaper. Same parameters. - place_details_full ($0.05): full details for one place. Requires `placeId` — the exact place id returned by an earlier text_search/nearby_search result; do not invent or guess it. Optional `excludeFields` (default ["photos"]), `languageCode` (default "en"). - place_details_partial ($0.02): same as place_details_full, fewer fields, cheaper. Same parameters. - solar_building_insights ($0.02): rooftop solar potential for one location. Requires `latitude` (-90..90) and `longitude` (-180..180). Optional `requiredQuality` (LOW/MEDIUM/HIGH, default HIGH). - solar_data_layers ($0.08): raw solar data layers for an area. Requires `latitude`, `longitude`. Optional `radiusMeters` (0.1-175, default 50), `view` (default "FULL_LAYERS"), `requiredQuality` (default HIGH), `pixelSizeMeters` (default 0.25, documented as one of 0.1/0.25/0.5/1.0 but not schema-enforced), `exactQualityRequired` (default false). - solar_rgb_image ($0.05): renders one of the solar_data_layers assets as a viewable image. Either `id` (the exact asset id already returned by an earlier solar_data_layers call — "Mode A"; do not invent or guess it) OR both `latitude` and `longitude` ("Mode B") is required — provide exactly one mode, not both. Optional `radiusMeters` (0.1-100, default 30, Mode B only), `layer` (default "rgb"), `month` (1-12), `hour` (0-23), `format` (png/jpeg, default png), `scale` (1-2, default 1), `crop` (default false), `quality` (1-100, default 85). - aerial_view_lookup_video ($0.01): check whether a rendered aerial-view video already exists / poll its render status. Exactly one of `address` or `videoId` is required — `videoId` must be the exact value returned by an earlier aerial_view_render_video call; do not invent or guess it. - aerial_view_render_video ($0.01): kick off rendering a new aerial-view video for an address. Requires `address`. Poll aerial_view_lookup_video with the returned videoId until ready. Pagination: text_search_full/partial and nearby_search_full/partial return `nextPageToken` when more results exist — repeat the ORIGINAL call (same textQuery / locationRestriction / etc.) with `pageToken` set to page further. `pageToken` must be the exact `nextPageToken` value from that earlier response — do not invent or guess it. excludeFields: colon-separated nested-path syntax trims nested response fields, e.g. "organization:technologies" excludes just that sub-field. All place-search/details actions default-exclude `photos` if `excludeFields` is omitted — pass `excludeFields: []` to include photos. Prices above are indicative — the exact charge for a given call is always whatever the live payment challenge specifies for that request. The first call (no `paymentPayload`) returns `paymentRequired`; retry with the same arguments plus `paymentPayload` to complete payment and get the real result.…
How Abstraxn Agent Layer compares
Against every graded AI and agents MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 68/100
- higher than 33% of 4,460 AI and agents servers
- Tools
- 12
- the typical AI and agents server has 6
- Tools that change things
- 8%
- typical: 0%. Fewer write tools means less an agent can break
- Uptime
- 100%
- of our recent checks; the typical remote AI and agents server answers 100%
- Response time
- 486 ms
- faster than 28% of 2,331 AI and agents servers
- GitHub stars
- 4
- more than 77% of 2,711 AI and agents servers
What its tools let an agent do: 11 read · 1 change
Install Abstraxn Agent Layer in Claude Code, Cursor or VS Code
claude mcp add --transport http abstraxn https://mcp.abstraxn.com/mcp
What the publisher says
From the Abstraxn Agent Layer repository's README, as published. We do not edit it. Read it on GitHub
Abstraxn Public Web3 MCP Service
A free, public MCP (Model Context Protocol) server for Web3 data. Point any MCP client — Claude Desktop, Cursor, your own agent — at it and it can read live chain data (block height, gas, transaction status, ERC-20 info, spot prices), look up weather forecasts, build unsigned EVM/Solana transfer transactions, and, for a handful of pay-per-call tools, look up market data, wallets/tokens/ENS, travel search, places/solar/aerial-view data, and social-profile identity.
No API key, no account, no signup. Free tools are open to anyone; paid tools are settled directly from the caller's own wallet via the x402 payment protocol — this service never holds or signs funds on your behalf.
Built on the official @modelcontextprotocol/sdk and NestJS 11.
Contents
- Quick start
- Use it from Claude Desktop / Cursor
- Available tools
- Calling tools directly (curl)
- Configuration
- How it works
- Database
- Security
- Scripts
- Contributing
Quick start
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- Health check: GET http://localhost:3011/health
- MCP endpoint: POST http://localhost:3011/mcp
- API docs (health only): http://localhost:3011/api/docs
Database migrations run automatically on boot — no separate CLI step needed.
Use it from Claude Desktop / Cursor
Add this to your MCP client's config (e.g. claudedesktopconfig.json or Cursor's mcp.json):
{
"mcpServers": {
"abstraxn-public-web3": {
"url": "http://localhost:3011/mcp"
}
}
}Restart the client and the tools below become available to it — no further setup.
Available tools
Tools are namespaced by area (network., market., web3., travel., places., social.) so an MCP client can browse them as a tree rather than a flat list.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Abstraxn Agent Layer: common questions
- Is Abstraxn Agent Layer MCP server safe?
- With care: it is graded C, so read the findings first (68/100). Read the Abstraxn Agent Layer safety report
- How do I install Abstraxn Agent Layer?
- It runs remotely at mcp.abstraxn.com. Add it to Claude Code, Cursor, VS Code or Claude Desktop with the snippets above, or call it through the mcp.market gateway without installing anything.
- Does Abstraxn Agent Layer need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Abstraxn Agent Layer maintained?
- The last commit was 75 days ago (2026-08-21). The latest release is v1.0.0.
- Is Abstraxn Agent Layer up?
- 100% of our last 28 checks got an answer. We check remote servers about four times a day.
- What can I use instead of Abstraxn Agent Layer?
- Servers from other publishers that do the same job: Ausca MCP server, agent-device MCP server and Spotifyscraper MCP server.
- How does Abstraxn Agent Layer compare with other AI and agents MCP servers?
- safety score 68/100 (higher than 33% of 4,460 AI and agents servers); tools 12 (the typical AI and agents server has 6); tools that change things 8% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.
Alternatives to Abstraxn Agent Layer
Same job from other publishers: the closest match first, then the best rated.
- AuscaPay-per-call APIs and MCP services for agents, no accounts or keys, with verifiable receipts.not reviewedEstablishedA
- agent-deviceOpen source device layer for AI agents: control mobile, web, TV, and desktop apps over MCPnot reviewedWidely usedA
- SpotifyscraperPublic Spotify metadata, lyrics and podcasts for LLM agents. No API key, read-only.not reviewedEstablishedB
- Agent RecallCorrection-first agent memory. Precision KPI tracks if agents heed warnings. 5 layers, local-only.not reviewedEstablishedA
- GrandetCheapest API for any model across official, inference and relay providers; find free creditsnot reviewedEstablishedA