APIClaw

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.

Category
Visit Server

README

๐Ÿฆž APIClaw

The API layer for AI agents. 22,000+ APIs indexed. Direct Call execution. Zero config.

npm version npm downloads License: MIT MCP

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:

  1. ๐Ÿ” Detect Claude Desktop or Claude Code
  2. ๐Ÿ“ Add APIClaw to the MCP config
  3. โœ… 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:

  1. Open the client (Claude Desktop or Claude Code)
  2. Close it
  3. 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:

  1. Exposes available APIs as MCP tools
  2. Handles authentication and rate limiting
  3. 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-After header 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

  1. Always check success before accessing data
  2. Use code for programmatic error handling
  3. Use error for human-readable messages
  4. 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

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured