Skip to main content
Glama
selectarank

selectarank-mcp

Official
by selectarank

selectarank-mcp

MCP server (stdio) for the SelectaRank Data Gateway, a pay-per-call API that uses the x402 protocol with USDC on Base. It lets an AI agent discover the gateway's paid endpoints as MCP tools and, if you give it a wallet key, pay for them automatically.

MCP Registry name: io.github.selectarank/selectarank-mcp

Tools

Tools are generated from the gateway's /openapi.json at startup (a built-in copy of the list is used if it cannot be fetched).

Tool

Endpoint

Price per call (USDC)

Data source

selectarank_earthquakes

GET /v1/earthquakes/{feed}

0.002

USGS

selectarank_weather

GET /v1/weather/{lat}/{lon} (US only)

0.003

NOAA/NWS

selectarank_worldbank

GET /v1/worldbank/{country}/{indicator}

0.002

World Bank

selectarank_preflight

GET /v1/preflight?url=

0.010

Checks another x402 endpoint's 402 challenge (one unauthenticated GET, no funds move)

The earthquake, weather and World Bank tools return public-domain upstream data wrapped with source and license metadata. The gateway is a passthrough; it does not produce its own data.

Related MCP server: valorem-mev-mcp

Payment

  • Network: Base mainnet (eip155:8453), scheme exact

  • Asset: USDC, 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913

  • Recipient (payTo): 0x57a0c0b413516BbF3Fcdb88408D59B7809e3efd0

Always verify these against the live 402 response; the server returns the gateway's actual PaymentRequirements.

Install

Requires Node.js 18+.

{
  "mcpServers": {
    "selectarank": {
      "command": "npx",
      "args": ["-y", "github:selectarank/selectarank-mcp"],
      "env": { "EVM_PRIVATE_KEY": "0x..." }
    }
  }
}

Omit env to run without paying (see below). Installed straight from GitHub for now; it is not yet published to npm.

Environment variables

Variable

Required

Meaning

EVM_PRIVATE_KEY

no

Private key of a wallet holding USDC on Base. With it, tool calls pay automatically via @x402/fetch. Use a dedicated low-balance wallet. Never committed or logged by this package.

SELECTARANK_MAX_PRICE_USDC

no

Refuse to auto-pay above this amount per call. Default 0.05.

SELECTARANK_BASE_URL

no

Override the gateway URL. Default https://selectarank-data.vercel.app.

Behavior without a key

Without EVM_PRIVATE_KEY the server still starts and lists all tools. Calling a tool makes one unpaid request and returns the 402 PaymentRequirements (amount, asset, payTo, network) plus instructions for paying. Nothing is spent.

Status and limits

  • Sales to date: 0. This is a new service.

  • The data comes from USGS, NOAA/NWS and the World Bank; freshness and accuracy are theirs. No SLA.

  • You are responsible for the funds in the wallet you configure.

Development

npm install
npm run build
npm run typecheck

License

MIT

Available Tools

4 tools
selectarank_earthquakesUSGS earthquake feedB

USGS earthquake feed. Paid x402 endpoint: 0.002000 USDC per call on Base (GET /v1/earthquakes/{feed}). With EVM_PRIVATE_KEY set the call is paid automatically; otherwise the 402 payment requirements are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
feedYessignificant_week, significant_day, 4.5_week, 2.5_week, all_day, all_hour

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden and it does well on the most important trait: it is a paid x402 endpoint costing 0.002 USDC per call on Base, the call is paid automatically when EVM_PRIVATE_KEY is set, and otherwise a 402 payment requirement is returned. This is valuable, non-obvious behavioral disclosure. It still omits rate limits and response characteristics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose and then the payment/authorization behavior. No filler, though the first sentence is redundant with the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter feed tool with no output schema and no annotations, the description covers the critical thing an agent needs (payment and auth flow). It is nearly complete; only the nature/shape of the returned earthquake data is left unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already enumerates the valid feed values, so the parameter is fully documented structurally. The description adds nothing about feed semantics (e.g., what 'significant_week' vs '4.5_week' returns), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the data source (USGS) and resource (earthquakes) and even the endpoint path, but uses no verb and essentially restates the title 'USGS earthquake feed'. It does not differentiate this feed from the sibling data tools (weather, worldbank, preflight).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool versus siblings, nor which feed to pick for a given need. The only conditional logic given is about payment, not about task selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selectarank_preflightCheck that an x402 endpoint's 402 challenge is well-formed before paying itA

