@nordsym/apiclaw 1.3.6 → 1.3.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +422 -169
- package/convex/_generated/api.d.ts +16 -0
- package/convex/agents.ts +403 -0
- package/convex/billing.ts +651 -216
- package/convex/crons.ts +17 -0
- package/convex/directCall.ts +80 -0
- package/convex/earnProgress.ts +753 -0
- package/convex/email.ts +135 -82
- package/convex/feedback.ts +265 -0
- package/convex/http.ts +80 -4
- package/convex/logs.ts +304 -0
- package/convex/providerKeys.ts +289 -0
- package/convex/providers.ts +18 -0
- package/convex/schema.ts +185 -1
- package/convex/stripeActions.ts +512 -0
- package/convex/webhooks.ts +494 -0
- package/convex/workspaces.ts +158 -3
- package/dist/adapters/base.d.ts +112 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +247 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude-desktop.d.ts +12 -0
- package/dist/adapters/claude-desktop.d.ts.map +1 -0
- package/dist/adapters/claude-desktop.js +36 -0
- package/dist/adapters/claude-desktop.js.map +1 -0
- package/dist/adapters/cline.d.ts +20 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/cline.js +77 -0
- package/dist/adapters/cline.js.map +1 -0
- package/dist/adapters/continue.d.ts +26 -0
- package/dist/adapters/continue.d.ts.map +1 -0
- package/dist/adapters/continue.js +68 -0
- package/dist/adapters/continue.js.map +1 -0
- package/dist/adapters/cursor.d.ts +12 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +38 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/custom.d.ts +47 -0
- package/dist/adapters/custom.d.ts.map +1 -0
- package/dist/adapters/custom.js +146 -0
- package/dist/adapters/custom.js.map +1 -0
- package/dist/adapters/detect.d.ts +69 -0
- package/dist/adapters/detect.d.ts.map +1 -0
- package/dist/adapters/detect.js +158 -0
- package/dist/adapters/detect.js.map +1 -0
- package/dist/adapters/index.d.ts +21 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +23 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/windsurf.d.ts +12 -0
- package/dist/adapters/windsurf.d.ts.map +1 -0
- package/dist/adapters/windsurf.js +39 -0
- package/dist/adapters/windsurf.js.map +1 -0
- package/dist/bin.d.ts +9 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +19 -0
- package/dist/bin.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +34 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +312 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/index.d.ts +9 -0
- package/dist/cli/commands/index.d.ts.map +1 -0
- package/dist/cli/commands/index.js +9 -0
- package/dist/cli/commands/index.js.map +1 -0
- package/dist/cli/commands/restore.d.ts +50 -0
- package/dist/cli/commands/restore.d.ts.map +1 -0
- package/dist/cli/commands/restore.js +260 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/setup.d.ts +19 -0
- package/dist/cli/commands/setup.d.ts.map +1 -0
- package/dist/cli/commands/setup.js +206 -0
- package/dist/cli/commands/setup.js.map +1 -0
- package/dist/cli/commands/uninstall.d.ts +37 -0
- package/dist/cli/commands/uninstall.d.ts.map +1 -0
- package/dist/cli/commands/uninstall.js +189 -0
- package/dist/cli/commands/uninstall.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +97 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/discovery.d.ts +6 -2
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +296 -2
- package/dist/discovery.js.map +1 -1
- package/dist/enterprise/env.d.ts +56 -0
- package/dist/enterprise/env.d.ts.map +1 -0
- package/dist/enterprise/env.js +124 -0
- package/dist/enterprise/env.js.map +1 -0
- package/dist/enterprise/index.d.ts +7 -0
- package/dist/enterprise/index.d.ts.map +1 -0
- package/dist/enterprise/index.js +7 -0
- package/dist/enterprise/index.js.map +1 -0
- package/dist/enterprise/script-generator.d.ts +32 -0
- package/dist/enterprise/script-generator.d.ts.map +1 -0
- package/dist/enterprise/script-generator.js +461 -0
- package/dist/enterprise/script-generator.js.map +1 -0
- package/dist/execute.d.ts +21 -0
- package/dist/execute.d.ts.map +1 -1
- package/dist/execute.js +231 -0
- package/dist/execute.js.map +1 -1
- package/dist/index.js +257 -7
- package/dist/index.js.map +1 -1
- package/dist/metered.d.ts +62 -0
- package/dist/metered.d.ts.map +1 -0
- package/dist/metered.js +81 -0
- package/dist/metered.js.map +1 -0
- package/dist/stripe.d.ts +62 -0
- package/dist/stripe.d.ts.map +1 -1
- package/dist/stripe.js +212 -0
- package/dist/stripe.js.map +1 -1
- package/dist/types.d.ts +29 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/ui/colors.d.ts +111 -0
- package/dist/ui/colors.d.ts.map +1 -0
- package/dist/ui/colors.js +185 -0
- package/dist/ui/colors.js.map +1 -0
- package/dist/ui/errors.d.ts +69 -0
- package/dist/ui/errors.d.ts.map +1 -0
- package/dist/ui/errors.js +334 -0
- package/dist/ui/errors.js.map +1 -0
- package/dist/ui/index.d.ts +10 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +14 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/prompts.d.ts +88 -0
- package/dist/ui/prompts.d.ts.map +1 -0
- package/dist/ui/prompts.js +295 -0
- package/dist/ui/prompts.js.map +1 -0
- package/dist/ui/spinner.d.ts +112 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +229 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/utils/backup.d.ts +48 -0
- package/dist/utils/backup.d.ts.map +1 -0
- package/dist/utils/backup.js +182 -0
- package/dist/utils/backup.js.map +1 -0
- package/dist/utils/config.d.ts +80 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +221 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/os.d.ts +45 -0
- package/dist/utils/os.d.ts.map +1 -0
- package/dist/utils/os.js +106 -0
- package/dist/utils/os.js.map +1 -0
- package/dist/utils/paths.d.ts +38 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +160 -0
- package/dist/utils/paths.js.map +1 -0
- package/docs/PRD-BILLING.md +226 -0
- package/docs/PRD-EARN-SYSTEM.md +261 -0
- package/docs/PRD-MCP-AUTO-SETUP.md +623 -0
- package/docs/PRD-final-polish.md +117 -0
- package/docs/PRD-mobile-responsive.md +56 -0
- package/docs/PRD-navigation-expansion.md +295 -0
- package/docs/PRD-stripe-billing.md +312 -0
- package/docs/PRD-workspace-cleanup.md +200 -0
- package/docs/enterprise-deployment.md +728 -0
- package/landing/next.config.mjs +14 -0
- package/landing/public/stats.json +4 -2
- package/landing/scripts/generate-stats.js +12 -0
- package/landing/src/app/api/billing/checkout/route.ts +109 -0
- package/landing/src/app/api/billing/payment-method/route.ts +118 -0
- package/landing/src/app/api/billing/portal/route.ts +64 -0
- package/landing/src/app/api/workspace-auth/magic-link/route.ts +6 -3
- package/landing/src/app/auth/verify/page.tsx +31 -9
- package/landing/src/app/docs/page.tsx +1 -1
- package/landing/src/app/earn/page.tsx +6 -6
- package/landing/src/app/join/page.tsx +49 -0
- package/landing/src/app/login/page.tsx +8 -2
- package/landing/src/app/page.tsx +81 -96
- package/landing/src/app/providers/dashboard/page.tsx +1 -1
- package/landing/src/app/providers/register/page.tsx +1 -1
- package/landing/src/app/workspace/page.tsx +3269 -534
- package/landing/src/components/CheckoutButton.tsx +188 -0
- package/landing/src/components/EarnCreditsTab.tsx +842 -0
- package/landing/src/components/Toast.tsx +84 -0
- package/landing/src/lib/stats.json +3 -1
- package/package.json +9 -2
- package/src/adapters/base.ts +363 -0
- package/src/adapters/claude-desktop.ts +41 -0
- package/src/adapters/cline.ts +88 -0
- package/src/adapters/continue.ts +91 -0
- package/src/adapters/cursor.ts +43 -0
- package/src/adapters/custom.ts +188 -0
- package/src/adapters/detect.ts +202 -0
- package/src/adapters/index.ts +47 -0
- package/src/adapters/windsurf.ts +44 -0
- package/src/bin.ts +19 -0
- package/src/cli/commands/doctor.ts +367 -0
- package/src/cli/commands/index.ts +9 -0
- package/src/cli/commands/restore.ts +333 -0
- package/src/cli/commands/setup.ts +276 -0
- package/src/cli/commands/uninstall.ts +240 -0
- package/src/cli/index.ts +107 -0
- package/src/discovery.ts +328 -3
- package/src/enterprise/env.ts +156 -0
- package/src/enterprise/index.ts +7 -0
- package/src/enterprise/script-generator.ts +481 -0
- package/src/execute.ts +256 -0
- package/src/index.ts +290 -7
- package/src/metered.ts +149 -0
- package/src/stripe.ts +253 -0
- package/src/types.ts +32 -0
- package/src/ui/colors.ts +219 -0
- package/src/ui/errors.ts +394 -0
- package/src/ui/index.ts +17 -0
- package/src/ui/prompts.ts +390 -0
- package/src/ui/spinner.ts +325 -0
- package/src/utils/backup.ts +224 -0
- package/src/utils/config.ts +315 -0
- package/src/utils/os.ts +124 -0
- package/src/utils/paths.ts +203 -0
- package/landing/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -1,230 +1,481 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<p align="center">
|
|
8
|
-
22,000+ APIs. One MCP config. Direct Call = no keys needed.
|
|
9
|
-
</p>
|
|
10
|
-
|
|
11
|
-
<p align="center">
|
|
12
|
-
<a href="https://apiclaw.com">Website</a> •
|
|
13
|
-
<a href="#direct-call">Direct Call</a> •
|
|
14
|
-
<a href="#quick-start">Quick Start</a> •
|
|
15
|
-
<a href="#for-providers">For Providers</a>
|
|
16
|
-
</p>
|
|
17
|
-
|
|
18
|
-
<p align="center">
|
|
19
|
-
<img src="https://img.shields.io/badge/APIs-22,392-ef4444" alt="APIs" />
|
|
20
|
-
<img src="https://img.shields.io/badge/Categories-14-171717" alt="Categories" />
|
|
21
|
-
<img src="https://img.shields.io/badge/Direct_Call-11_Providers-00d4ff" alt="Direct Call" />
|
|
22
|
-
<img src="https://img.shields.io/badge/MCP-Compatible-00d4ff" alt="MCP Compatible" />
|
|
23
|
-
<img src="https://img.shields.io/badge/License-MIT-green" alt="License" />
|
|
24
|
-
</p>
|
|
1
|
+
# APIClaw
|
|
2
|
+
|
|
3
|
+
> **Universal API access for AI agents.** Connect any MCP client to thousands of APIs with zero configuration.
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/@nordsym/apiclaw)
|
|
6
|
+
[](LICENSE)
|
|
25
7
|
|
|
26
8
|
---
|
|
27
9
|
|
|
28
|
-
##
|
|
10
|
+
## Quick Start
|
|
29
11
|
|
|
30
|
-
|
|
12
|
+
```bash
|
|
13
|
+
# Auto-detect and configure all MCP clients
|
|
14
|
+
npx @nordsym/apiclaw setup
|
|
31
15
|
|
|
32
|
-
|
|
16
|
+
# That's it! Restart your AI assistant and ask:
|
|
17
|
+
# "List available APIs" or "Send an SMS via 46elks"
|
|
18
|
+
```
|
|
33
19
|
|
|
34
|
-
|
|
35
|
-
- **Direct Call** — Execute without API keys (we handle auth)
|
|
36
|
-
- **One config** — Add APIClaw MCP, access everything
|
|
20
|
+
APIClaw automatically detects Claude Desktop, Cursor, Windsurf, Cline, and Continue — then configures itself as an MCP server in seconds.
|
|
37
21
|
|
|
38
22
|
---
|
|
39
23
|
|
|
40
|
-
##
|
|
24
|
+
## What is APIClaw?
|
|
41
25
|
|
|
42
|
-
|
|
26
|
+
APIClaw is an MCP (Model Context Protocol) server that gives AI coding assistants access to real-world APIs:
|
|
43
27
|
|
|
44
|
-
|
|
28
|
+
- **📱 SMS & Voice** — 46elks, Twilio
|
|
29
|
+
- **📧 Email** — Resend, SendGrid
|
|
30
|
+
- **💳 Payments** — Stripe
|
|
31
|
+
- **🔍 Search** — Brave Search
|
|
32
|
+
- **🤖 AI** — OpenRouter, ElevenLabs
|
|
33
|
+
- **...and 100+ more** — growing weekly
|
|
45
34
|
|
|
46
|
-
|
|
47
|
-
// Run any ML model
|
|
48
|
-
mcp.call("call_api", {
|
|
49
|
-
provider: "replicate",
|
|
50
|
-
action: "run_model",
|
|
51
|
-
params: {
|
|
52
|
-
model: "stability-ai/sdxl",
|
|
53
|
-
input: { prompt: "a cyber-lobster in neon lights" }
|
|
54
|
-
}
|
|
55
|
-
})
|
|
35
|
+
Instead of manually configuring API keys and reading documentation, just tell your AI: *"Send a confirmation SMS to +46701234567"* — and it works.
|
|
56
36
|
|
|
57
|
-
|
|
58
|
-
mcp.call("call_api", {
|
|
59
|
-
provider: "openrouter",
|
|
60
|
-
action: "chat",
|
|
61
|
-
params: {
|
|
62
|
-
model: "anthropic/claude-3-opus",
|
|
63
|
-
messages: [{ role: "user", content: "Hello!" }]
|
|
64
|
-
}
|
|
65
|
-
})
|
|
37
|
+
---
|
|
66
38
|
|
|
67
|
-
|
|
68
|
-
mcp.call("call_api", {
|
|
69
|
-
provider: "e2b",
|
|
70
|
-
action: "run_code",
|
|
71
|
-
params: {
|
|
72
|
-
language: "python",
|
|
73
|
-
code: "print('Hello from sandbox!')"
|
|
74
|
-
}
|
|
75
|
-
})
|
|
39
|
+
## Installation
|
|
76
40
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
41
|
+
### Option 1: Auto-Setup (Recommended)
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx @nordsym/apiclaw setup
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This will:
|
|
48
|
+
1. 🔍 Detect installed MCP clients
|
|
49
|
+
2. 📝 Add APIClaw to their config files
|
|
50
|
+
3. ✅ Verify the setup
|
|
51
|
+
|
|
52
|
+
### Option 2: Manual Installation
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g @nordsym/apiclaw
|
|
56
|
+
apiclaw setup
|
|
83
57
|
```
|
|
84
58
|
|
|
85
|
-
###
|
|
59
|
+
### Option 3: Use npx (No Install)
|
|
86
60
|
|
|
87
|
-
|
|
88
|
-
|----------|--------------|---------|
|
|
89
|
-
| **OpenRouter** | 100+ AI models (Claude, GPT, Llama, etc.) | `chat` |
|
|
90
|
-
| **Replicate** | Any ML model (Stable Diffusion, Whisper, etc.) | `run_model`, `get_prediction` |
|
|
91
|
-
| **E2B** | Secure code sandbox for agents | `run_code`, `run_shell` |
|
|
92
|
-
| **Firecrawl** | Web scraping & crawling | `scrape`, `crawl` |
|
|
93
|
-
| **ElevenLabs** | Voice synthesis | `text_to_speech` |
|
|
94
|
-
| **GitHub** | Repos, issues, code search | `search`, `repos`, `issues` |
|
|
95
|
-
| **Brave Search** | Web search | `search` |
|
|
96
|
-
| **Resend** | Transactional email | `send_email` |
|
|
97
|
-
| **46elks** | SMS/Voice (Swedish/EU) | `send_sms` |
|
|
98
|
-
| **Twilio** | SMS/Voice (Global) | `send_sms` |
|
|
99
|
-
| **CoinGecko** | Crypto prices & data | `price`, `markets` |
|
|
61
|
+
Just use `npx @nordsym/apiclaw` anywhere — it downloads on demand.
|
|
100
62
|
|
|
101
63
|
---
|
|
102
64
|
|
|
103
|
-
##
|
|
65
|
+
## Commands
|
|
66
|
+
|
|
67
|
+
### `setup`
|
|
68
|
+
|
|
69
|
+
Configure APIClaw as an MCP server.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
# Auto-detect and configure all clients
|
|
73
|
+
npx @nordsym/apiclaw setup
|
|
74
|
+
|
|
75
|
+
# Configure specific client
|
|
76
|
+
npx @nordsym/apiclaw setup --client claude-desktop
|
|
77
|
+
npx @nordsym/apiclaw setup --client cursor
|
|
78
|
+
npx @nordsym/apiclaw setup --client windsurf
|
|
79
|
+
npx @nordsym/apiclaw setup --client cline
|
|
80
|
+
npx @nordsym/apiclaw setup --client continue
|
|
81
|
+
|
|
82
|
+
# Custom config path
|
|
83
|
+
npx @nordsym/apiclaw setup --config /path/to/config.json
|
|
84
|
+
|
|
85
|
+
# Link a workspace
|
|
86
|
+
npx @nordsym/apiclaw setup --workspace ws_abc123
|
|
87
|
+
|
|
88
|
+
# Preview changes without applying
|
|
89
|
+
npx @nordsym/apiclaw setup --dry-run
|
|
90
|
+
|
|
91
|
+
# Force overwrite existing config
|
|
92
|
+
npx @nordsym/apiclaw setup --force
|
|
93
|
+
|
|
94
|
+
# Interactive mode
|
|
95
|
+
npx @nordsym/apiclaw setup --wizard
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### `doctor`
|
|
99
|
+
|
|
100
|
+
Diagnose your APIClaw setup.
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npx @nordsym/apiclaw doctor
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Output:
|
|
107
|
+
```
|
|
108
|
+
🔍 APIClaw Health Check
|
|
109
|
+
========================
|
|
110
|
+
|
|
111
|
+
System:
|
|
112
|
+
✓ Node.js v20.11.0
|
|
113
|
+
✓ npm 10.2.4
|
|
114
|
+
✓ npx available
|
|
115
|
+
|
|
116
|
+
MCP Clients:
|
|
117
|
+
✓ Claude Desktop - Configured ✓
|
|
118
|
+
✓ Cursor - Configured ✓
|
|
119
|
+
✗ Windsurf - Not installed
|
|
120
|
+
|
|
121
|
+
Connectivity:
|
|
122
|
+
✓ api.apiclaw.com reachable
|
|
123
|
+
|
|
124
|
+
Status: All systems operational ✓
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### `restore`
|
|
128
|
+
|
|
129
|
+
Restore config from backup.
|
|
104
130
|
|
|
105
131
|
```bash
|
|
106
|
-
|
|
132
|
+
# Restore most recent backup
|
|
133
|
+
npx @nordsym/apiclaw restore
|
|
134
|
+
|
|
135
|
+
# List available backups
|
|
136
|
+
npx @nordsym/apiclaw restore --list
|
|
137
|
+
|
|
138
|
+
# Restore specific backup
|
|
139
|
+
npx @nordsym/apiclaw restore --backup config.backup.1709150400.json
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### `uninstall`
|
|
143
|
+
|
|
144
|
+
Remove APIClaw from all configured clients.
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
npx @nordsym/apiclaw uninstall
|
|
148
|
+
|
|
149
|
+
# Remove from specific client
|
|
150
|
+
npx @nordsym/apiclaw uninstall --client cursor
|
|
107
151
|
```
|
|
108
152
|
|
|
109
|
-
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Options
|
|
156
|
+
|
|
157
|
+
| Option | Description |
|
|
158
|
+
|--------|-------------|
|
|
159
|
+
| `--client <name>` | Target specific MCP client |
|
|
160
|
+
| `--config <path>` | Use custom config file path |
|
|
161
|
+
| `--workspace <id>` | Link an APIClaw workspace |
|
|
162
|
+
| `--dry-run` | Preview changes without applying |
|
|
163
|
+
| `--force` | Overwrite existing APIClaw config |
|
|
164
|
+
| `--wizard` | Interactive setup mode |
|
|
165
|
+
| `--no-backup` | Skip creating backup (not recommended) |
|
|
166
|
+
| `--verbose` | Show detailed output |
|
|
167
|
+
| `--version` | Show version number |
|
|
168
|
+
| `--help` | Show help |
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Supported MCP Clients
|
|
173
|
+
|
|
174
|
+
| Client | macOS | Windows | Linux |
|
|
175
|
+
|--------|:-----:|:-------:|:-----:|
|
|
176
|
+
| **Claude Desktop** | ✅ | ✅ | ✅ |
|
|
177
|
+
| **Cursor** | ✅ | ✅ | ✅ |
|
|
178
|
+
| **Windsurf** | ✅ | ✅ | ✅ |
|
|
179
|
+
| **Cline** (VS Code) | ✅ | ✅ | ✅ |
|
|
180
|
+
| **Continue** | ✅ | ✅ | ✅ |
|
|
181
|
+
| **Custom** | ✅ | ✅ | ✅ |
|
|
182
|
+
|
|
183
|
+
### Config Locations
|
|
184
|
+
|
|
185
|
+
<details>
|
|
186
|
+
<summary>Claude Desktop</summary>
|
|
187
|
+
|
|
188
|
+
| OS | Path |
|
|
189
|
+
|----|------|
|
|
190
|
+
| macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
|
|
191
|
+
| Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
|
|
192
|
+
| Linux | `~/.config/Claude/claude_desktop_config.json` |
|
|
193
|
+
|
|
194
|
+
</details>
|
|
195
|
+
|
|
196
|
+
<details>
|
|
197
|
+
<summary>Cursor</summary>
|
|
198
|
+
|
|
199
|
+
| OS | Path |
|
|
200
|
+
|----|------|
|
|
201
|
+
| macOS | `~/Library/Application Support/Cursor/User/globalStorage/cursor.mcp/config.json` |
|
|
202
|
+
| Windows | `%APPDATA%\Cursor\User\globalStorage\cursor.mcp\config.json` |
|
|
203
|
+
| Linux | `~/.config/Cursor/User/globalStorage/cursor.mcp/config.json` |
|
|
204
|
+
|
|
205
|
+
</details>
|
|
206
|
+
|
|
207
|
+
<details>
|
|
208
|
+
<summary>Windsurf</summary>
|
|
209
|
+
|
|
210
|
+
| OS | Path |
|
|
211
|
+
|----|------|
|
|
212
|
+
| macOS | `~/.codeium/windsurf/mcp_config.json` |
|
|
213
|
+
| Windows | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` |
|
|
214
|
+
| Linux | `~/.codeium/windsurf/mcp_config.json` |
|
|
215
|
+
|
|
216
|
+
</details>
|
|
217
|
+
|
|
218
|
+
<details>
|
|
219
|
+
<summary>Cline</summary>
|
|
220
|
+
|
|
221
|
+
| OS | Path |
|
|
222
|
+
|----|------|
|
|
223
|
+
| macOS | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` |
|
|
224
|
+
| Windows | `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json` |
|
|
225
|
+
| Linux | `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` |
|
|
226
|
+
|
|
227
|
+
</details>
|
|
228
|
+
|
|
229
|
+
<details>
|
|
230
|
+
<summary>Continue</summary>
|
|
231
|
+
|
|
232
|
+
| OS | Path |
|
|
233
|
+
|----|------|
|
|
234
|
+
| macOS | `~/.continue/config.json` |
|
|
235
|
+
| Windows | `%USERPROFILE%\.continue\config.json` |
|
|
236
|
+
| Linux | `~/.continue/config.json` |
|
|
237
|
+
|
|
238
|
+
</details>
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
## Enterprise Deployment
|
|
243
|
+
|
|
244
|
+
Deploy APIClaw to your entire development team.
|
|
245
|
+
|
|
246
|
+
### Environment Variables
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
# Pre-configure workspace for all users
|
|
250
|
+
export APICLAW_WORKSPACE="ws_enterprise_123"
|
|
251
|
+
|
|
252
|
+
# Point to self-hosted instance
|
|
253
|
+
export APICLAW_API_URL="https://api.company.com/apiclaw"
|
|
254
|
+
|
|
255
|
+
# Disable telemetry
|
|
256
|
+
export APICLAW_DISABLE_TELEMETRY="true"
|
|
257
|
+
|
|
258
|
+
npx @nordsym/apiclaw setup
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### Generate Deployment Script
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# Generate cross-platform setup script
|
|
265
|
+
npx @nordsym/apiclaw setup --enterprise --output deploy.sh
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
The generated script handles:
|
|
269
|
+
- OS detection
|
|
270
|
+
- Client detection
|
|
271
|
+
- Config injection
|
|
272
|
+
- Verification
|
|
273
|
+
- Error reporting
|
|
274
|
+
|
|
275
|
+
### MDM/Group Policy
|
|
276
|
+
|
|
277
|
+
See [Enterprise Deployment Guide](docs/enterprise-deployment.md) for:
|
|
278
|
+
- Jamf/Kandji/Mosyle (macOS)
|
|
279
|
+
- Intune/Group Policy (Windows)
|
|
280
|
+
- Ansible/Chef/Puppet (Linux)
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## Troubleshooting
|
|
285
|
+
|
|
286
|
+
### "Permission denied"
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
# Option 1: Run with sudo
|
|
290
|
+
sudo npx @nordsym/apiclaw setup
|
|
291
|
+
|
|
292
|
+
# Option 2: Fix permissions
|
|
293
|
+
chmod 644 ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
### "Config file not found"
|
|
297
|
+
|
|
298
|
+
The MCP client hasn't created its config yet:
|
|
299
|
+
1. Open the client (Claude Desktop, Cursor, etc.)
|
|
300
|
+
2. Close it
|
|
301
|
+
3. Try setup again
|
|
302
|
+
|
|
303
|
+
Or specify a custom path:
|
|
304
|
+
```bash
|
|
305
|
+
npx @nordsym/apiclaw setup --config /path/to/config.json
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### "Invalid JSON"
|
|
309
|
+
|
|
310
|
+
Your config file has syntax errors:
|
|
311
|
+
```bash
|
|
312
|
+
# Restore from backup
|
|
313
|
+
npx @nordsym/apiclaw restore --list
|
|
314
|
+
npx @nordsym/apiclaw restore
|
|
315
|
+
|
|
316
|
+
# Or manually fix the JSON
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
### "Already configured"
|
|
320
|
+
|
|
321
|
+
APIClaw is already set up. To update:
|
|
322
|
+
```bash
|
|
323
|
+
npx @nordsym/apiclaw setup --force
|
|
324
|
+
```
|
|
325
|
+
|
|
326
|
+
### Still having issues?
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
# Run diagnostics
|
|
330
|
+
npx @nordsym/apiclaw doctor --verbose
|
|
331
|
+
|
|
332
|
+
# Get help
|
|
333
|
+
https://docs.apiclaw.com/setup
|
|
334
|
+
https://github.com/nordsym/apiclaw/issues
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## How It Works
|
|
340
|
+
|
|
341
|
+
APIClaw modifies your MCP client's config file to register itself as a server:
|
|
110
342
|
|
|
111
343
|
```json
|
|
112
344
|
{
|
|
113
345
|
"mcpServers": {
|
|
114
346
|
"apiclaw": {
|
|
115
347
|
"command": "npx",
|
|
116
|
-
"args": ["@nordsym/apiclaw"]
|
|
348
|
+
"args": ["-y", "@nordsym/apiclaw"]
|
|
117
349
|
}
|
|
118
350
|
}
|
|
119
351
|
}
|
|
120
352
|
```
|
|
121
353
|
|
|
122
|
-
|
|
354
|
+
When your AI assistant starts, it launches APIClaw as an MCP server. APIClaw then:
|
|
355
|
+
1. Exposes available APIs as MCP tools
|
|
356
|
+
2. Handles authentication and rate limiting
|
|
357
|
+
3. Executes API calls on behalf of the AI
|
|
123
358
|
|
|
124
359
|
---
|
|
125
360
|
|
|
126
|
-
##
|
|
127
|
-
|
|
128
|
-
22,392 APIs indexed across 14 categories:
|
|
361
|
+
## Safety Features
|
|
129
362
|
|
|
130
|
-
|
|
131
|
-
// Find APIs by capability
|
|
132
|
-
mcp.call("discover_apis", {
|
|
133
|
-
query: "image generation AI",
|
|
134
|
-
max_results: 5
|
|
135
|
-
})
|
|
363
|
+
### Automatic Backups
|
|
136
364
|
|
|
137
|
-
|
|
138
|
-
mcp.call("get_api_details", {
|
|
139
|
-
api_id: "replicate"
|
|
140
|
-
})
|
|
141
|
-
// → endpoints, auth, pricing, examples
|
|
365
|
+
Before modifying any config, APIClaw creates a timestamped backup:
|
|
142
366
|
```
|
|
367
|
+
claude_desktop_config.backup.1709150400.json
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Non-Destructive
|
|
143
371
|
|
|
144
|
-
|
|
372
|
+
- Never overwrites existing configurations
|
|
373
|
+
- Deep merges APIClaw into `mcpServers`
|
|
374
|
+
- Preserves all other settings
|
|
145
375
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
| Cloud | 1,463 | Communication | 939 |
|
|
152
|
-
| AI & ML | 1,259 | Business | 923 |
|
|
153
|
-
| Entertainment | 1,212 | Health | 740 |
|
|
154
|
-
| Security | 491 | Social | 112 |
|
|
376
|
+
### Validation
|
|
377
|
+
|
|
378
|
+
- Parses JSON before and after modifications
|
|
379
|
+
- Verifies required fields exist
|
|
380
|
+
- Rolls back on any error
|
|
155
381
|
|
|
156
382
|
---
|
|
157
383
|
|
|
158
|
-
##
|
|
384
|
+
## Dry-Run Mode
|
|
159
385
|
|
|
160
|
-
|
|
386
|
+
Test API calls without actually executing them. Perfect for debugging, development, and agent testing.
|
|
161
387
|
|
|
162
|
-
|
|
388
|
+
### Usage
|
|
163
389
|
|
|
164
|
-
|
|
390
|
+
```javascript
|
|
391
|
+
// In MCP tool call
|
|
392
|
+
call_api({
|
|
393
|
+
provider: "46elks",
|
|
394
|
+
action: "send_sms",
|
|
395
|
+
params: {
|
|
396
|
+
to: "+46701234567",
|
|
397
|
+
message: "Hello from dry-run!"
|
|
398
|
+
},
|
|
399
|
+
dry_run: true // ← No actual API call made
|
|
400
|
+
})
|
|
401
|
+
```
|
|
165
402
|
|
|
166
|
-
|
|
167
|
-
2. Add your API spec
|
|
168
|
-
3. Configure Direct Call (optional)
|
|
169
|
-
4. Go live
|
|
403
|
+
### Response
|
|
170
404
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
405
|
+
```json
|
|
406
|
+
{
|
|
407
|
+
"dry_run": true,
|
|
408
|
+
"provider": "46elks",
|
|
409
|
+
"action": "send_sms",
|
|
410
|
+
"would_send": {
|
|
411
|
+
"url": "https://api.46elks.com/a1/sms",
|
|
412
|
+
"method": "POST",
|
|
413
|
+
"headers": {
|
|
414
|
+
"Content-Type": "application/json",
|
|
415
|
+
"Authorization": "Basic [base64(username:password)]"
|
|
416
|
+
},
|
|
417
|
+
"body": {
|
|
418
|
+
"from": "APIClaw",
|
|
419
|
+
"to": "+46701234567",
|
|
420
|
+
"message": "Hello from dry-run!"
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
"mock_response": {
|
|
424
|
+
"success": true,
|
|
425
|
+
"data": {
|
|
426
|
+
"id": "mock_sms_123",
|
|
427
|
+
"status": "delivered"
|
|
428
|
+
},
|
|
429
|
+
"estimated_cost": "~0.35-0.52 SEK"
|
|
430
|
+
},
|
|
431
|
+
"notes": [
|
|
432
|
+
"⚠️ DRY-RUN MODE: No actual API call was made",
|
|
433
|
+
"This shows what WOULD be sent if you remove dry_run: true"
|
|
434
|
+
]
|
|
435
|
+
}
|
|
436
|
+
```
|
|
176
437
|
|
|
177
|
-
|
|
438
|
+
### Benefits
|
|
178
439
|
|
|
179
|
-
|
|
440
|
+
- **💰 No cost** — Test without burning API credits
|
|
441
|
+
- **🔍 Debug** — See exact request that would be sent
|
|
442
|
+
- **🧪 Test** — Validate agent workflows before going live
|
|
443
|
+
- **📋 Mock data** — Get realistic response shapes for development
|
|
180
444
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
│ │ Discovery │ │ Direct Call │ │ Provider │ │
|
|
194
|
-
│ │ 22k APIs │ │ 11 Live │ │ Dashboard │ │
|
|
195
|
-
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
196
|
-
│ │
|
|
197
|
-
└─────────────────────────────┬───────────────────────────────┘
|
|
198
|
-
│
|
|
199
|
-
┌─────────────────────┼─────────────────────┐
|
|
200
|
-
▼ ▼ ▼
|
|
201
|
-
┌──────────┐ ┌──────────┐ ┌──────────┐
|
|
202
|
-
│ OpenRouter│ │ Replicate │ │ E2B │
|
|
203
|
-
│ Firecrawl │ │ ElevenLabs│ │ GitHub │
|
|
204
|
-
│ + 5 │ │ Brave │ │ + more │
|
|
205
|
-
└──────────┘ └──────────┘ └──────────┘
|
|
206
|
-
```
|
|
445
|
+
### Supported Providers
|
|
446
|
+
|
|
447
|
+
All Direct Call providers support dry-run:
|
|
448
|
+
- 46elks, Twilio (SMS)
|
|
449
|
+
- Resend (Email)
|
|
450
|
+
- Brave Search
|
|
451
|
+
- OpenRouter (LLM)
|
|
452
|
+
- ElevenLabs (TTS)
|
|
453
|
+
- Replicate (AI models)
|
|
454
|
+
- Firecrawl (Web scraping)
|
|
455
|
+
- GitHub
|
|
456
|
+
- E2B (Code sandbox)
|
|
207
457
|
|
|
208
458
|
---
|
|
209
459
|
|
|
210
|
-
##
|
|
460
|
+
## Development
|
|
211
461
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
| `list_connected` | Show Direct Call providers |
|
|
217
|
-
| `call_api` | Execute via Direct Call |
|
|
218
|
-
| `list_categories` | Browse all 14 categories |
|
|
462
|
+
```bash
|
|
463
|
+
# Clone the repo
|
|
464
|
+
git clone https://github.com/nordsym/apiclaw.git
|
|
465
|
+
cd apiclaw
|
|
219
466
|
|
|
220
|
-
|
|
467
|
+
# Install dependencies
|
|
468
|
+
npm install
|
|
221
469
|
|
|
222
|
-
|
|
470
|
+
# Build
|
|
471
|
+
npm run build
|
|
223
472
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
473
|
+
# Run locally
|
|
474
|
+
npm run dev
|
|
475
|
+
|
|
476
|
+
# Test setup locally
|
|
477
|
+
npm run setup:test
|
|
478
|
+
```
|
|
228
479
|
|
|
229
480
|
---
|
|
230
481
|
|
|
@@ -234,7 +485,9 @@ MIT © [NordSym](https://nordsym.com)
|
|
|
234
485
|
|
|
235
486
|
---
|
|
236
487
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
488
|
+
## Links
|
|
489
|
+
|
|
490
|
+
- **Website:** [apiclaw.com](https://apiclaw.com)
|
|
491
|
+
- **Documentation:** [docs.apiclaw.com](https://docs.apiclaw.com)
|
|
492
|
+
- **GitHub:** [github.com/nordsym/apiclaw](https://github.com/nordsym/apiclaw)
|
|
493
|
+
- **npm:** [@nordsym/apiclaw](https://www.npmjs.com/package/@nordsym/apiclaw)
|