Skip to main content
Glama

Strale

Pay-per-call tools for AI agents — one API key or an x402 wallet. MCP server, REST API, TypeScript and Python SDKs.

strale MCP server

npm npm PyPI License: MIT strale.dev

What Strale is

Strale is a capability marketplace for AI agents. Agents call strale.do() at runtime to reach tools — company registry lookups, compliance checks, financial validation, Web3 security, and more — plus bundled solutions for multi-step workflows like a full KYB check or company due diligence, instead of the agent's own code hardcoding integrations and managing credentials for every data source it might need.

Each tool page lists inputs, output fields, price, limitations and source. Testing modes vary by tool. Read the current catalogue, free-tier list and country coverage from platform facts.

Related MCP server: ENTIA Entity Verification

How to use it

{
  "mcpServers": {
    "strale": {
      "type": "streamableHttp",
      "url": "https://api.strale.io/mcp?src=gh-readme",
      "headers": {
        "Authorization": "Bearer sk_live_your_key_here"
      }
    }
  }
}

Works with Claude Desktop, Claude Code, Cursor, and any MCP client supporting Streamable HTTP. For local stdio instead, or the full tool surface, see packages/mcp-server/README.md.

TypeScript SDK

npm install straleio
import Strale from "straleio";

const strale = new Strale({ apiKey: process.env.STRALE_API_KEY });
const result = await strale.do("eu-vat-validate", { vat_number: "SE556000000001" });

Full reference: packages/sdk-typescript/README.md.

Python SDK

pip install straleio
from straleio import Strale

strale = Strale(api_key="your_api_key")
result = strale.do("eu-vat-validate", {"vat_number": "SE556000000001"})

Full reference: packages/sdk-python/README.md.

Get started without an API key

A subset of capabilities (email/IBAN/crypto-address validation, DNS lookup, JSON repair, URL-to-markdown, and more) work with no signup, no API key, and no wallet — only an IP-based daily rate limit. Read the current list from GET /v1/platform/facts (free_tier_slugs), not from a number in this file. Get a key and trial credits at strale.dev when you need the rest of the catalog.

Framework integrations

Package

Registry

Description

strale-mcp

npm

MCP server — the full capability catalog via Claude, Cursor, any MCP host

straleio

npm

TypeScript/JavaScript SDK

straleio

PyPI

Python SDK

langchain-strale

PyPI

LangChain toolkit (StraleToolkit)

crewai-strale

PyPI

CrewAI integration — drop-in BaseTools for agents

strale-semantic-kernel

npm

Semantic Kernel plugin for .NET and TypeScript agents

composio-strale

PyPI

Composio integration — custom actions

Each package's own README is the reference for that integration; this file only points at them. Every distribution PR against an external framework repo, and every publish of one of these packages, follows CLAUDE.md's Distribution PR Integrity Protocol — a package claiming framework-native integration is verified against the published artefact, not the source tree, before the claim ships.

Web3

Web3 capabilities (wallet risk scoring, token honeypot detection, ENS resolution, DeFi protocol data, gas oracle, EU MiCA VASP verification, market sentiment) and bundled solutions for on-chain agents are available via the x402 payment protocol — pay per call with USDC on Base mainnet, no signup required. Not every capability is x402-eligible; read the live, dynamic subset from:

GET https://api.strale.io/x402/catalog?src=gh-readme
GET https://api.strale.io/.well-known/x402.json

Testing and source context

Testing modes vary by tool. Inspect current availability, test mode and last-tested time in public test signals, and read limitations and sources in the catalogue before use.

GET https://api.strale.io/v1/capabilities/vat-validate

Every capability publishes its limitations honestly, including coverage gaps. Methodology: strale.dev/quality.

IDE rules for safe data handling

Drop these into your project to give your coding agent security guidance for trust-sensitive data (IBANs, company registries, sanctions, PII):

These prevent the most common vibe-coding vulnerabilities: client-side IBAN validation, hardcoded API keys, missing provenance metadata, and direct registry scraping.

Agent Skills & code examples

More

How the code is organised

