ScalpStream MCP
It is a pay-per-call MCP data server: free previews without a wallet, full results optionally paid in USDC on Base.
Query US product recalls across FDA, NHTSA and CPSC (README feature; not present in the supplied schema).
Find cheapest fuel by country/grade, with optional all-in cost ranking for detours.
Check worldwide AQI/pollutants and find the cleanest upcoming outdoor window.
Rank US border crossings by drive time plus current CBP wait, filtered by vehicle, lane, radius and limit.
Inspect payment configuration and session spend with
payment_status(local, free).Run preview-only with no key; paid mode uses
EVM_BASE_PRIVATE_KEYand enforces max-price and budget limits.The schema lists
options_research,municipal_income,crypto_research, andcrypto_yields, but per the README they are withdrawn and return 410 Gone before payment.
Enables USDC settlement over x402 on the Polygon EVM payment rail for pay-per-call data purchases, alongside Base and Arbitrum, with Base preferred by the client.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ScalpStream MCPWhat's the cheapest gas in Paris?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ScalpStream MCP server
Pay-per-call MCP server for Claude Desktop, Claude Code, Cursor and any MCP client: US product recalls, US border wait times and cheapest fuel prices, settled in USDC over x402 on Base.
An MCP server that buys small, factual datasets at call time with your own wallet, over x402 — roughly $0.01 a call, no account, no subscription, no API key anywhere in the flow.
Most MCP servers wrap an API you already hold a key for. This one pays as it goes. The seller holds no keys either: settlement runs through a facilitator that sponsors gas, so the only key in the system is yours, held in memory for the lifetime of the process and never written anywhere.
It is useful before you fund anything. With no key configured, every paid tool returns the free preview and the exact quoted price, so you can see what you would be buying before deciding to buy it.
Tools
Tool | What you get |
| Active US recalls for a product, brand, ingredient or vehicle across FDA, NHTSA and CPSC in one query, with severity normalised onto one scale, the hazard, the remedy, and the lot numbers that tell whether a specific unit is affected. |
| US ports of entry ranked by all-in time — drive plus current CBP wait — per lane type. The nearest crossing is often not the fastest. |
| Cheapest fuel by location and grade. Station-level for Spain, France, Italy; official regional averages for the US. |
| Current AQI and pollutants anywhere in the world, an EPA-based verdict on exercising outdoors, and the cleanest window ahead. |
| What's configured, what's been spent. Makes no network call and costs nothing. |
Withdrawn tools are listed under Versions.
Related MCP server: Paid Business Data MCP Server
Install
Docker (no toolchain needed)
The published image is ghcr.io/dv1-321/scalpstream-mcp. It runs as a
non-root user on a shell-less base and speaks MCP over stdin/stdout, so it needs
-i and nothing else:
docker run -i --rm ghcr.io/dv1-321/scalpstream-mcp:latestClaude Desktop (claude_desktop_config.json) or any MCP client that takes a
command, preview-only:
{
"mcpServers": {
"scalpstream": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/dv1-321/scalpstream-mcp:latest"]
}
}
}Claude Code:
claude mcp add scalpstream -- docker run -i --rm ghcr.io/dv1-321/scalpstream-mcp:latestTo enable paid calls, put the key in the client's env block and forward it
with a bare -e NAME — the name only, so the value never appears in the
command line:
{
"mcpServers": {
"scalpstream": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "EVM_BASE_PRIVATE_KEY", "-e", "SCALPMCP_BUDGET_USD",
"ghcr.io/dv1-321/scalpstream-mcp:latest"],
"env": {
"EVM_BASE_PRIVATE_KEY": "0x...",
"SCALPMCP_BUDGET_USD": "2.00"
}
}
}
}Each release is also tagged (:v0.1.9 and so on) for installs that want to pin
one; the MCP registry entry pins the exact tag.
Claude Code can also take it as a plugin, which installs the same Docker
command with no secrets and bundles the scalpstream-data skill:
/plugin marketplace add DV1-321/scalpstream-mcp
/plugin install scalpstream@scalpstream-mcpGemini CLI reads the gemini-extension.json at the root of this repository:
gemini extensions install https://github.com/DV1-321/scalpstream-mcpBoth pin the release tag and start preview-only. To pay, add the key to the
installed server's env as described above; never to the manifest.
Go
go install github.com/DV1-321/scalpstream-mcp/cmd/scalpmcp@latestThis puts scalpmcp in $(go env GOPATH)/bin:
{
"mcpServers": {
"scalpstream": {
"command": "scalpmcp",
"env": {
"EVM_BASE_PRIVATE_KEY": "0x...",
"SCALPMCP_MAX_PRICE_USD": "0.10",
"SCALPMCP_BUDGET_USD": "2.00"
}
}
}
}Omit env entirely to run in preview-only mode.
Configure
Variable | Default | Meaning |
| (unset) | Base-mainnet key holding a little USDC. Unset = preview-only. |
|
| Refuse any single call quoted above this. |
|
| Refuse once the process has spent this much in total. |
| the live services | Override a service origin, for testing against a stub. |
Paying without a crypto wallet
The same data runs as Apify Actors, billed to your Apify plan instead of a wallet. Apify's hosted MCP server exposes any Actor as a tool, so an MCP client that cannot hold a key can reach the same lookups through it with an Apify account:
Data | Apify MCP link |
Fuel prices | https://mcp.apify.com?tools=rolescout/fuelscout-cheapest-fuel-prices |
US border waits | https://mcp.apify.com?tools=rolescout/borderscout-us-border-wait-times |
US product recalls | https://mcp.apify.com?tools=rolescout/recallscout-us-product-recalls |
Those links authenticate with your Apify account; this server has no part in them and never needs your Apify token.
Preview mode examples
Captured from the image running with no key. payment_status is local:
{
"paid": false,
"complete": true,
"source": "local",
"data": {
"paid_mode_enabled": false,
"paid_calls": 0,
"spent_atomic_usdc": "0",
"price_per_call": "$0.01 USDC",
"rails": ["USDC on Base (used by this client)", "USDC on Arbitrum", "USDC on Polygon", "USDC on Solana"],
"custody": "The seller holds no keys. This client signs with your own Base key, held only in memory for the process lifetime.",
"how_to_enable": "Ask the user to add EVM_BASE_PRIVATE_KEY ... to the MCP server's environment ... Never request, accept or echo the key in chat. ..."
}
}product_recalls with {"product": "infant formula"} and no key comes back
with paid: false, complete: false, the service's free preview under data,
and the quote under price — that is the designed outcome, not an error:
{
"paid": false,
"complete": false,
"source": "https://recallscout.scalpstream.com/preview",
"reason": "no spending key configured (set EVM_BASE_PRIVATE_KEY in the MCP server's environment to enable paid calls)",
"price": { "network": "eip155:8453", "amount_usd": "0.0100", "amount_atomic": "10000", "asset": "0x8335...2913", "pay_to": "0x..." },
"note": "This is the FREE PREVIEW, not the paid dataset. The paid call returns the full result described by this tool.",
"howto": "Ask the user to add EVM_BASE_PRIVATE_KEY ... Never request, accept or echo the key in chat. ...",
"data": {
"service": "RecallScout",
"what": "Machine-payable US recall lookups across three regulators at once: FDA (food, drugs, medical devices), NHTSA (vehicles) and CPSC (consumer products). ...",
"parameters": { "product": "product, brand or ingredient — matched as a phrase across FDA and CPSC", "make": "...", "model": "...", "year": "...", "include_ended": "...", "limit": "..." },
"honesty": "If an agency cannot be reached the response says so in sources_failed and sets complete=false. A lookup that could not consult all three is never reported as an all-clear.",
"source": "US FDA (openFDA enforcement), US NHTSA (vehicle safety recalls), US CPSC (saferproducts.gov). Public domain / US Government works.",
"disclaimer": "..."
}
}With a key the same call returns paid: true, complete: true and the recall
list under data. Every tool uses this one envelope; complete is the field
to branch on.
Spending safety
Real money moves, so the design refuses rather than overspends:
Both limits are checked before anything is signed. A refusal costs nothing and never reaches the network.
An unset limit means the default, never "unlimited." A missing config line must not become unbounded spending.
Spend is recorded only when the data is actually delivered. If a paid request then fails, the error says settlement state is unknown rather than implying nothing moved — you may need to reconcile against the chain.
Gas is sponsored by the facilitator, so the wallet needs USDC and no ETH.
Use a throwaway key funded with a dollar or two. Never one holding balances you care about, and never hand it to a hosted service — this server is the only thing that should hold it, and it holds it only in memory.
Identification, rate limits and logging
Every request this server makes carries the header
User-Agent: scalpmcp/<version> (+https://github.com/DV1-321/scalpstream-mcp),
on the unpaid request and on the paid retry alike. It names the program and its
version and nothing about you.
Each ScalpStream host applies an edge rate limit of 60 requests per minute per User-Agent, and every install of this server presents the same User-Agent, so all installs share that allowance on each host. At one request per tool call this is far above normal agent use; a 429 means the shared allowance is busy for the rest of that minute, not that your key or budget is at fault.
The server writes one line to stderr per tool call — the tool name, whether
it paid, whether the result was complete or a preview, the last HTTP status and
the elapsed milliseconds, for example
scalpmcp: call tool=border_crossings paid=true complete=true status=200 ms=412 error=false.
It never logs argument values, the spending key, or the payment payload.
Protocol
MCP 2025-06-18 over stdio. A client that opens with the 2026-07-28
server/discover call gets JSON-RPC -32601 (method not found), which is that
revision's signal to fall back to initialize; the server then negotiates
2025-06-18.
Payment rails
Sellers accept USDC on Base, Arbitrum, Polygon and Solana. This client pays USDC on Base, preferring it over other EVM rails regardless of the order the server lists them in.
What the data is not
Every response carries its own disclaimer and source attribution; read them. Recall results are public-safety information, not legal or medical advice.
Versions
Releases are the Git tags on
this repository; each one is published to the MCP registry as
io.github.DV1-321/scalpstream-mcp and as the
ghcr.io/dv1-321/scalpstream-mcp
image. CHANGELOG.md has the details per release.
Withdrawn in 0.1.10: options_research, municipal_income,
crypto_research and crypto_yields. The ScalpStream Research boards behind
them have been withdrawn. Every path on their host answers 410 Gone with
"error": "withdrawn", ahead of any payment, so a 0.1.9 or older server that
calls one of these tools gets that 410 rather than data and is charged
nothing. Upgrade to 0.1.10 or later, where none of them is listed.
air_quality stays. AirScout now serves its own copy of the Copernicus CAMS
forecast through a self-hosted Open-Meteo, and every answer carries the
Open-Meteo and Copernicus credits.
License
MIT - see LICENSE.
Available Tools
8 toolsair_qualityAir quality and the cleanest window to be outsideA
Current US AQI and pollutant breakdown for any coordinates worldwide, an EPA-based verdict on whether it is safe to exercise outdoors, and the cleanest contiguous window in the forecast ahead for a session of a given length. Modelled data (Copernicus CAMS), not a sensor at the exact spot.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude in decimal degrees. | |
| lon | Yes | Longitude in decimal degrees. | |
| hours | No | How far ahead to search for a clean window, in hours. Default 24, maximum 168. | |
| place | No | Optional label for the location, used in the summary text. | |
| duration | No | How long you want to be outside, in hours; the window returned is a contiguous block this long. Default 1, maximum 12. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It transparently discloses the data source (Copernicus CAMS), the use of US AQI standards worldwide, the EPA-based verdict, and the forecast-window behavior. It does not mention rate limits or response structure, but the key limitations are well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core outputs and ending with a necessary caveat about data quality. No filler words; every clause contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description explains the main result categories (AQI, pollutants, EPA verdict, clean window) and the window-finding behavior. It could specify how the window is computed or whether AQI is instantaneous versus averaged, but the essential functionality is clearly conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the roles of 'hours' and 'duration' in finding the cleanest window, but the schema already provides clear descriptions for each parameter, so the description adds limited additional semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly enumerates specific deliverables: current US AQI, pollutant breakdown, EPA-based exercise safety verdict, and the cleanest contiguous window. It distinguishes itself from the unrelated sibling tools by focusing on air quality and outdoor activity planning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the main use case (assessing air quality for outdoor exercise) and offers a 'when not' by noting the data is modelled and not from a sensor at the exact spot, which cautions against use when precise local measurements are required. However, it does not explicitly name alternative tools or provide formal 'use this when' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
border_crossingsFastest US border crossing by all-in timeA
Ranks US ports of entry by ALL-IN time — the drive there plus the current CBP wait once there — for passenger, commercial or pedestrian traffic, honouring which lanes the traveller may actually use. The nearest crossing is frequently not the fastest. Live CBP data across all 85 US ports of entry.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | Yes | Latitude of the starting point, decimal degrees. | |
| lon | Yes | Longitude of the starting point, decimal degrees. | |
| lanes | No | Comma-separated lanes the traveller is eligible for, e.g. 'standard,SENTRI/NEXUS,Ready,FAST'. Defaults to standard only — trusted-traveller lanes are opt-in, since claiming one the traveller cannot use returns a wait they cannot have. | |
| limit | No | How many crossings to return. Default 5. | |
| place | No | Optional label for the starting point, used in the summary text. | |
| radius | No | Limit the search to crossings within this many km. 0 or omitted means no limit. | |
| vehicle | No | Traffic type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It explains the ranking methodology (all-in time), the data source (live CBP data across 85 ports), and the lane eligibility consideration. It does not cover error handling or data freshness, but the core behavioral aspects are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded. Two sentences convey the purpose, scope, and a key insight without any wasted words. It is easy to scan and understand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 7 parameters and no output schema, the description covers the essential aspects: what is ranked, by what metric, for which traffic types, and with live data. It does not explain the return format or error conditions, but the ranking behavior is sufficiently described for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context about the all-in time metric and lane honoring, which helps interpret the parameters, but it does not add specific parameter-level details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool ranks US ports of entry by all-in time (drive + wait), covering passenger, commercial, and pedestrian traffic. It distinguishes itself from the sibling tools (which are unrelated) and the note about nearest not being fastest adds a specific behavioral insight.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: to find the fastest border crossing by all-in time, explicitly contrasting with the nearest crossing. It does not explicitly mention when not to use it or alternatives, but the usage scenario is well implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cheapest_fuelCheapest fuel near a locationA
Cheapest fuel for a location and grade. Station-level pricing where governments publish open data (Spain, France, Italy); official regional averages for the US via EIA. With smart=true the ranking weighs the pump price against the fuel and time spent on the detour, so the cheapest sign is not always the cheapest tank.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Latitude in decimal degrees. Required for station-level countries (ES/FR/IT). | |
| lon | No | Longitude in decimal degrees. Required for station-level countries. | |
| grade | No | Fuel grade. | |
| smart | No | Rank by all-in cost (pump price plus the fuel and time of the detour) rather than pump price alone. | |
| region | No | US state code, e.g. CA. Used instead of lat/lon when country=US. | |
| country | Yes | ISO-3166 alpha-2 country code. ES/FR/IT give station-level prices; US gives a regional average. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It truthfully discloses that US results are only official regional averages, not station-level prices, and it reveals the smart=true caveat that the cheapest sign is not always the cheapest tank. This adds meaningful behavioral nuance beyond the input schema, though it does not mention request limits or exact response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact at two sentences, with the primary purpose front-loaded. The second sentence earns its place by explaining a critical behavioral nuance (smart=true) that would otherwise be ambiguous. No filler or repetition exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's medium complexity and lack of output schema, the description adequately covers key selection factors: country-specific data granularity, required location inputs, and smart mode semantics. It does not explicitly state the return format (e.g., whether a list or a single result is returned), but the description is sufficient for an agent to decide when to invoke it and with what parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% parameter coverage, including descriptions for lat/lon (required for station-level countries), region (US state code), and country (ES/FR/IT station-level vs US regional). The description's added detail about data sources and smart=true behavior is useful but largely paraphrases or reinforces what the schema already documents, so it only marginally raises the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Cheapest fuel for a location and grade,' a specific verb+resource statement that clearly identifies the tool's function. It further differentiates station-level pricing (Spain, France, Italy) from regional averages (US), and introduces the smart=true refinement, making it distinct from any other possible fuel-related tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when station-level versus regional pricing applies, and explicitly explains what smart=true does ('weighs the pump price against the fuel and time spent on the detour'). It stops short of naming alternative tools or saying 'when not to use,' but the sibling tools are unrelated, so the lack of explicit alternatives is not a major gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_researchCryptocurrency candidatesA
Ranked cryptocurrency candidates using the same technical signals as the equity feed (RSI, ATR, VWAP, momentum) plus a macro overlay from the Fear & Greed index and news sentiment. Impersonal research data, not advice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does not explicitly state that the tool is read-only or free of side effects, though 'Impersonal research data, not advice' implies a non-actionable output. It adds some behavioral context by explaining the macro overlay, but omits details like data freshness or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose and methodology, followed by a helpful disclaimer. Every sentence earns its place with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description fully covers what the user can expect: a ranked list of crypto candidates with the technical and macro factors considered. The disclaimer adds a necessary caveat about its non-advice nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there is nothing to explain. Per the baseline for 0-parameter tools, the score is 4. The description adds context about the methodology but does not need to specify parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool produces ranked cryptocurrency candidates and specifies the exact signals used (RSI, ATR, VWAP, momentum, Fear & Greed, news sentiment). It distinguishes itself from sibling tools like crypto_yields and options_research by focusing on general crypto research rather than yields or options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied through the description – it is for cryptocurrency research based on technical and sentiment signals. However, it does not explicitly state when to use this tool over siblings or mention any exclusions, so it lacks direct guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
crypto_yieldsCrypto staking and interest yieldsA
Where to earn interest or staking rewards on crypto and stablecoins: DeFi staking APY, stablecoin lending and savings rates, and liquidity-pool yields across CeFi platforms and DeFi protocols, risk-adjusted by pool depth (TVL) and base-versus-emission share, with A/B/C ratings.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral transparency burden. It adds useful context about the risk-adjustment method (TVL, base vs emission share) and the A/B/C rating scale, which sets expectations about output. However, it omits data sources, update frequency, and any access or rate limitations, leaving notable gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single long sentence that front-loads the core purpose ('Where to earn interest or staking rewards') and then packs in categories, risk-adjustment details, and ratings. Each clause adds value, though splitting it into two sentences would improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no parameters, the description provides a solid overview: yield types, platforms, risk-adjustment metrics, and rating scale. It does not detail the exact return format beyond ratings, but for a no-param research tool, it is adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema coverage is trivially 100% and the baseline is 4. The description does not need to explain parameters; it provides enough context about the tool's scope and methodology to make the lack of parameters obvious.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: finding where to earn interest or staking rewards on crypto and stablecoins. It enumerates specific categories (DeFi staking APY, stablecoin lending, liquidity-pool yields) and platforms (CeFi/DeFi), and the A/B/C rating system distinguishes it from generic crypto research tools like sibling crypto_research.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use when you want to compare crypto yield opportunities. However, it does not explicitly state when not to use it, mention prerequisites, or reference alternatives among sibling tools. Guidance is implicit rather than direct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
municipal_incomeFederally tax-exempt municipal incomeA
Municipal bond funds and muni closed-end funds whose distributions are exempt from US federal income tax, ranked, with tax-equivalent yields computed for the 24%, 32% and 37% brackets, current yield, distribution frequency, growth streak and years without a cut. Impersonal research data, not advice.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses the research nature and adds the 'not advice' disclaimer, plus the computed metrics. However, it doesn't describe the response format, update cadence, or any limitations. For a read-only data tool, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences: the first is dense with specific metrics (tax-equivalent yields, brackets, distribution frequency, growth streak, years without a cut) and the second sets expectations ('Impersonal research data, not advice'). Every phrase earns its place, and it's well front-loaded with the subject.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple zero-parameter nature and no output schema, the description is mostly complete: it explains what the tool returns and the key data points. It could specify the exact output format (e.g., a ranked table), but for a research list tool this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per the rubric. The description doesn't need to explain parameters and doesn't attempt to; it instead focuses on the returned data, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool's domain (tax-exempt municipal bond funds) and the outputs (ranked list with yields, frequency, etc.). It distinguishes itself from siblings like crypto_research and cheapest_fuel by topic. However, it lacks an explicit verb like 'list' or 'research,' making the action slightly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through the description: if the user needs municipal income fund data, this is the tool. But there is no explicit when-to-use guidance or mention of alternatives, and no exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
options_researchUS equity options candidatesA
Ranked short-term US equity options candidates with the observed metrics behind each ranking (signal strength, score, ATR%, relative volume, RSI, VWAP distance, ATM IV, daily trend, momentum) and an illustrative contract. Impersonal research data, identical for every buyer — not advice, and it carries no trade plan, position sizing, or buy/sell verdict.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that data is deterministic ('identical for every buyer'), impersonal, and excludes trade plans or verdicts. It lists the metrics provided, offering transparency about what the output includes, though it omits operational details like data freshness or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence efficiently lists the core purpose and metrics, while the second sentence is essential for setting expectations about non-advice. Both sentences earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter tool with no output schema, the description is quite complete. It explains what is returned (ranked candidates with metrics and illustrative contract) and what is not (advice or trade plan). It lacks details on interpretation or data source, but this is sufficient for basic tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline of 4 applies. The description adds value by enumerating the metrics that appear in the output (signal strength, ATR%, RSI, etc.), which helps the agent anticipate the result even without parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides ranked short-term US equity options candidates with specific metrics. It uses a specific verb ('ranked') and resource ('options candidates'), distinguishing it from sibling tools like crypto_research or municipal_income by focusing on US equity options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for obtaining research data, but does not explicitly say when to use it versus alternatives. It does clarify what it is not (advice, trade plan, buy/sell verdict), which helps set expectations, but lacks direct comparison to sibling tools or explicit use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
payment_statusPayment configuration and spend so farA
Reports whether paid calls are enabled, how much this session has spent, the price per call, and which payment rails the services accept. Makes no network request and costs nothing.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does a good job by clearly stating that the tool makes no network request and costs nothing, signaling a non-mutating, safe operation. It also lists the exact data reported. It could mention authentication needs or response format, but the provided behavioral details are strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with specific, useful data points and no wasted words. The second sentence adds a valuable safety note without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description covers the essential information: what it reports and that it is free/non-network. A minor gap is the lack of response shape or units, but the tool's low complexity means this is not a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage, so the baseline is 4. The description adds no parameter-specific meaning, but none is needed because there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Reports') and resource ('payment status') while enumerating concrete outputs: whether paid calls are enabled, session spend, price per call, and accepted payment rails. This makes the tool's purpose unmistakable and distinguishes it from the unrelated sibling research tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance or exclusions are provided. The line 'Makes no network request and costs nothing' implies safe, cost-free usage, but it does not state specific situations such as 'check before making paid calls' or compare to alternatives. For a simple status tool, this is adequate but not fully explicit.
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.
8 tool updates
v1.0.0- First observed
air_quality - First observed
border_crossings - First observed
cheapest_fuel - First observed
crypto_research - First observed
crypto_yields - First observed
municipal_income - First observed
options_research - First observed
payment_status
TDQS
Scored across 8 tools
Each tool targets a distinctly different domain: options, municipal bonds, crypto research, crypto yields, fuel prices, air quality, border crossings, and payment status. Even the two crypto tools are clearly separated by purpose (research versus yields). No two tools overlap in function.
All tool names use lowercase snake_case and follow a consistent noun-phrase pattern (e.g., options_research, municipal_income, border_crossings). There is no mixing of styles or verbs, making the naming predictable and uniform.
With 8 tools, the count is within the typical well-scoped range. However, the breadth of topics suggests the server may be trying to cover too many unrelated domains for a single service, which slightly reduces appropriateness from an ideal focused set.
Given the name 'ScalpStream,' the server implies a focus on short-term trading, yet it lacks tools for real-time quotes, trade execution, or even general stock research. The unrelated tools (fuel, air quality, border crossings) do not fill this gap, leaving the core trading surface significantly incomplete.
Maintenance
Related MCP Connectors
Remote MCP server exposing 330 production AI-agent services for web/data processing, validation, AI utilities, blockchain/crypto utilities, and x402 pay-per-use access.
Programmatic web-scraping MCP server powered by x402 micro-transactions on Base.
33 pay-per-call market and news data tools over MCP with free discovery and x402 payments.
Pay-per-call DeFi and macro intel for AI agents. x402 USDC tools via streamable HTTP /api/mcp.
Related MCP Servers
- AlicenseAqualityCmaintenanceEight crypto and DeFi data tools for AI agents: prices, gas, one ParaSwap route quote, GoPlus token security and top-holder samples, DefiLlama yields, Hyperliquid/dYdX funding, and observed wallet balances. Inspect prices free; pay 0.001–0.008 USDC per call on Base through x402. No API key or subscription.863 npmMIT
- FlicenseBqualityDmaintenanceMCP server for paid business data services with free previews and paid tools (enriched search and competitive analysis) using x402 payment flow via Pyrimid Protocol on Base.5-

oom-x402-mcpofficial
FlicenseNot gradedqualityBmaintenanceMCP server exposing 1,000+ pay-per-call API endpoints across agent infrastructure (memory, coordination, secrets, verification), data, compute, finance, weather, geography, and reference categories — payments via x402 protocol in USDC on Base.-- AlicenseNot gradedqualityCmaintenanceMCP server providing 50+ crypto, market intelligence, and AI inference endpoints with x402 pay-per-request micropayments on Base.2Apache 2.0