Package Exports
- strale-mcp
- strale-mcp/tools
Readme
strale-mcp
MCP server for Strale — exposes 233+ capabilities as tools for Claude, Cursor, Windsurf, and any MCP-compatible client.
Architecture
Thin Proxy (Option A): The MCP server calls the Strale HTTP API (POST /v1/do) for each tool invocation. This keeps it decoupled from the API internals and leverages all existing middleware (auth, rate limiting, circuit breaker, wallet locking, audit trail).
At startup, the server fetches all active capabilities from GET /v1/capabilities and registers each as an MCP tool with proper input schemas.
Setup
1. Get a Strale API key
Sign up at the Strale API and get your API key (starts with sk_).
2. Configure your MCP client
There are two ways to connect: Remote (no installation needed) or Local (stdio transport).
Option A: Remote (Streamable HTTP) — Recommended
No installation required. Connect directly to the hosted MCP server.
Claude Desktop / Claude Code:
{
"mcpServers": {
"strale": {
"type": "streamableHttp",
"url": "https://api.strale.io/mcp",
"headers": {
"Authorization": "Bearer sk_live_your_key_here"
}
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"strale": {
"type": "streamableHttp",
"url": "https://api.strale.io/mcp",
"headers": {
"Authorization": "Bearer sk_live_your_key_here"
}
}
}
}Any MCP client supporting Streamable HTTP:
URL: https://api.strale.io/mcp
Auth: Authorization: Bearer sk_live_your_key_hereNote:
strale_searchworks without an API key for browsing the capability catalog. All other tools require authentication.
Option B: Local (stdio transport)
Run the MCP server locally on your machine:
Claude Desktop / Claude Code:
{
"mcpServers": {
"strale": {
"command": "node",
"args": ["/path/to/strale/packages/mcp-server/dist/server.js"],
"env": {
"STRALE_API_KEY": "sk_live_your_key_here"
}
}
}
}Cursor (.cursor/mcp.json):
{
"mcpServers": {
"strale": {
"command": "node",
"args": ["/path/to/strale/packages/mcp-server/dist/server.js"],
"env": {
"STRALE_API_KEY": "sk_live_your_key_here"
}
}
}
}Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
STRALE_API_KEY |
Yes (for execution) | — | Your Strale API key |
STRALE_BASE_URL |
No | https://api.strale.io |
API base URL |
STRALE_MAX_PRICE_CENTS |
No | 200 |
Default max price per execution (€2.00) |
Available Tools
Meta-tools
strale_search— Search and filter capabilities by keyword or category. Use this first to find the right tool.strale_balance— Check your wallet balance.
Capability tools (233+)
Every active Strale capability is registered as an MCP tool using its slug as the tool name. Examples:
| Tool | Description | Price |
|---|---|---|
vat-validate |
Validate EU VAT number via VIES | €0.10 |
swedish-company-data |
Extract Swedish company data | €0.80 |
iban-validate |
Validate IBAN numbers | €0.05 |
invoice-extract |
Extract data from invoice images | €0.50 |
web-extract |
Extract structured data from web pages | €0.15 |
translate |
Translate text between languages | €0.10 |
| ... | 233 total capabilities |
Use strale_search to discover capabilities by keyword.
Development
# Build
npm run build --workspace=packages/mcp-server
# Run in development (with tsx)
npm run dev --workspace=packages/mcp-serverHow it works
- Server starts and fetches all active capabilities from the Strale API
- Each capability is registered as an MCP tool with its JSON Schema as the input schema
- When a tool is called, the server sends
POST /v1/dowithcapability_slugandinputs - The response (output, price, latency, provenance) is returned as structured text
- Async capabilities (>10s) return a transaction ID for polling
- Errors (insufficient balance, suspended capability, etc.) are returned with helpful messages