Check that an x402 endpoint's 402 challenge is well-formed before paying it. Paid x402 endpoint: 0.010000 USDC per call on Base (GET /v1/preflight). With EVM_PRIVATE_KEY set the call is paid automatically; otherwise the 402 payment requirements are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYeshttps URL (port 443, public host) of the x402 endpoint to check

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the monetary cost (0.010000 USDC per call on Base), the automatic payment behavior when EVM_PRIVATE_KEY is set, and the fallback behavior of returning 402 payment requirements. It does not detail what constitutes 'well-formed' or error cases, leaving some gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste, front-loading the purpose and then the payment details. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with a single parameter and no output schema, the description covers the essential operational context: cost, payment flow, and fallback. It could be more explicit about what the check returns or how 'well-formed' is evaluated, but the coverage is largely adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the single url parameter is fully documented in the schema. The description adds no syntax, format, or constraint beyond what the schema already provides, matching the baseline of 3 when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and resource ('x402 endpoint's 402 challenge') and clarifies intent ('before paying it'). This clearly distinguishes it from the data-retrieval siblings (earthquakes, weather, worldbank) that share the selectarank_ prefix.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'before paying it' gives a clear contextual trigger for when to use the tool. It does not state exclusions or name alternatives, but no sibling overlaps exist, so the guidance is sufficient though not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selectarank_weatherNOAA/NWS forecast for a US pointA

NOAA/NWS forecast for a US point. Paid x402 endpoint: 0.003000 USDC per call on Base (GET /v1/weather/{lat}/{lon}). With EVM_PRIVATE_KEY set the call is paid automatically; otherwise the 402 payment requirements are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
latYes
lonYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose the non-obvious behavior: this is a paid x402 endpoint costing 0.003000 USDC on Base, paid automatically when EVM_PRIVATE_KEY is present, otherwise the 402 requirements are returned. That is real, actionable behavioral context. It is silent on rate limits, failure modes beyond 402, and whether the call is a safe read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose and scope first, then the payment mechanics. Every sentence carries information an agent needs, with no filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema and no annotations, so the description should cover more ground. Payment mechanics are covered thoroughly, but the response shape, lat/lon formatting, and error handling are absent for a two-required-parameter tool with zero schema documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% — both lat and lon are typed string with empty descriptions — so the description must compensate. The path template /v1/weather/{lat}/{lon} does convey ordering and that the values are path-substituted strings, but no format, decimal-degree convention, or range constraints are given, so compensation is only partial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource and source ('NOAA/NWS forecast for a US point') plus the underlying route GET /v1/weather/{lat}/{lon}, so the agent knows exactly what it returns. It does not explicitly contrast with siblings like selectarank_earthquakes or selectarank_worldbank, but the domain is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly defines when it applies (US point forecasts) and explains the payment precondition (EVM_PRIVATE_KEY set vs. 402 returned), which is operational guidance. It never names an alternative tool or states when not to use it, so routing is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

selectarank_worldbankWorld Bank indicatorC

World Bank indicator. Paid x402 endpoint: 0.002000 USDC per call on Base (GET /v1/worldbank/{country}/{indicator}). With EVM_PRIVATE_KEY set the call is paid automatically; otherwise the 402 payment requirements are returned.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryYes
indicatorYes

TDQS

C2.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden, and it does disclose meaningful behavior: a paid x402 endpoint at 0.002 USDC per call on Base, automatic payment when EVM_PRIVATE_KEY is set, and a 402 payment-requirements response otherwise. That is above-average disclosure, though it omits rate limits, response format, and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences with no padding, and the payment model is stated efficiently. However, the leading fragment 'World Bank indicator.' is pure tautology and occupies prime front-loaded space without conveying information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter paid API call with no output schema, the description adequately covers the endpoint, cost, and auth behavior. It is incomplete on the parameter formats and on what data is returned, which an agent needs since there is no output schema to fall back on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and both 'country' and 'indicator' have empty descriptions. The URL template only shows positional placement; the description adds no format guidance (e.g., ISO country code, indicator ID like NY.GDP.MKTP.CD), leaving both required parameters semantically undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening 'World Bank indicator' simply restates the title and tool name without a verb or object of action. The GET path /v1/worldbank/{country}/{indicator} implies retrieval, but the description never states that it fetches indicator data, so the purpose remains inferred rather than declared.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus the sibling endpoints (preflight, earthquakes, weather) and no prerequisites for choosing it. The payment note hints at a cost condition, but that is billing behavior rather than usage guidance.

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.

  1. 4 tool updatesv0.1.0
    • First observedselectarank_earthquakes
    • First observedselectarank_preflight
    • First observedselectarank_weather
    • First observedselectarank_worldbank

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a clearly distinct resource: preflight validation, earthquakes, weather, and World Bank data. There is no overlap in purpose, so an agent can easily select the right tool.

Naming Consistency5/5

All tools follow the same selectarank_ snake_case prefix and use simple noun names (preflight, earthquakes, weather, worldbank). The pattern is predictable and consistent throughout.

Tool Count5/5

Four tools is a well-scoped set for a small paid API gateway covering a preflight check plus three specific data sources. Neither too thin nor bloated for the apparent purpose.

Completeness4/5

The surface covers a useful validation tool and three concrete data endpoints, but it lacks a tool to list all available endpoints or a generic fetch capability. Minor gaps are workable given the narrow scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers