APIClaw
The API layer for AI agents. World's biggest API index with 22,000+ APIs and growing. Agents discover and call APIs at runtime with semantic search, structured metadata, and 18 Direct Call APIs including AI providers.
README
๐ฆ APIClaw
The API layer for AI agents. 22,000+ APIs indexed. Direct Call execution. Zero config.
APIs Indexed: 22,392 โข Open APIs: 1,636 โข Direct Call Providers: 18
Quick Start
# Install APIClaw into Claude Desktop or Claude Code
npx @nordsym/apiclaw mcp-install
# That's it! Restart your AI assistant and ask:
# "List available APIs" or "Send an SMS via 46elks"
APIClaw automatically detects Claude Desktop and Claude Code โ then configures itself as an MCP server in seconds. Works with any MCP-compatible agent.
What is APIClaw?
The API layer for AI agents. APIClaw is an MCP server that gives any MCP-compatible agent access to real-world APIs:
- ๐ฑ SMS & Voice โ 46elks, Twilio
- ๐ง Email โ Resend, SendGrid
- ๐ณ Payments โ Stripe
- ๐ Search โ Brave Search
- ๐ค AI โ OpenRouter, ElevenLabs
- ...and 100+ more โ growing weekly
Instead of manually configuring API keys and reading documentation, just tell your AI: "Send a confirmation SMS to +46701234567" โ and it works.
Installation
Option 1: MCP Install (Recommended)
npx @nordsym/apiclaw mcp-install
This will:
- ๐ Detect Claude Desktop or Claude Code
- ๐ Add APIClaw to the MCP config
- โ Verify the setup
Option 2: Manual Installation
npm install -g @nordsym/apiclaw
apiclaw setup
Option 3: Use npx (No Install)
Just use npx @nordsym/apiclaw anywhere โ it downloads on demand.
Commands
mcp-install
Simple, focused installation for Claude Desktop and Claude Code.
# Auto-detect and install
npx @nordsym/apiclaw mcp-install
# Install to specific client
npx @nordsym/apiclaw mcp-install --client claude-desktop
npx @nordsym/apiclaw mcp-install --client claude-code
# Preview changes without applying
npx @nordsym/apiclaw mcp-install --dry-run
setup
Full-featured setup with support for all MCP clients.
# Auto-detect and configure all clients
npx @nordsym/apiclaw setup
# Configure specific client
npx @nordsym/apiclaw setup --client claude-desktop
npx @nordsym/apiclaw setup --client cursor
npx @nordsym/apiclaw setup --client windsurf
npx @nordsym/apiclaw setup --client cline
npx @nordsym/apiclaw setup --client continue
# Custom config path
npx @nordsym/apiclaw setup --config /path/to/config.json
# Link a workspace
npx @nordsym/apiclaw setup --workspace ws_abc123
# Preview changes without applying
npx @nordsym/apiclaw setup --dry-run
# Force overwrite existing config
npx @nordsym/apiclaw setup --force
# Interactive mode
npx @nordsym/apiclaw setup --wizard
doctor
Diagnose your APIClaw setup.
npx @nordsym/apiclaw doctor
Output:
๐ APIClaw Health Check
========================
System:
โ Node.js v20.11.0
โ npm 10.2.4
โ npx available
MCP Clients:
โ Claude Desktop - Configured โ
โ Cursor - Configured โ
โ Windsurf - Not installed
Connectivity:
โ api.apiclaw.com reachable
Status: All systems operational โ
restore
Restore config from backup.
# Restore most recent backup
npx @nordsym/apiclaw restore
# List available backups
npx @nordsym/apiclaw restore --list
# Restore specific backup
npx @nordsym/apiclaw restore --backup config.backup.1709150400.json
uninstall
Remove APIClaw from all configured clients.
npx @nordsym/apiclaw uninstall
# Remove from specific client
npx @nordsym/apiclaw uninstall --client cursor
Options
| Option | Description |
|---|---|
--client <name> |
Target specific MCP client |
--config <path> |
Use custom config file path |
--workspace <id> |
Link an APIClaw workspace |
--dry-run |
Preview changes without applying |
--force |
Overwrite existing APIClaw config |
--wizard |
Interactive setup mode |
--no-backup |
Skip creating backup (not recommended) |
--verbose |
Show detailed output |
--version |
Show version number |
--help |
Show help |
Supported MCP Clients
| Client | macOS | Windows | Linux |
|---|---|---|---|
| Claude Desktop | โ | โ | โ |
| Cursor | โ | โ | โ |
| Windsurf | โ | โ | โ |
| Cline (VS Code) | โ | โ | โ |
| Continue | โ | โ | โ |
| Custom | โ | โ | โ |
Config Locations
<details> <summary>Claude Desktop</summary>
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
</details>
<details> <summary>Cursor</summary>
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Cursor/User/globalStorage/cursor.mcp/config.json |
| Windows | %APPDATA%\Cursor\User\globalStorage\cursor.mcp\config.json |
| Linux | ~/.config/Cursor/User/globalStorage/cursor.mcp/config.json |
</details>
<details> <summary>Windsurf</summary>
| OS | Path |
|---|---|
| macOS | ~/.codeium/windsurf/mcp_config.json |
| Windows | %USERPROFILE%\.codeium\windsurf\mcp_config.json |
| Linux | ~/.codeium/windsurf/mcp_config.json |
</details>
<details> <summary>Cline</summary>
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
| Windows | %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json |
| Linux | ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json |
</details>
<details> <summary>Continue</summary>
| OS | Path |
|---|---|
| macOS | ~/.continue/config.json |
| Windows | %USERPROFILE%\.continue\config.json |
| Linux | ~/.continue/config.json |
</details>
Enterprise Deployment
Deploy APIClaw to your entire development team.
Environment Variables
# Pre-configure workspace for all users
export APICLAW_WORKSPACE="ws_enterprise_123"
# Point to self-hosted instance
export APICLAW_API_URL="https://api.company.com/apiclaw"
# Disable telemetry
export APICLAW_DISABLE_TELEMETRY="true"
npx @nordsym/apiclaw mcp-install
Generate Deployment Script
# Generate cross-platform setup script
npx @nordsym/apiclaw setup --enterprise --output deploy.sh
The generated script handles:
- OS detection
- Client detection
- Config injection
- Verification
- Error reporting
MDM/Group Policy
See Enterprise Deployment Guide for:
- Jamf/Kandji/Mosyle (macOS)
- Intune/Group Policy (Windows)
- Ansible/Chef/Puppet (Linux)
Troubleshooting
"Permission denied"
# Option 1: Run with sudo
sudo npx @nordsym/apiclaw mcp-install
# Option 2: Fix permissions
chmod 644 ~/Library/Application\ Support/Claude/claude_desktop_config.json
"Config file not found"
The MCP client hasn't created its config yet:
- Open the client (Claude Desktop or Claude Code)
- Close it
- Try mcp-install again
Or use the full setup command with a custom path:
npx @nordsym/apiclaw setup --config /path/to/config.json
"Invalid JSON"
Your config file has syntax errors:
# Restore from backup
npx @nordsym/apiclaw restore --list
npx @nordsym/apiclaw restore
# Or manually fix the JSON
"Already configured"
APIClaw is already set up. To update:
npx @nordsym/apiclaw setup --force
Still having issues?
# Run diagnostics
npx @nordsym/apiclaw doctor --verbose
# Get help
https://docs.apiclaw.com/setup
https://github.com/nordsym/apiclaw/issues
How It Works
APIClaw modifies your MCP client's config file to register itself as a server:
{
"mcpServers": {
"apiclaw": {
"command": "npx",
"args": ["-y", "@nordsym/apiclaw"]
}
}
}
When your AI assistant starts, it launches APIClaw as an MCP server. APIClaw then:
- Exposes available APIs as MCP tools
- Handles authentication and rate limiting
- Executes API calls on behalf of the AI
Safety Features
Automatic Backups
Before modifying any config, APIClaw creates a timestamped backup:
claude_desktop_config.backup.1709150400.json
Non-Destructive
- Never overwrites existing configurations
- Deep merges APIClaw into
mcpServers - Preserves all other settings
Validation
- Parses JSON before and after modifications
- Verifies required fields exist
- Rolls back on any error
Dry-Run Mode
Test API calls without actually executing them. Perfect for debugging, development, and agent testing.
Usage
// In MCP tool call
call_api({
provider: "46elks",
action: "send_sms",
params: {
to: "+46701234567",
message: "Hello from dry-run!"
},
dry_run: true // โ No actual API call made
})
Response
{
"dry_run": true,
"provider": "46elks",
"action": "send_sms",
"would_send": {
"url": "https://api.46elks.com/a1/sms",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Basic [base64(username:password)]"
},
"body": {
"from": "APIClaw",
"to": "+46701234567",
"message": "Hello from dry-run!"
}
},
"mock_response": {
"success": true,
"data": {
"id": "mock_sms_123",
"status": "delivered"
},
"estimated_cost": "~0.35-0.52 SEK"
},
"notes": [
"โ ๏ธ DRY-RUN MODE: No actual API call was made",
"This shows what WOULD be sent if you remove dry_run: true"
]
}
Benefits
- ๐ฐ No cost โ Test without burning API credits
- ๐ Debug โ See exact request that would be sent
- ๐งช Test โ Validate agent workflows before going live
- ๐ Mock data โ Get realistic response shapes for development
Supported Providers
All Direct Call providers support dry-run:
- 46elks, Twilio (SMS)
- Resend (Email)
- Brave Search
- OpenRouter (LLM)
- ElevenLabs (TTS)
- Replicate (AI models)
- Firecrawl (Web scraping)
- GitHub
- E2B (Code sandbox)
Error Handling
APIClaw returns structured error responses across all providers, making it easy to handle failures programmatically.
Error Response Format
All errors follow this structure:
{
"success": false,
"provider": "replicate",
"action": "run",
"error": "Rate limit exceeded",
"code": "RATE_LIMITED"
}
Error Codes
| Code | Description |
|---|---|
RATE_LIMITED |
API rate limit hit (429) |
SERVICE_UNAVAILABLE |
Service temporarily unavailable (502, 503, 504) |
UNAUTHORIZED |
Invalid or missing credentials (401) |
FORBIDDEN |
Access denied (403) |
NOT_FOUND |
Resource not found (404) |
BAD_REQUEST |
Invalid request parameters (400) |
TIMEOUT |
Request timed out |
NETWORK_ERROR |
Network connectivity issue |
PROVIDER_ERROR |
Provider-specific error |
INVALID_PARAMS |
Missing or invalid parameters |
NO_CREDENTIALS |
No credentials configured for provider |
UNKNOWN_PROVIDER |
Provider not available |
UNKNOWN_ACTION |
Action not available for provider |
MAX_RETRIES_EXCEEDED |
All retry attempts failed |
Automatic Retry
APIClaw automatically retries transient failures with exponential backoff:
- Retryable errors: 429 (Rate Limited), 502, 503, 504 (Service Unavailable)
- Max retries: 3
- Backoff: Exponential with jitter (1s โ 2s โ 4s, capped at 30s)
- Retry-After: Respects
Retry-Afterheader when present
// APIClaw handles retries automatically โ you just see the final result
const result = await call_api({
provider: "openrouter",
action: "chat",
params: { messages: [...] }
});
if (!result.success) {
console.log(`Error: ${result.error} (${result.code})`);
// Handle error based on code
if (result.code === "RATE_LIMITED") {
// Wait longer before next request
}
}
Best Practices
- Always check
successbefore accessingdata - Use
codefor programmatic error handling - Use
errorfor human-readable messages - Let APIClaw retry โ don't implement your own retry logic for 429/503
Development
# Clone the repo
git clone https://github.com/nordsym/apiclaw.git
cd apiclaw
# Install dependencies
npm install
# Build
npm run build
# Run locally
npm run dev
# Test setup locally
npm run setup:test
License
MIT ยฉ NordSym
Links
- Website: apiclaw.com
- Documentation: docs.apiclaw.com
- GitHub: github.com/nordsym/apiclaw
- npm: @nordsym/apiclaw
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.