Skip to main content
Glama

agent-utils-mcp

Eight utilities your agent can call — geocoding, weather, web search, URL-to-Markdown, randomness and compliance lookups — paid per call in USDC on Base via x402, from your own wallet.

Try it in 30 seconds

This package is not on npm yet. Install it straight from GitHub — this is the command that works today:

npx -y github:donnywin85/agent-utils-mcp

That starts the MCP server on stdio and it will list all eight tools with no wallet and no key. You only need a funded key to actually call one.

Add it to Claude Code — one line, and the tools are live in your next session:

claude mcp add agent-utils --env EVM_PRIVATE_KEY=0xyour_disposable_base_key -- npx -y github:donnywin85/agent-utils-mcp

Related MCP server: NEX Agent Co. MCP Server

What it costs

tool

what it does

price

geocode

address or place name → coordinates, with ranked candidates

$0.01

reverse_geocode

coordinates → street address

$0.01

weather

current conditions + up to a 7-day forecast for any coordinates

$0.01

web_search

free-text query → ranked organic results (no ads)

$0.01

url_to_markdown

article or PDF URL → clean Markdown

$0.01

secure_random

CSPRNG bytes, or uniform integers in a range

$0.01

sanctions_screen

OFAC SDN / consolidated sanctions screening for a name

$0.01

lei_lookup

GLEIF Legal Entity Identifier for a company

$0.03

Prices live in one table in src/index.mjs; npm run pricecheck compares it against the gateway's own /openapi.json and fails on any drift.

These figures were read from the gateway's /openapi.json on 2026-09-07 and npm run pricecheck passed against it on the same run. You are charged the gateway's price, not this table's — re-run the check before trusting it.

You supply the wallet. This package ships no keys.

The server signs each payment with a key it reads from its own env, which you set in your MCP client's config. Nothing is bundled, and no key is ever sent anywhere except as an EIP-3009 signature to the x402 facilitator.

  • Fund a wallet with a few dollars of USDC on Base.

  • It needs zero ETH — payments use transferWithAuthorization and the facilitator broadcasts and pays the gas.

  • Use a low-balance, disposable wallet. The key sits in your client config in plaintext; any process that can read that file can spend from it.

Client config

Claude Desktop (claude_desktop_config.json), Cursor, or any MCP host:

{
  "mcpServers": {
    "agent-utils": {
      "command": "npx",
      "args": ["-y", "github:donnywin85/agent-utils-mcp"],
      "env": {
        "EVM_PRIVATE_KEY": "0xyour_disposable_base_wallet_key"
      }
    }
  }
}

Tools list fine without a key — you can inspect what is on offer before funding anything. The first paid call is where a missing key is reported, in as many words:

/geocode failed: EVM_PRIVATE_KEY is not set. Add it to this MCP server's env in
your client config.

Argument names are short: geocode takes q, not query.

What each call returns

Every tool returns the upstream JSON plus, on a successful payment, the settlement transaction hash:

(paid $0.01 USDC — settle tx 0xb2397b96…)

That is deliberate: you can verify on Basescan that you were charged once, for what you got, rather than taking the server's word for it.

Design notes

The first six were not chosen by guesswork. They are the categories that USDC receipts across 1,062 x402 seller wallets showed agents actually pay for — geocoding (56 payers), weather (21), article/PDF→Markdown (7), randomness (6), web search (6).

The upstreams follow two rules worth knowing as a caller:

  • A missing value is null with a reason, never a plausible-looking number. Weather reports no reading rather than zero; reverse-geocode says "ocean or unmapped" rather than inventing an address.

  • The limits of an answer are stated in the answer. Forecast rows are labelled model output; search says results are unverified and that its ranking is DuckDuckGo's; web_search's count is a maximum, not a promise, because a result whose destination cannot be resolved is dropped rather than guessed at.

url_to_markdown refuses private, loopback, link-local and cloud-metadata addresses, and re-validates every redirect hop — it fetches caller-supplied URLs from inside a private network, so that guard is not optional.

Where to go next

  • You want the same utilities for free, without a wallet — dex-data-mcp carries geocode, reverse_geocode, get_weather, search, url_to_markdown and get_random on a keyless free tier, alongside 16 more tools. If you do not need this server's compliance pair, start there: claude mcp add dex-data -- npx -y dex-data-mcp.

  • You want cross-DEX market data — arb-dex-mcp (keyless) or bsc-dex-spread-mcp (paid, one tool).

  • You want the human-approval loop these services are operated by — approval-queue-starter, one file, zero deps.

  • Something is broken, or you want volume pricing — the gateway returns a contact address on every 402, and a human reads it.

Licence

MIT.

Available Tools

8 tools
geocodeAddress or place name to coordinatesA

Forward geocoding: turn an address or place name into latitude/longitude. Returns ranked candidates with display name, coordinates, bounding box, address components, and an importance score so you can judge ambiguity rather than assume the first hit is right. Data from OpenStreetMap Nominatim. Costs $0.003 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: q (required).