strale/
├── apps/api/          Hono API server: routes, capability executors,
│                       Drizzle schema + queries, Stripe/matching/auth
│                       helpers. drizzle/ holds the migration history.
├── packages/           Published SDKs and framework integrations (see the
│                       table above) plus internal workspace packages.
├── manifests/          One YAML file per live capability: pricing, data
│                       source, field-reliability declarations, test
│                       fixtures. The onboarding pipeline
│                       (apps/api/scripts/onboard.ts) is the only
│                       sanctioned way a capability enters the system —
│                       see CLAUDE.md's Capability Onboarding Protocol.
├── design/             Design tokens as data (colors, type, spacing) —
│                       one active file per surface, candidates carry a
│                       status, promotion is a decision plus a file swap.
├── config/              Cross-cutting configuration as data, e.g. the
│                       environment-variable manifest every process.env
│                       read is registered against.
└── scripts/            Repo-root tooling: the checkers behind every
                        `npm run *:check` script, the session-handoff
                        gate, and one-off operator scripts.

apps/api/scripts/ and apps/api/src/capabilities/ carry the same idea at capability-authoring scope — read CLAUDE.md's "Adding New Capabilities" section before writing a new executor.

How the company runs the repository

Where truth lives. Product, state, and roadmap truth is migrating from Notion into this repository (docs/project/), but the migration is not complete: docs/project/START-HERE.md and the rest of docs/project/ are explicitly candidates (authority_active: false) until a founder- confirmed cutover. Until then, Notion (Project Home, the To-do & Build Plan, the Decisions DB) is authoritative, and CLAUDE.md / AGENTS.md say so at the top of every session. docs/README.md indexes every docs/ subtree with its current authority status; docs/project/STRUCTURE.md records exactly where the repo's layout still deviates from the migration's target and why.

Where work in flight lives. Multi-batch work is tracked in docs/programs/ (start at docs/programs/README.md): each program has a PROGRAM.md with a "Resume here" section and a machine-checked tracks.yaml. A session resuming a program reads only those two files and follows their pointers — chat history is never required.

How sessions work. CLAUDE.md is the canonical operating manual for Claude Code sessions; AGENTS.md is its condensed derivative for Codex-CLI sessions and points back at CLAUDE.md for anything that can drift rather than restating it. Every session ends through a handoff gate (scripts/handoff/handoff-check.mjs, installed as a git hook) that refuses to let a session leave uncommitted work, an unpushed branch, a stale worktree, or code changes with no resume surface for the next session. Batch work happens in an isolated git worktree, never the shared primary checkout — see WORKTREES.md.

