@nordsym/apiclaw 1.3.7 → 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 +420 -200
- package/convex/_generated/api.d.ts +4 -0
- package/convex/agents.ts +403 -0
- package/convex/directCall.ts +80 -0
- package/convex/earnProgress.ts +753 -0
- package/convex/logs.ts +17 -0
- package/convex/providerKeys.ts +82 -2
- package/convex/schema.ts +71 -2
- package/convex/workspaces.ts +84 -2
- 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 +79 -7
- package/dist/index.js.map +1 -1
- package/dist/stripe.d.ts +1 -1
- package/dist/stripe.js +1 -1
- 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/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/workspace-auth/magic-link/route.ts +6 -3
- package/landing/src/app/auth/verify/page.tsx +11 -4
- package/landing/src/app/docs/page.tsx +1 -1
- package/landing/src/app/join/page.tsx +49 -0
- package/landing/src/app/login/page.tsx +7 -1
- package/landing/src/app/page.tsx +13 -28
- package/landing/src/app/providers/register/page.tsx +1 -1
- package/landing/src/app/workspace/page.tsx +483 -710
- package/landing/src/components/CheckoutButton.tsx +1 -1
- package/landing/src/components/EarnCreditsTab.tsx +842 -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 +85 -7
- package/src/stripe.ts +1 -1
- 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,273 +1,493 @@
|
|
|
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
|
-
params: { url: "https://example.com" }
|
|
82
|
-
})
|
|
41
|
+
### Option 1: Auto-Setup (Recommended)
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx @nordsym/apiclaw setup
|
|
83
45
|
```
|
|
84
46
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Option 3: Use npx (No Install)
|
|
60
|
+
|
|
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.
|
|
104
70
|
|
|
105
71
|
```bash
|
|
106
|
-
|
|
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
|
|
107
96
|
```
|
|
108
97
|
|
|
109
|
-
###
|
|
98
|
+
### `doctor`
|
|
110
99
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"command": "npx",
|
|
116
|
-
"args": ["@nordsym/apiclaw"]
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
100
|
+
Diagnose your APIClaw setup.
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
npx @nordsym/apiclaw doctor
|
|
120
104
|
```
|
|
121
105
|
|
|
122
|
-
|
|
106
|
+
Output:
|
|
107
|
+
```
|
|
108
|
+
🔍 APIClaw Health Check
|
|
109
|
+
========================
|
|
123
110
|
|
|
124
|
-
|
|
111
|
+
System:
|
|
112
|
+
✓ Node.js v20.11.0
|
|
113
|
+
✓ npm 10.2.4
|
|
114
|
+
✓ npx available
|
|
125
115
|
|
|
126
|
-
|
|
116
|
+
MCP Clients:
|
|
117
|
+
✓ Claude Desktop - Configured ✓
|
|
118
|
+
✓ Cursor - Configured ✓
|
|
119
|
+
✗ Windsurf - Not installed
|
|
127
120
|
|
|
128
|
-
|
|
121
|
+
Connectivity:
|
|
122
|
+
✓ api.apiclaw.com reachable
|
|
129
123
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
mcp.call("discover_apis", {
|
|
133
|
-
query: "image generation AI",
|
|
134
|
-
max_results: 5
|
|
135
|
-
})
|
|
124
|
+
Status: All systems operational ✓
|
|
125
|
+
```
|
|
136
126
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
127
|
+
### `restore`
|
|
128
|
+
|
|
129
|
+
Restore config from backup.
|
|
130
|
+
|
|
131
|
+
```bash
|
|
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
|
|
142
151
|
```
|
|
143
152
|
|
|
144
|
-
|
|
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` |
|
|
145
237
|
|
|
146
|
-
|
|
147
|
-
|----------|------|----------|------|
|
|
148
|
-
| Utilities | 7,069 | Finance | 1,179 |
|
|
149
|
-
| Analytics | 2,600 | Commerce | 1,151 |
|
|
150
|
-
| Development | 2,278 | Location | 976 |
|
|
151
|
-
| Cloud | 1,463 | Communication | 939 |
|
|
152
|
-
| AI & ML | 1,259 | Business | 923 |
|
|
153
|
-
| Entertainment | 1,212 | Health | 740 |
|
|
154
|
-
| Security | 491 | Social | 112 |
|
|
238
|
+
</details>
|
|
155
239
|
|
|
156
240
|
---
|
|
157
241
|
|
|
158
|
-
##
|
|
242
|
+
## Enterprise Deployment
|
|
159
243
|
|
|
160
|
-
|
|
244
|
+
Deploy APIClaw to your entire development team.
|
|
161
245
|
|
|
162
|
-
|
|
246
|
+
### Environment Variables
|
|
163
247
|
|
|
164
|
-
|
|
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"
|
|
165
257
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
3. Configure Direct Call (optional)
|
|
169
|
-
4. Go live
|
|
258
|
+
npx @nordsym/apiclaw setup
|
|
259
|
+
```
|
|
170
260
|
|
|
171
|
-
|
|
172
|
-
- Agents use your API without key setup
|
|
173
|
-
- You provide one service account key
|
|
174
|
-
- We handle auth routing
|
|
175
|
-
- You get usage analytics
|
|
261
|
+
### Generate Deployment Script
|
|
176
262
|
|
|
177
|
-
|
|
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)
|
|
178
281
|
|
|
179
282
|
---
|
|
180
283
|
|
|
181
|
-
##
|
|
284
|
+
## Troubleshooting
|
|
182
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
|
|
183
306
|
```
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
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
|
|
206
335
|
```
|
|
207
336
|
|
|
208
337
|
---
|
|
209
338
|
|
|
210
|
-
##
|
|
339
|
+
## How It Works
|
|
340
|
+
|
|
341
|
+
APIClaw modifies your MCP client's config file to register itself as a server:
|
|
342
|
+
|
|
343
|
+
```json
|
|
344
|
+
{
|
|
345
|
+
"mcpServers": {
|
|
346
|
+
"apiclaw": {
|
|
347
|
+
"command": "npx",
|
|
348
|
+
"args": ["-y", "@nordsym/apiclaw"]
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
```
|
|
211
353
|
|
|
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 |
|
|
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
|
|
219
358
|
|
|
220
359
|
---
|
|
221
360
|
|
|
222
|
-
##
|
|
361
|
+
## Safety Features
|
|
223
362
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
363
|
+
### Automatic Backups
|
|
364
|
+
|
|
365
|
+
Before modifying any config, APIClaw creates a timestamped backup:
|
|
366
|
+
```
|
|
367
|
+
claude_desktop_config.backup.1709150400.json
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
### Non-Destructive
|
|
371
|
+
|
|
372
|
+
- Never overwrites existing configurations
|
|
373
|
+
- Deep merges APIClaw into `mcpServers`
|
|
374
|
+
- Preserves all other settings
|
|
375
|
+
|
|
376
|
+
### Validation
|
|
377
|
+
|
|
378
|
+
- Parses JSON before and after modifications
|
|
379
|
+
- Verifies required fields exist
|
|
380
|
+
- Rolls back on any error
|
|
228
381
|
|
|
229
382
|
---
|
|
230
383
|
|
|
231
|
-
##
|
|
384
|
+
## Dry-Run Mode
|
|
232
385
|
|
|
233
|
-
|
|
386
|
+
Test API calls without actually executing them. Perfect for debugging, development, and agent testing.
|
|
387
|
+
|
|
388
|
+
### Usage
|
|
389
|
+
|
|
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
|
+
```
|
|
402
|
+
|
|
403
|
+
### Response
|
|
404
|
+
|
|
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
|
+
```
|
|
437
|
+
|
|
438
|
+
### Benefits
|
|
439
|
+
|
|
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
|
|
444
|
+
|
|
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)
|
|
234
457
|
|
|
235
458
|
---
|
|
236
459
|
|
|
237
|
-
|
|
238
|
-
<strong>🦞 APIClaw</strong><br/>
|
|
239
|
-
<em>The API layer for the agentic era.</em>
|
|
240
|
-
</p>
|
|
460
|
+
## Development
|
|
241
461
|
|
|
242
|
-
|
|
462
|
+
```bash
|
|
463
|
+
# Clone the repo
|
|
464
|
+
git clone https://github.com/nordsym/apiclaw.git
|
|
465
|
+
cd apiclaw
|
|
243
466
|
|
|
244
|
-
|
|
467
|
+
# Install dependencies
|
|
468
|
+
npm install
|
|
245
469
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
// 1. Customer signs up for metered billing
|
|
249
|
-
const result = await mcp.call('setup_metered_billing', {
|
|
250
|
-
email: 'customer@example.com'
|
|
251
|
-
});
|
|
252
|
-
// Returns checkout URL - customer completes payment setup
|
|
470
|
+
# Build
|
|
471
|
+
npm run build
|
|
253
472
|
|
|
254
|
-
|
|
255
|
-
|
|
473
|
+
# Run locally
|
|
474
|
+
npm run dev
|
|
256
475
|
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
subscription_id: 'sub_xxx'
|
|
260
|
-
});
|
|
261
|
-
// Returns: { total_calls: 150, estimated_cost: "$0.30" }
|
|
476
|
+
# Test setup locally
|
|
477
|
+
npm run setup:test
|
|
262
478
|
```
|
|
263
479
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
480
|
+
---
|
|
481
|
+
|
|
482
|
+
## License
|
|
483
|
+
|
|
484
|
+
MIT © [NordSym](https://nordsym.com)
|
|
485
|
+
|
|
486
|
+
---
|
|
487
|
+
|
|
488
|
+
## Links
|
|
271
489
|
|
|
272
|
-
|
|
273
|
-
|
|
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)
|