lei_lookupLegal Entity Identifier lookup by company nameA

Legal Entity Identifier (LEI) lookup from the GLEIF golden copy. Search by company NAME, not just by identifier — knowing the LEI already is the hard part. Returns the LEI, registered legal name, previous names, legal form, jurisdiction, legal and headquarters addresses, and the registration record. LAPSED, RETIRED and ANNULLED entities are returned with a lapsed flag rather than hidden, because a filtered record and no record look identical to a caller. Costs $0.03 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: q (required), lei, limit.

reverse_geocodeCoordinates to addressA

Reverse geocoding: turn latitude/longitude into a street address with structured components. Returns null with a reason rather than a guess when the point is ocean or unmapped. Data from OpenStreetMap Nominatim. Costs $0.003 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: lat (required), lon (required).

sanctions_screenScreen a name against OFAC sanctions listsA

OFAC sanctions screening. Checks a person or company against the US Treasury SDN and Consolidated lists — 19,600+ designated parties and 40,000+ names including every alias — and returns the matched record with its sanctions programs, designation remarks and a match score. Word order does not matter, because OFAC stores people as "SURNAME, Given". riskLevel is hit, possible or clear, and "clear" is scoped to the lists named in the response: EU, UK and UN are NOT screened. If the lists cannot be loaded you get an error, never a clear — a screening tool that says "no match" when it has no list is worse than one that is down. Costs $0.03 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: name (required), type, limit, minScore.

secure_randomCryptographically secure randomnessA

Cryptographically secure random values from a CSPRNG: either random bytes (hex and base64url) or uniform integers in an inclusive range. Integers are rejection-sampled, so the distribution is uniform rather than modulo-biased. For randomness nobody else could have seen, generate it yourself — this is for callers that cannot. Costs $0.003 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: max, min, bytes, count.

url_to_markdownArticle or PDF URL to clean MarkdownA

Fetch a public article or PDF URL and return clean Markdown, using Firefox reader-mode extraction for HTML and text extraction for PDFs. Returns title, byline, excerpt, word count and a truncation flag. JavaScript is not executed, so client-rendered pages return an explicit not_extractable error rather than an empty page passed off as the article. Private, loopback and cloud-metadata addresses are refused. Costs $0.003 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: url (required).

weatherCurrent conditions and forecast for coordinatesA

Weather for any coordinates worldwide: current temperature, feels-like, humidity, precipitation, wind speed, gusts and direction, plus up to a 7-day daily forecast with highs, lows, precipitation totals and probability. Every condition carries both the standard WMO code and plain text. Forecast rows are model output and the response says so. Pair with geocode to go from a place name to coordinates. Data from Open-Meteo. Costs $0.003 USDC per call on Base mainnet (eip155:8453), paid automatically from the wallet in EVM_PRIVATE_KEY.

Inputs: lat (required), lon (required), days.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 8 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: geocoding (forward and reverse), web content extraction, weather, search, random generation, sanctions screening, and LEI lookup. There is no overlap or ambiguity between any pair of tools.

    Naming Consistency3/5

    All names are lowercase with underscores, but they follow different grammatical patterns: single verbs (geocode, reverse_geocode), noun phrases (weather, secure_random), object-verb compounds (web_search, sanctions_screen), and transformation descriptions (url_to_markdown). The naming is readable and descriptive but not consistently patterned.

    Tool Count5/5

    With 8 tools, the server is well-scoped for a general-purpose utility kit. Each tool offers a useful, independent capability without excessive overlap or bloat.

    Completeness4/5

    The utility set covers each advertised domain reasonably well: forward and reverse geocoding, HTML/PDF extraction, current and forecast weather, web search, secure randomness, and two specialized lookups. Minor gaps exist (e.g., no pagination for web_search, no historical weather), but no critical dead ends are apparent.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables any MCP client to access 11 AI inference and data tools, including chat, code, vision, embeddings, crypto prices, weather, geolocation, currency exchange, and WHOIS, with a free tier and paid USDC-on-Base endpoints.
      Apache 2.0
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables AI agents to access 11 paid x402 endpoints as standard MCP tools, paying per call in USDC on Base without API keys, covering chat, code, vision, embeddings, crypto prices, weather, geolocation, forex, and WHOIS data.
      -
    • A
      license
      Not graded
      quality
      B
      maintenance
      A hosted MCP service providing 25 deterministic utility tools, each paid per call through Base-USDC x402 and requiring the buyer's own compatible wallet for approval.
      MIT
    • A
      license
      Not graded
      quality
      C
      maintenance
      Enables MCP clients to call pay-per-use tools for search, PDF processing, web reading, extraction, summarization, fact-checking, translation, jobs, and discovery, with each call paid in USDC on Base via x402 and no API key or account required.
      AGPL 3.0