
Strale gives your AI agent 290+ pre-scored API capabilities spanning company lookups, VAT validation, IBAN checks, compliance screening, Web3 wallet risk scoring, and more across 27 countries. Every capability ships with a Strale Quality Score (0-100) derived from live quality and reliability testing, so you can set minimum thresholds and avoid flaky tools. Five endpoints (email validation, DNS lookup, JSON repair, URL-to-markdown, IBAN validation) work without an API key. The rest require signup with €2 in free credits. Deploy via Streamable HTTP with zero local setup, or run stdio locally with npx. Reach for this when you need turnkey agent skills for KYB, due diligence, or financial validation without managing credentials or uptime yourself.
claude mcp add --transport http strale https://api.strale.io/mcpRun in your terminal. Add --scope user to make it available in every project.
Review the command, arguments, and environment values before installing — MCP servers run with your local permissions.
Verified live against the running server on Jun 10, 2026.
strale_pingChecks 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 time...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 time...
No parameters — call it with no arguments.
strale_getting_startedLists the free capabilities available without an API key and explains how to get started. Call this on first connection to see what you can do immediately. Returns 5 free capability slugs (email-validate, dns-lookup, json-repair, url-to-markdown, iban-validate) with descriptio...Lists the free capabilities available without an API key and explains how to get started. Call this on first connection to see what you can do immediately. Returns 5 free capability slugs (email-validate, dns-lookup, json-repair, url-to-markdown, iban-validate) with descriptio...
No parameters — call it with no arguments.
strale_executeExecutes 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 271-capability registry. Call strale_search first to find the right slug and required input fields. Returns a result...3 paramsExecutes 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 271-capability registry. Call strale_search first to find the right slug and required input fields. Returns a result...
inputs*objectmax_price_centsnumberslug*stringstrale_searchSearches the Strale capability registry by keyword, category, or natural language query. Use this when you need to find the right capability for a task but don't know the exact slug. Returns matching capabilities and solutions ranked by relevance, each with slug, name, descrip...3 paramsSearches the Strale capability registry by keyword, category, or natural language query. Use this when you need to find the right capability for a task but don't know the exact slug. Returns matching capabilities and solutions ranked by relevance, each with slug, name, descrip...
categorystringoffsetnumberquery*stringstrale_balanceReturns 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...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...
No parameters — call it with no arguments.
strale_methodologyReturns Strale's trust methodology as a short reference document — covers test cadence, audit-trail integrity, and provenance. No API key required.Returns Strale's trust methodology as a short reference document — covers test cadence, audit-trail integrity, and provenance. No API key required.
No parameters — call it with no arguments.
strale_trust_profileReturns the trust profile for a capability or solution. Call this before relying on a capability for high-stakes decisions, or when a user asks how reliable a specific check is. Returns SQS score (0-100), Quality grade (A-F), Reliability grade (A-F), execution guidance (direct...2 paramsReturns the trust profile for a capability or solution. Call this before relying on a capability for high-stakes decisions, or when a user asks how reliable a specific check is. Returns SQS score (0-100), Quality grade (A-F), Reliability grade (A-F), execution guidance (direct...
slug*stringtypestringcapability · solutiondefault: capabilitystrale_transactionRetrieve 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-t...1 paramsRetrieve 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-t...
transaction_id*stringstrale_web3_assuranceReturns 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, sugge...8 paramsReturns 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, sugge...
actionstringsend_payment · swap · stake · mint · interact · bridgeagent_idstringamount_usdnumbercaller_jurisdictionstringchainstringmodestringoutbound · reverse-calltarget*stringtarget_typestringwallet · contract · token · protocol · bridge · domainTrust and quality infrastructure for AI agents.
Strale is a capability marketplace for AI agents. Agents call strale.do()
at runtime to reach verified capabilities — 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.
Every capability is watched: free-tier capabilities are tested against real upstreams on a schedule, paid capabilities are watched through production observability and an enforced quality floor, and every call returns a structured, auditable result with source provenance. The current catalog, free-tier list, and country coverage are live values, not numbers printed here — see How to use it below for where to read them.
{
"mcpServers": {
"strale": {
"type": "streamableHttp",
"url": "https://api.strale.io/mcp",
"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.
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.
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.
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.
| 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 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
GET https://api.strale.io/.well-known/x402.json
Capabilities are continuously tested against their real upstreams: known- answer, schema, negative, edge-case, and dependency-health checks, plus piggyback checks fed by real production traffic where a capability's cost model rules out proactive testing. An enforced quality floor quarantines a capability that falls below it on real traffic and promotes it back automatically on recovery. Strale deliberately publishes no single numeric composite quality score — an earlier one was retired because it compressed unrelated failure modes into a number that looked more precise than it was. What is exposed instead is the raw evidence per capability: status, last-tested timestamp, recent test history, known limitations, and the data source behind it.
GET https://api.strale.io/v1/capabilities/vat-validate
Every capability publishes its limitations honestly, including coverage gaps. Methodology: strale.dev/quality.
Drop these into your project to give your coding agent security guidance for trust-sensitive data (IBANs, company registries, sanctions, PII):
docs/ide-rules/strale-compliance.mdc → .cursor/rules/docs/ide-rules/strale-compliance.windsurfrules → project root, or .windsurf/rules/ as .mddocs/claude-md-snippet.md → your project's CLAUDE.mdThese prevent the most common vibe-coding vulnerabilities: client-side IBAN validation, hardcoded API keys, missing provenance metadata, and direct registry scraping.
SKILL.md files for Claude Code, Cursor, Copilot, and Codex. Copy skills/strale/ into .claude/skills/, .github/skills/, or .cursor/skills/.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.
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.
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.
MIT
STRALE_API_KEY*secretYour Strale API key (starts with sk_)