What CI checks, by category, not by exhaustive list (see .github/workflows/ci.yml for the exact, current set): an ephemeral- Postgres integration lane for money- and audit-chain-critical behavior; typecheck and lint across apps/api and every published package; capability manifest structural and fixture-consistency gates; framework-package integrity (a published *-strale package must contain real code from the framework it claims to integrate with); a family of content-as-data registers, each with its own checker and generated index — research (docs/research/), design tokens (design/), the environment-variable manifest (config/), the model-id registry, the public claims register (docs/company/claims.yaml), program track registers (docs/programs/*/tracks.yaml), and this repository's own docs/ structure (docs:check, archive:index -- --check); and the session- handoff gate itself. Every one of these checkers plants a failure case in a throwaway fixture and proves it fails before the fix — see docs/company/LESSONS.md family F5.

Where history lives

archive/ holds closed, historical, and superseded material — see archive/README.md for what each subtree holds, generated (with hand- written prose above it) by npm run archive:index. handoff/ holds one file per session's end-of-session record; handoff/README.md is a generated, reverse-chronological index of all of them by date and stated intent. Neither directory is required reading to resume work — the program register and docs/project/START-HERE.md are.

License

MIT

Available Tools

9 tools
strale_balanceRead wallet balanceA
Read-onlyIdempotent
Inspect

Returns the current Strale wallet balance. Call this before executing paid capabilities to verify sufficient funds, or after a series of calls to reconcile spend. Returns balance in EUR cents (integer) and formatted EUR string. Requires an API key — returns an auth instruction if none is configured.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/no-destruction, and the description adds genuinely new context: the response is EUR cents (integer) plus a formatted EUR string, and it discloses the auth requirement and that a missing API key produces an auth instruction rather than an error. That return-shape and auth-failure behavior are valuable since no output schema exists.

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, usage timing, and return/auth behavior, in that order. Every sentence carries distinct information with no repetition of the title or annotations.

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

Completeness5/5

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

For a parameterless read tool with no output schema, the description fully covers what an agent needs: what it returns, when to call it, and what happens when unauthenticated. Nothing material is missing.

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

Parameters4/5

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

Zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. It correctly says nothing about inputs, avoiding noise.

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 and resource ('Returns the current Strale wallet balance') and is unambiguous against siblings like strale_execute or strale_transaction, which do not read balance. An agent knows exactly what this tool yields without opening any schema.

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?

Gives explicit when-to-use triggers ('before executing paid capabilities to verify sufficient funds', 'after a series of calls to reconcile spend'), which implicitly points at strale_execute. It stops short of naming an alternative or stating a when-not-to-use condition, but no sibling overlaps here.

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

strale_executeExecute a paid toolA
Destructive
Inspect

Executes a Strale capability by slug and returns the result. Use this when you need to perform any verification, validation, lookup, or data extraction from the capability registry. Call strale_search first to find the right slug and required input fields. Returns a result object with the capability output, latency, price charged, and data provenance. Several capabilities are free without an API key (monthly per-IP allowance; see GET /v1/platform/facts, static.free_tier_monthly_limit) — strale_search reports which. Paid capabilities debit from the wallet — check strale_balance first for high-value calls.

NameRequiredDescriptionDefault
slugYesCapability slug from strale_search results, e.g. 'swedish-company-data', 'vat-validate', 'iban-validate'
inputsYesInput parameters matching the capability's required fields. Check strale_search results for the expected input_fields.
max_price_centsNoMaximum price in EUR cents. Default: 200 (€2.00). Execution fails if capability costs more.

TDQS

A4.3/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: paid capabilities debit the wallet, execution fails above max_price, and the response includes latency, price charged, and provenance. That effectively explains the destructiveHint=true as a financial side effect. It stops short of addressing idempotentHint=false — nothing warns that a retry of a paid call may charge twice.

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?

Four sentences, front-loaded with the action and immediately followed by the routing instructions and cost model. Every sentence carries information, though the parenthetical 'GET /v1/platform/facts, static.free_tier_monthly_limit' is dense and slightly awkward inline.

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?

With no output schema, the description correctly describes the return object (output, latency, price, provenance), and it covers prerequisites, free tier, and the price guard. It leaves retry/idempotency behavior and non-price failure modes unspecified, which matters for a paid, non-idempotent call.

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%, so the schema already explains slug, inputs, and the max_price_cents default and failure mode. The description reinforces the slug/inputs sourcing from strale_search but adds no format or syntax detail beyond what the schema states, making the baseline 3 appropriate.

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 and resource ('Executes a Strale capability by slug and returns the result') and enumerates the job families it covers: verification, validation, lookup, data extraction. The sibling relationship is made explicit by directing the agent to strale_search to obtain a slug, so it is not confused with the search or balance tools.

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

Usage Guidelines5/5

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

Gives an explicit call order: strale_search first to find the slug and required input fields, strale_balance first for high-value calls. It also names a when-not/condition case by flagging that several capabilities are free without an API key under a monthly per-IP allowance, which strale_search reports.

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

strale_getting_startedGet started with StraleA
Read-onlyIdempotent
Inspect

Explains how to start using Strale and what is available without credentials. Call this on first connection. Returns the current free-tier capability list with example inputs, the pay-per-call (x402) route that needs no signup, and how to reach the full registry. No API key required.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuinely new context — no API key, no signup for the x402 route, and what the response contains. It doesn't state the response format (text vs. structured), which is the one behavioral detail left implicit.

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, purpose first, trigger second, payload content third — well front-loaded with no filler. Minor redundancy between 'what is available without credentials' and 'No API key required' keeps it from a 5.

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?

With no output schema, the description carries the burden of explaining return content and does so at a category level (free-tier capabilities, example inputs, x402 route, registry path). The omission is the response format, which matters slightly more here precisely because there is no output schema.

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

Parameters4/5

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

Zero parameters, so the baseline is 4 by rule. The description reinforces this implicitly by noting that no credentials or setup inputs are required, leaving nothing for an agent to guess.

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 and resource — it explains how to start using Strale — and clearly separates itself from the operational siblings (balance, execute, search) by being the onboarding entry point. An agent can identify this as the first-call tool without consulting any schema.

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?

'Call this on first connection' is an explicit, unambiguous trigger condition, which is more than most definitions offer. It stops short of naming when-not-to-call or explicitly routing to a sibling afterwards, so it lands at 4 rather than 5.

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

strale_methodologyRead testing and source notesB
Read-onlyIdempotent
Inspect

Explains testing modes, source context and transaction retrieval. No API key required.

NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds genuinely useful context that no API key is needed, but says nothing about what the returned notes look like or whether output is static text.

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?

Two short sentences, front-loaded with the purpose, with no padding. The second sentence about API keys is a useful prerequisite stated compactly.

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?

With no parameters, no output schema and read-only annotations, the definition is close to sufficient, but it does not tell the agent the shape of the returned notes or how they differ from strale_getting_started content.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly implies nothing needs to be supplied, and there are no parameter semantics to document.

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?

States a verb ('Explains') and lists topics (testing modes, source context, transaction retrieval), but the phrasing is loose and 'transaction retrieval' sits oddly next to documentation topics. There is no differentiation from the sibling strale_getting_started, which plausibly covers similar overview ground.

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 call this instead of strale_getting_started or strale_search. The only usable cue is 'No API key required', which hints at a prerequisite but not a usage condition.

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

strale_pingCheck connectionA
Read-onlyIdempotent
Inspect

Checks that the Strale API is reachable and the MCP server is running. Call this before a series of capability executions to verify connectivity, or when troubleshooting connection issues. Returns server status, version, tool count, capability count, solution count, and a timestamp. No API key required.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint and non-destructive behavior, so the safety profile is covered. The description adds genuinely new context beyond annotations: 'No API key required' resolves an auth question the agent would otherwise have to guess at, and it enumerates what the call returns.

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?

Four tight sentences ordered by value: what it does, when to call it, what comes back, auth caveat. The return-field enumeration is slightly listy, but each item is informative given no output schema exists.

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?

With no output schema, the description carries the burden of describing the response, and it does so (status, version, tool count, capability count, solution count, timestamp). Combined with the no-API-key note, an agent has everything needed to call this correctly; only response types/format remain unspecified.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool is 4. The schema accepts no properties and the description correctly implies a no-argument call.

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+resource ('Checks that the Strale API is reachable and the MCP server is running'), which is clearly distinguishable from the capability-execution siblings like strale_execute. An agent can tell instantly this is a connectivity probe, not a business operation.

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

Usage Guidelines5/5

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

Gives explicit triggers: 'Call this before a series of capability executions to verify connectivity, or when troubleshooting connection issues.' This is concrete when-to-use guidance rather than implied usage, and no sibling competes for this role.

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

strale_transactionRead a transaction recordA
Read-onlyIdempotent
Inspect

Retrieve a past execution record by transaction ID. Returns inputs, outputs, latency, price, data provenance, success/failure status, and failure categorization. Use this to inspect what a previous strale_execute call returned, debug failures, or provide an audit trail. Free-tier transactions are accessible by ID without an API key.

NameRequiredDescriptionDefault
transaction_idYesTransaction ID returned from a strale_execute call

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds useful context beyond annotations: the exact returned fields (inputs, outputs, latency, price, provenance, status, failure categorization) and the API-key exemption for free-tier records.

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, front-loaded with the core purpose, followed by return contents, use cases, and an access note. Every sentence adds information without repetition.

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?

With no output schema, the description helpfully enumerates what is returned, and it covers the relevant auth nuance. It does not discuss retention limits or error behavior when an ID is not found, but it is otherwise complete for a single-parameter read tool.

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% and the single parameter is already documented as the transaction ID returned from strale_execute. The description reinforces the ID's origin but adds no syntax, format, or lookup constraints beyond the schema, so baseline 3 is appropriate.

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 (Retrieve) and resource (a past execution record by transaction ID), and explicitly ties it to the sibling strale_execute by saying it lets you inspect what a previous call returned. An agent can distinguish it from strale_execute and strale_search without opening schemas.

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?

Gives clear when-to-use cases: inspecting a previous strale_execute result, debugging failures, and building an audit trail. It also notes free-tier access without an API key. It does not explicitly name when not to use it or an alternative for broader searching, but the context is strong.

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

strale_trust_profileRead current test and availability signalsA
Read-onlyIdempotent
Inspect

Reads current public test results for a tool or bundle: badge, tested flag, recent pass rate and last-tested time where available. Use the catalogue for inputs, limitations and sources. No API key required.

NameRequiredDescriptionDefault
slugYesCapability or solution slug, e.g. 'swedish-company-data' or 'eu-company-due-diligence'
typeNoWhether this is a capability or a bundled solutioncapability

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is clear. The description adds useful behavioral context: results are public, some values are only available 'where available', and no API key is required.

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?

The description is three front-loaded sentences with no wasted text. Purpose, supporting-resource guidance and the API-key caveat each earn their 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 read-only tool with rich annotations and fully documented parameters, the description is largely complete and even lists the return signals despite there being no output schema. It offloads some detail to the catalogue, which is reasonable but keeps it from being fully self-contained.

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%, so both parameters are already documented by the schema. The description's phrase 'for a tool or bundle' loosely maps to the type parameter but adds no syntax or format detail beyond what the schema provides; baseline 3 is appropriate.

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?

The description gives a specific verb and resource: reads current public test results for a tool or bundle. It enumerates the returned fields (badge, tested flag, pass rate, last-tested time), making the purpose clear, but it does not explicitly differentiate this from nearby sibling tools such as web3_assurance or search.

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 implies the tool is for checking test and availability signals and points to the catalogue for inputs, limitations and sources. It does not state when to use this instead of alternatives, nor does it give exclusions or prerequisites beyond 'No API key required'.

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

strale_web3_assuranceCheck on-chain counterpartyA
Read-onlyIdempotent
Inspect

Returns a decision-ready answer about an on-chain counterparty (wallet, smart contract, token, DeFi protocol, or bridge) in a single call. Surfaces verdict (proceed/review/block/insufficient_evidence), reason_codes (machine-parsable UPPERCASE_SNAKE_CASE), critical_flags, suggested_action, evidence map (sanctions, mixer-graded, scam-cluster, wallet-history, token-safety, contract-verification, protocol-risk, EAS attestations, ERC-8004 reputation, more), and a sidecar audit_url. Two modes: 'outbound' (agent vetting recipient pre-payment, full evaluator set, 8s budget) or 'reverse-call' (service publisher gating an inbound x402 buyer in real-time, critical evaluators only, limited evaluator set). Use before any agent transacts on-chain — sending value, swapping, staking, minting, bridging, or interacting with a contract.

NameRequiredDescriptionDefault
modeNoDefault 'outbound' (agent → recipient, 8s budget, all evidence). Use 'reverse-call' when you are an x402 service publisher gating an inbound buyer (critical evidence only, limited evaluator set).
chainNoChain. EVM: 'ethereum' (default), 'base', 'polygon', 'arbitrum', 'optimism', 'bsc'. Or 'solana'.
actionNoOptional intended action. When provided, enables pre-trade simulation (outbound mode) and tunes verdict severity.
targetYesOn-chain target. EVM wallet/contract/token (0x...), Solana address, or DeFi protocol slug (e.g. 'aave', 'uniswap-v3').
agent_idNoOptional ERC-8004 agent identifier for the calling agent.
amount_usdNoOptional amount in USD. Sharpens verdict for high-value flows.
target_typeNoTarget kind. Inferred when omitted: 0x... → wallet (default), .eth/.sol → wallet, slug → protocol.
caller_jurisdictionNoOptional ISO country code for jurisdiction-aware verdict (US, EU, UK, etc.).

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive; the description adds context those cannot carry — the two evaluator modes with their trade-offs (outbound: full evaluator set, 8s budget; reverse-call: critical evaluators only, limited set), the four verdict outcomes including insufficient_evidence, the enumerated evidence categories, and a sidecar audit_url for verification. This tells the agent latency and coverage expectations before calling.

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?

Front-loaded with what the tool returns, then modes, then the usage trigger — a sensible ordering. The return-value enumeration is a long parenthetical list that verges on overstuffed, but every element (verdict vocabulary, evidence categories) carries information the agent needs since there is no output schema.

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

Completeness5/5

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

With no output schema, the description correctly takes on the burden of describing the return payload: verdict enum, reason_codes format, critical_flags, suggested_action, evidence map, and audit_url. Combined with mode selection, latency budget, and supported targets, an agent has everything needed to call it correctly in one shot.

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% and each parameter already carries a substantive description, so the baseline of 3 applies. The prose reinforces mode semantics and target_type inference but introduces no syntax, format, or constraint details absent from the schema — much of the mode and action guidance is restated rather than added.

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 verb ('Returns a decision-ready answer') and a precisely scoped resource (on-chain counterparty), enumerating the target kinds: wallet, smart contract, token, DeFi protocol, bridge. An agent immediately knows what it gets back (verdict, reason_codes, flags, evidence, audit_url). It does not differentiate itself from the closely related sibling strale_trust_profile, which is the only remaining ambiguity.

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?

Gives a concrete trigger: 'Use before any agent transacts on-chain — sending value, swapping, staking, minting, bridging, or interacting with a contract,' and names the condition that selects reverse-call ('when you are an x402 service publisher gating an inbound buyer'). No exclusions or named alternatives among siblings (e.g. strale_trust_profile), so it falls short of a 5.

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. 1 tool updatev0.1.1
    • Addedstrale_web3_assurance
  2. 8 tool updatesv0.1.0
    • First observedstrale_balance
    • First observedstrale_execute
    • First observedstrale_getting_started
    • First observedstrale_methodology
    • First observedstrale_ping
    • First observedstrale_search
    • First observedstrale_transaction
    • First observedstrale_trust_profile

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools target clearly distinct concerns (connectivity, search, execute, wallet, transaction lookup, trust profile). The main boundary issue is strale_web3_assurance versus strale_execute with a web3 slug, and strale_methodology's vague description ('testing modes, source context and transaction retrieval') overlaps with strale_trust_profile and strale_transaction.

Naming Consistency4/5

All tools share a consistent strale_ prefix and snake_case naming. The only deviation is stylistic: some names are verbs (execute, search, ping) while others are nouns (balance, transaction, methodology), though each is still readable and predictable.

Tool Count5/5

Nine tools is well within the sweet spot for a capability-registry gateway. Each tool maps to a distinct step in the workflow (connect, onboard, search, check funds, execute, audit, etc.) and none feels redundant.

Completeness4/5

The core lifecycle — search, execute, inspect transactions, check balance, verify trust, onboarding, connectivity — is covered. Minor gaps: no dedicated list/history endpoint for transactions or capabilities (search partially covers), and no key/wallet management, but agents can work around these.

Maintenance

ActivityActive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    URL intelligence for AI agents. One URL in, structured security and data quality signals out across 7 dimensions. 13 tools, risk score 0-100 with 23 configurable weights.
    16
    76 npm
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    The deterministic fact-verification layer for AI agents. Validates the structured facts an agent emits — IBANs, payment cards, VAT and national tax IDs, crypto and bank addresses, domains, emails, phone numbers, securities and academic identifiers, plus dates, currencies and holidays — against checksums and curated authoritative data, not guesses.
    56
    1
    Apache 2.0