strale-mcp
The Strale MCP server provides AI agents access to 290+ verified capabilities for data validation, compliance, company intelligence, Web3, and more, with built-in quality scoring and trust-based execution guidance.
Key things you can do:
Health Check (
strale_ping): Verify server connectivity, status, and response time.Get Started for Free (
strale_getting_started): Access 5 free capabilities without an API key — email validation, DNS lookup, JSON repair, URL-to-Markdown conversion, and IBAN validation.Execute Capabilities (
strale_execute): Run any of 290+ capabilities by slug, including:Validate IBANs, emails, VAT numbers, and phone numbers
Look up companies across 27 countries
Screen against sanctions and PEP lists
Extract data from URLs and PDFs
Check domain intelligence, WHOIS, SSL, and security headers
Access Web3 data (crypto prices, gas fees, wallet risk scoring)
All results return structured JSON with SQS quality scores and data provenance
Search Capabilities (
strale_search): Browse 290+ capabilities and bundled solutions by keyword or category (compliance, validation, Web3, security, etc.).Check Trust Profile (
strale_trust_profile): Inspect a capability's SQS score, quality/reliability grades (A–F), test pass rate, known limitations, and execution guidance (call directly, retry, queue, or use fallback).Understand Quality Methodology (
strale_methodology): Learn how Strale scores capabilities using its dual-profile model (Quality + Reliability) combined into the SQS confidence score.Retrieve Past Transactions (
strale_transaction): Look up previous executions by transaction ID to inspect inputs/outputs, latency, pricing, and failure details for auditing or debugging.Check Wallet Balance (
strale_balance): View your current Strale account balance in EUR (requires API key).
Provides drop-in BaseTools for CrewAI, allowing agents to utilize a marketplace of verified capabilities including web extraction, validation, and financial data lookups.
Integrates with LangChain via the StraleToolkit, offering over 200 verified tools for company lookups, compliance checks, and financial data analysis.
Features a utility to convert web URLs directly to Markdown, facilitating easy content extraction and processing for agents.
Provides a Semantic Kernel plugin for .NET agents to access a marketplace of 200+ verified and quality-scored capabilities.
Strale
Trust and quality infrastructure for AI agents.
What Strale is
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.
Related MCP server: ENTIA Entity Verification
How to use it
MCP server (recommended: no install)
{
"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.
TypeScript SDK
npm install straleioimport 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 straleiofrom 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 |
npm | MCP server — the full capability catalog via Claude, Cursor, any MCP host | |
npm | TypeScript/JavaScript SDK | |
PyPI | Python SDK | |
PyPI | LangChain toolkit ( | |
PyPI | CrewAI integration — drop-in BaseTools for agents | |
npm | Semantic Kernel plugin for .NET and TypeScript agents | |
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
GET https://api.strale.io/.well-known/x402.jsonQuality
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-validateEvery 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):
Cursor:
docs/ide-rules/strale-compliance.mdc→.cursor/rules/Windsurf:
docs/ide-rules/strale-compliance.windsurfrules→ project root, or.windsurf/rules/as.mdClaude Code: the snippet at
docs/claude-md-snippet.md→ your project'sCLAUDE.md
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
Agent Skills —
SKILL.mdfiles for Claude Code, Cursor, Copilot, and Codex. Copyskills/strale/into.claude/skills/,.github/skills/, or.cursor/skills/.Verify a company with Strale (Python)
Validate IBANs — free, no API key (Python)
Build an agent with Strale (TypeScript)
Connect Strale to Claude (setup guide)
More
strale.dev — homepage and sign-up
strale.dev/docs — API reference
strale.dev/pricing — pricing
scan.strale.io — Beacon, a free agent-readiness scanner
api.strale.io/mcp — MCP endpoint (Streamable HTTP)
Examples — copy-paste examples for every integration
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
8 toolsstrale_balanceAInspect
Returns the current Strale wallet balance in EUR cents and EUR. Requires an API key.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return format (EUR cents and EUR) and authentication requirement. However, it does not explicitly state that this is a read-only, safe operation or contrast its non-destructive nature against mutation siblings like strale_transaction.
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?
Two sentences with zero waste. The first sentence covers functionality and return format; the second covers authentication requirements. Information is front-loaded and appropriately sized for a simple zero-parameter tool.
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 simple balance retrieval tool with no input parameters and no output schema, the description is nearly complete. It specifies the currency formats returned and auth needs. It could be improved by explicitly stating the read-only nature given the lack of annotations and presence of mutation siblings.
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 with 100% coverage (trivially). Per scoring rules, zero parameters establishes a baseline of 4. The description appropriately does not discuss parameters since none exist, focusing instead on return value semantics and auth requirements.
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 (Returns) with the exact resource (Strale wallet balance) and specifies the dual return format (EUR cents and EUR). This clearly distinguishes it from siblings like strale_execute and strale_transaction which imply state modification, while this tool clearly retrieves data.
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 states the prerequisite 'Requires an API key,' providing necessary auth context. However, it lacks explicit guidance on when to use this versus alternatives (e.g., 'use this to check funds before calling strale_execute') or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_executeAInspect
Run a Strale capability by slug — validate an IBAN, look up a company in 27 countries, screen against sanctions/PEP lists, extract data from a URL or PDF, check VAT numbers, verify email deliverability, and 250+ more. Returns structured JSON output with SQS quality score, latency, and data provenance. Free capabilities (email-validate, dns-lookup, json-repair, url-to-markdown, iban-validate) work without an API key. Use strale_search first to find the right slug and required inputs.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Capability slug from strale_search results, e.g. 'swedish-company-data', 'vat-validate', 'iban-validate' | |
| inputs | Yes | Input parameters matching the capability's required fields. Check strale_search results for the expected input_fields. | |
| max_price_cents | No | Maximum price in EUR cents. Default: 200 (€2.00). Execution fails if capability costs more. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full disclosure burden. It successfully documents return format ('structured JSON output with SQS quality score, latency, and data provenance'), pricing model (free vs paid capabilities), and data provenance. Lacks explicit error handling or destructiveness guidance, but covers the primary behavioral traits given the generic executor nature.
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?
Three dense sentences with zero waste: (1) purpose + examples, (2) output format, (3) auth/pricing + sibling dependency. Front-loaded with core action, examples provide concrete anchors, and workflow instruction is clear. No redundancy with schema fields.
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?
Compensates well for missing output schema by detailing return structure (SQS score, latency, provenance). For a complex meta-tool executing 250+ capabilities, it adequately covers the dependency chain (strale_search → strale_execute), pricing, and return format. Could enhance with error handling or rate limit notes, but functionally 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?
Schema coverage is 100% (baseline 3). The description adds value by providing concrete slug examples ('swedish-company-data', 'vat-validate') and explaining that inputs must match 'capability's required fields' discoverable via strale_search. It also contextualizes max_price_cents by listing free capabilities.
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 a specific verb-resource pair ('Run a Strale capability by slug') and provides concrete examples (IBAN validation, company lookup, sanctions screening) that clearly distinguish it from siblings. It specifically differentiates from strale_search by stating this tool executes while search discovers.
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?
Explicitly states the prerequisite workflow: 'Use strale_search first to find the right slug and required inputs.' This provides clear when-to-use guidance relative to the sibling tool. Also clarifies authentication requirements (free capabilities work without API key) and implies when max_price_cents matters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_getting_startedAInspect
Returns free capabilities you can use immediately without an API key: email-validate (verify email deliverability), dns-lookup (DNS records for any domain), json-repair (fix malformed JSON), url-to-markdown (convert any URL to clean markdown), iban-validate (validate international bank account numbers). Also returns setup steps for full access to 250+ paid capabilities.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the authentication context ('without an API key') and implies a read-only operation ('Returns'), but omits other behavioral traits like rate limiting, caching behavior, idempotency, or the specific data format/structure of the returned capabilities list.
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 zero waste. It front-loads the value proposition (free, no API key) and efficiently lists capabilities using a parenthetical format that packs maximum information into minimal space. Every clause earns its 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?
Given this is a zero-parameter tool with no output schema, the description adequately covers what the agent can expect to receive (a list of free capabilities and setup steps). While it does not specify the technical return structure (JSON schema), it conceptually completes the picture sufficiently for 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 input schema contains zero parameters, which establishes a baseline of 4 per the scoring rules. The description correctly provides no parameter details since none exist, and does not invent fictional 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 explicitly states the tool 'Returns free capabilities you can use immediately without an API key' and lists five specific capabilities with parenthetical explanations of what each does (e.g., 'email-validate (verify email deliverability)'). It also clarifies it returns 'setup steps for full access to 250+ paid capabilities,' clearly distinguishing it from operational siblings like strale_execute or strale_transaction that likely require authentication.
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 context through phrases like 'without an API key' and 'getting started' (in the tool name), suggesting it serves as an entry point for exploration before full setup. However, it lacks explicit guidance on when *not* to use this versus siblings (e.g., 'use strale_execute instead for paid capabilities') or prerequisites beyond the API key distinction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_methodologyAInspect
Get Strale's quality and trust methodology. Explains the dual-profile scoring model: Quality Profile (code quality, 4 factors) and Reliability Profile (operational dependability, 4 factors weighted by capability type), combined via a published 5×5 matrix into the SQS confidence score. Covers execution guidance, test infrastructure (~1340 test suites with tiered scheduling), provenance tracking, audit trails, badge system, and honest disclosure of current limitations.
| 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 of behavioral disclosure. It effectively compensates by detailing the comprehensive nature of the returned methodology (5×5 matrix, 1340 test suites, provenance tracking, current limitations), giving the agent clear expectations about the informational scope and depth of the response.
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 information-dense but well-structured, moving logically from high-level concept (dual-profile model) to specific components (4 factors each, 5×5 matrix) to operational details (test infrastructure, audit trails) to limitations. Every clause adds specific content details without redundancy, though the single-sentence density approaches the limit of optimal 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?
Despite lacking an output schema, the description comprehensively enumerates the methodology components an agent can expect (scoring models, execution guidance, test infrastructure statistics, badge system, limitations). This effectively substitutes for formal output documentation by setting clear expectations about the knowledge base being retrieved.
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 defines zero parameters (empty object). According to calibration rules, 0 parameters establishes a baseline score of 4. The description correctly requires no additional parameter explanation since there are no inputs 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 opens with a specific verb ('Get') and resource ('Strale's quality and trust methodology'), then elaborates extensively on scope: dual-profile scoring model, Quality/Reliability Profiles, SQS confidence score, test infrastructure, and audit systems. It clearly distinguishes from sibling strale_trust_profile by focusing on explanatory methodology rather than specific profile data retrieval.
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 thoroughly documents what content is returned (scoring matrices, test suites, badge systems), allowing agents to infer this is for understanding Strale's evaluation framework. However, it lacks explicit when-to-use guidance or comparison to alternatives like strale_trust_profile (e.g., 'use this to understand scoring methodology, use strale_trust_profile to retrieve specific component ratings').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_pingAInspect
Health check. Returns server status, tool count, capability count, and response time. Verifies the connection is working.
| 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 of behavioral disclosure. It compensates well by explicitly listing what the tool returns (server status, counts, response time), effectively describing the output behavior despite the lack of an output schema.
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?
Three efficient sentences with zero waste: declarative identification ('Health check'), specific return values, and functional purpose ('Verifies the connection'). Every sentence earns its 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?
Given the tool's simplicity (zero parameters) and lack of output schema, the description is complete. It documents the return values that would otherwise be unknown and adequately describes the tool's single purpose.
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 defines zero parameters, establishing a baseline score of 4. The description correctly requires no additional parameter clarification.
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 explicitly identifies this as a 'Health check' that returns specific diagnostics (server status, tool count, capability count, response time). It clearly distinguishes this diagnostic tool from operational siblings like strale_execute and strale_transaction.
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 phrase 'Verifies the connection is working' provides clear context for when to use this tool (connection verification/diagnostics). While it doesn't explicitly name alternatives or state 'use this first,' the health check purpose naturally contrasts with the operational sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_searchAInspect
Search Strale's 250+ API capabilities and bundled solutions. Covers: KYC & compliance (company verification, VAT validation, sanctions screening), data validation (IBAN, email, phone numbers), company registries (Nordic countries, US SEC EDGAR), domain & website intelligence (WHOIS, DNS, SSL certificates, trust scores, security headers, PageSpeed, tech stack detection), Web3 (live crypto prices, gas fees), and more (translation, invoice extraction, lead enrichment, AI Act assessment). Most under €0.10. Free to search.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search keyword (matched against name, description, slug) | |
| category | No | Filter by category: compliance, validation, data-extraction, developer-tools, web3, security, domain-intel, recruiting, sales, legal, text | |
| offset | No | Number of results to skip (for pagination). Default: 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses cost behavior ('Free to search', 'Most under €0.10') and scope ('250+'). However, it omits pagination behavior details, rate limits, and return format structure despite the presence of an offset parameter implying paginated results.
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 front-loaded with the core purpose and efficiently structured: scope claim → categorical proof → pricing context. Every element earns its place; the parenthetical examples justify the '250+' claim while helping users identify relevant search terms.
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 search tool with good schema coverage, the description adequately covers the searchable domain and cost model. It falls short of describing the return value structure (which would help given no output schema exists), but provides sufficient context for an agent to understand what capabilities exist within the Strale ecosystem.
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%, documenting query, category, and offset sufficiently. The description does not explicitly reference these parameters, but given the comprehensive schema coverage, no additional parameter semantics are required from the description text.
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 a specific verb and resource ('Search Strale's 250+ API capabilities'), clearly positioning it as a discovery tool. The extensive category list (KYC, validation, Web3, etc.) distinguishes it from execution-focused siblings like strale_execute and strale_transaction.
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 implicit usage guidance by listing searchable categories (compliance, validation, etc.), indicating when to use the tool. However, it lacks explicit contrast with siblings—particularly failing to state that users should search here before invoking strale_execute.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_transactionAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| transaction_id | Yes | Transaction ID returned from a strale_execute call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden and discloses return payload details (inputs, outputs, latency, price, provenance, status) and authentication behavior ('Free-tier transactions are accessible by ID without an API key'). Lacks explicit safety classification or rate limit details.
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?
Three tightly constructed sentences: action/returns, usage guidance, and auth note. Every sentence delivers distinct value with no redundancy or filler.
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 single-parameter retrieval tool, description fully compensates for missing output schema by enumerating all returned fields (latency, price, provenance, status). Covers debugging, audit, and auth contexts comprehensively.
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 has 100% coverage with 'transaction_id' already described as 'Transaction ID returned from a strale_execute call'. Description mentions 'by transaction ID' but does not add syntax, format, or constraint details beyond the schema. Baseline 3 appropriate for high schema coverage.
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?
Description opens with specific verb 'Retrieve' and resource 'past execution record', clearly distinguishing this lookup tool from sibling 'strale_execute' by referencing 'previous strale_execute call'.
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?
Explicitly states three use cases: 'inspect what a previous strale_execute call returned, debug failures, or provide an audit trail', directly naming the sibling tool and clarifying when to use this vs. the execution tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
strale_trust_profileAInspect
Check if a capability is reliable before calling it. Returns SQS quality score (0-100), Quality grade (A-F for code correctness), Reliability grade (A-F for uptime and latency), and execution guidance: whether to call directly, retry with backoff, queue for later, or use a fallback. Also returns 30-day test pass rate, known limitations, and cost envelope. Use this to decide whether a capability is safe for production use right now.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Capability or solution slug, e.g. 'swedish-company-data' or 'eu-company-due-diligence' | |
| type | No | Whether this is a capability or a bundled solution | capability |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden and comprehensively discloses return values (SQS score, A-F grades, 30-day pass rate, cost envelope) and behavioral guidance (call directly, retry with backoff, queue, or fallback).
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?
Two information-dense sentences with zero waste. First sentence front-loads purpose and detailed return structure; second provides usage context. Appropriate length for a tool with no output schema requiring manual return documentation.
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?
Excellent completeness given no output schema exists. Description compensates by enumerating all return fields (scores, grades, limitations, cost) and explaining the decision-making framework, fully preparing the agent to interpret results.
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% with both 'slug' and 'type' fully documented in the input schema. The description references 'capability' implicitly mapping to the slug parameter, but primarily focuses on return values rather than adding parameter semantics.
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 specific verb 'Check' with resource 'capability reliability' and scope 'before calling it', clearly distinguishing this introspection tool from sibling execution tools like strale_execute.
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?
Explicitly states 'Use this to decide whether a capability is safe for production use right now' and implies the workflow order (check before calling) relative to strale_execute, with clear decision points for execution strategies.
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. Dates show when Glama detected each change.
8 tool updates
v0.1.0- First observed
strale_balance - First observed
strale_execute - First observed
strale_getting_started - First observed
strale_methodology - First observed
strale_ping - First observed
strale_search - First observed
strale_transaction - First observed
strale_trust_profile
TDQS
Each tool has a clearly distinct purpose with no overlap: balance, execute, getting_started, methodology, ping, search, transaction, and trust_profile serve unique functions in the Strale ecosystem. An agent can easily differentiate them based on their names and descriptions.
All tool names follow a consistent 'strale_' prefix with descriptive nouns (e.g., strale_balance, strale_execute), using snake_case uniformly. This predictable pattern enhances readability and reduces confusion.
With 8 tools, the count is well-scoped for a server offering a diverse set of capabilities like balance checks, execution, search, and trust assessments. Each tool serves a specific role without redundancy, fitting the server's purpose effectively.
The tool surface provides comprehensive coverage for the Strale domain, including core operations (execute, search), support functions (balance, ping, transaction), and informational tools (methodology, trust_profile, getting_started). There are no obvious gaps, enabling agents to handle full workflows from discovery to execution and auditing.
Maintenance
Related MCP Connectors
Entity verification, sanctions screening, and trust scoring for AI agents.
EU compliance checks for AI agents: sanctions, company, VAT ID, IBAN, email. Pay per call.
Register every AI agent, log every action, prove it. EU AI Act compliance built in.
European business verification for AI agents: registry, VAT, sanctions, IBAN. Pay-per-call x402.
Related MCP Servers
- AlicenseAqualityDmaintenanceURL 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.161101MIT
- AlicenseAqualityCmaintenanceStructured business intelligence for AI agents. 5.5M verified entities across 34 countries, 40.3M BORME mercantile acts, EU VAT validation, GLEIF, healthcare registries. 20 tools.61MIT
- AlicenseAqualityDmaintenanceCompliance and guardrails infrastructure for AI agents, enabling safe operations within regulatory boundaries like GDPR and EU AI Act.6MIT

Qinisoofficial
AlicenseAqualityBmaintenanceThe 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.561Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/strale-io/strale'
If you have feedback or need assistance with the MCP directory API, please join our Discord server