@nordsym/apiclaw 1.3.7 → 1.3.9

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.
Files changed (203) hide show
  1. package/README.md +436 -200
  2. package/convex/_generated/api.d.ts +4 -0
  3. package/convex/agents.ts +403 -0
  4. package/convex/directCall.ts +80 -0
  5. package/convex/earnProgress.ts +753 -0
  6. package/convex/logs.ts +17 -0
  7. package/convex/providerKeys.ts +82 -2
  8. package/convex/schema.ts +71 -2
  9. package/convex/workspaces.ts +84 -2
  10. package/dist/adapters/base.d.ts +112 -0
  11. package/dist/adapters/base.d.ts.map +1 -0
  12. package/dist/adapters/base.js +247 -0
  13. package/dist/adapters/base.js.map +1 -0
  14. package/dist/adapters/claude-desktop.d.ts +12 -0
  15. package/dist/adapters/claude-desktop.d.ts.map +1 -0
  16. package/dist/adapters/claude-desktop.js +36 -0
  17. package/dist/adapters/claude-desktop.js.map +1 -0
  18. package/dist/adapters/cline.d.ts +20 -0
  19. package/dist/adapters/cline.d.ts.map +1 -0
  20. package/dist/adapters/cline.js +77 -0
  21. package/dist/adapters/cline.js.map +1 -0
  22. package/dist/adapters/continue.d.ts +26 -0
  23. package/dist/adapters/continue.d.ts.map +1 -0
  24. package/dist/adapters/continue.js +68 -0
  25. package/dist/adapters/continue.js.map +1 -0
  26. package/dist/adapters/cursor.d.ts +12 -0
  27. package/dist/adapters/cursor.d.ts.map +1 -0
  28. package/dist/adapters/cursor.js +38 -0
  29. package/dist/adapters/cursor.js.map +1 -0
  30. package/dist/adapters/custom.d.ts +47 -0
  31. package/dist/adapters/custom.d.ts.map +1 -0
  32. package/dist/adapters/custom.js +146 -0
  33. package/dist/adapters/custom.js.map +1 -0
  34. package/dist/adapters/detect.d.ts +69 -0
  35. package/dist/adapters/detect.d.ts.map +1 -0
  36. package/dist/adapters/detect.js +158 -0
  37. package/dist/adapters/detect.js.map +1 -0
  38. package/dist/adapters/index.d.ts +21 -0
  39. package/dist/adapters/index.d.ts.map +1 -0
  40. package/dist/adapters/index.js +23 -0
  41. package/dist/adapters/index.js.map +1 -0
  42. package/dist/adapters/windsurf.d.ts +12 -0
  43. package/dist/adapters/windsurf.d.ts.map +1 -0
  44. package/dist/adapters/windsurf.js +39 -0
  45. package/dist/adapters/windsurf.js.map +1 -0
  46. package/dist/bin.d.ts +9 -0
  47. package/dist/bin.d.ts.map +1 -0
  48. package/dist/bin.js +19 -0
  49. package/dist/bin.js.map +1 -0
  50. package/dist/cli/commands/doctor.d.ts +34 -0
  51. package/dist/cli/commands/doctor.d.ts.map +1 -0
  52. package/dist/cli/commands/doctor.js +312 -0
  53. package/dist/cli/commands/doctor.js.map +1 -0
  54. package/dist/cli/commands/index.d.ts +9 -0
  55. package/dist/cli/commands/index.d.ts.map +1 -0
  56. package/dist/cli/commands/index.js +9 -0
  57. package/dist/cli/commands/index.js.map +1 -0
  58. package/dist/cli/commands/mcp-install.d.ts +14 -0
  59. package/dist/cli/commands/mcp-install.d.ts.map +1 -0
  60. package/dist/cli/commands/mcp-install.js +246 -0
  61. package/dist/cli/commands/mcp-install.js.map +1 -0
  62. package/dist/cli/commands/restore.d.ts +50 -0
  63. package/dist/cli/commands/restore.d.ts.map +1 -0
  64. package/dist/cli/commands/restore.js +260 -0
  65. package/dist/cli/commands/restore.js.map +1 -0
  66. package/dist/cli/commands/setup.d.ts +19 -0
  67. package/dist/cli/commands/setup.d.ts.map +1 -0
  68. package/dist/cli/commands/setup.js +206 -0
  69. package/dist/cli/commands/setup.js.map +1 -0
  70. package/dist/cli/commands/uninstall.d.ts +37 -0
  71. package/dist/cli/commands/uninstall.d.ts.map +1 -0
  72. package/dist/cli/commands/uninstall.js +189 -0
  73. package/dist/cli/commands/uninstall.js.map +1 -0
  74. package/dist/cli/index.d.ts +7 -0
  75. package/dist/cli/index.d.ts.map +1 -0
  76. package/dist/cli/index.js +105 -0
  77. package/dist/cli/index.js.map +1 -0
  78. package/dist/discovery.d.ts +6 -2
  79. package/dist/discovery.d.ts.map +1 -1
  80. package/dist/discovery.js +296 -2
  81. package/dist/discovery.js.map +1 -1
  82. package/dist/enterprise/env.d.ts +56 -0
  83. package/dist/enterprise/env.d.ts.map +1 -0
  84. package/dist/enterprise/env.js +124 -0
  85. package/dist/enterprise/env.js.map +1 -0
  86. package/dist/enterprise/index.d.ts +7 -0
  87. package/dist/enterprise/index.d.ts.map +1 -0
  88. package/dist/enterprise/index.js +7 -0
  89. package/dist/enterprise/index.js.map +1 -0
  90. package/dist/enterprise/script-generator.d.ts +32 -0
  91. package/dist/enterprise/script-generator.d.ts.map +1 -0
  92. package/dist/enterprise/script-generator.js +461 -0
  93. package/dist/enterprise/script-generator.js.map +1 -0
  94. package/dist/execute.d.ts +21 -0
  95. package/dist/execute.d.ts.map +1 -1
  96. package/dist/execute.js +231 -0
  97. package/dist/execute.js.map +1 -1
  98. package/dist/index.js +79 -7
  99. package/dist/index.js.map +1 -1
  100. package/dist/stripe.d.ts +1 -1
  101. package/dist/stripe.js +1 -1
  102. package/dist/stripe.js.map +1 -1
  103. package/dist/types.d.ts +29 -0
  104. package/dist/types.d.ts.map +1 -1
  105. package/dist/ui/colors.d.ts +111 -0
  106. package/dist/ui/colors.d.ts.map +1 -0
  107. package/dist/ui/colors.js +185 -0
  108. package/dist/ui/colors.js.map +1 -0
  109. package/dist/ui/errors.d.ts +69 -0
  110. package/dist/ui/errors.d.ts.map +1 -0
  111. package/dist/ui/errors.js +334 -0
  112. package/dist/ui/errors.js.map +1 -0
  113. package/dist/ui/index.d.ts +10 -0
  114. package/dist/ui/index.d.ts.map +1 -0
  115. package/dist/ui/index.js +14 -0
  116. package/dist/ui/index.js.map +1 -0
  117. package/dist/ui/prompts.d.ts +88 -0
  118. package/dist/ui/prompts.d.ts.map +1 -0
  119. package/dist/ui/prompts.js +295 -0
  120. package/dist/ui/prompts.js.map +1 -0
  121. package/dist/ui/spinner.d.ts +112 -0
  122. package/dist/ui/spinner.d.ts.map +1 -0
  123. package/dist/ui/spinner.js +229 -0
  124. package/dist/ui/spinner.js.map +1 -0
  125. package/dist/utils/backup.d.ts +48 -0
  126. package/dist/utils/backup.d.ts.map +1 -0
  127. package/dist/utils/backup.js +182 -0
  128. package/dist/utils/backup.js.map +1 -0
  129. package/dist/utils/config.d.ts +80 -0
  130. package/dist/utils/config.d.ts.map +1 -0
  131. package/dist/utils/config.js +221 -0
  132. package/dist/utils/config.js.map +1 -0
  133. package/dist/utils/os.d.ts +45 -0
  134. package/dist/utils/os.d.ts.map +1 -0
  135. package/dist/utils/os.js +106 -0
  136. package/dist/utils/os.js.map +1 -0
  137. package/dist/utils/paths.d.ts +38 -0
  138. package/dist/utils/paths.d.ts.map +1 -0
  139. package/dist/utils/paths.js +160 -0
  140. package/dist/utils/paths.js.map +1 -0
  141. package/docs/PRD-BILLING.md +226 -0
  142. package/docs/PRD-EARN-SYSTEM.md +261 -0
  143. package/docs/PRD-MCP-AUTO-SETUP.md +623 -0
  144. package/docs/enterprise-deployment.md +728 -0
  145. package/landing/next.config.mjs +14 -0
  146. package/landing/public/book/index.html +24 -5
  147. package/landing/public/demo-product.jpg +0 -0
  148. package/landing/public/stats.json +4 -2
  149. package/landing/scripts/generate-stats.js +13 -0
  150. package/landing/src/app/api/og/route.tsx +1 -3
  151. package/landing/src/app/api/workspace-auth/magic-link/route.ts +6 -3
  152. package/landing/src/app/auth/verify/page.tsx +11 -4
  153. package/landing/src/app/docs/page.tsx +1 -1
  154. package/landing/src/app/join/page.tsx +49 -0
  155. package/landing/src/app/layout.tsx +1 -1
  156. package/landing/src/app/login/page.tsx +7 -1
  157. package/landing/src/app/page.tsx +50 -38
  158. package/landing/src/app/providers/register/page.tsx +1 -1
  159. package/landing/src/app/workspace/page.tsx +484 -806
  160. package/landing/src/components/CheckoutButton.tsx +1 -1
  161. package/landing/src/components/EarnCreditsTab.tsx +842 -0
  162. package/landing/src/components/HeroTabs.tsx +2 -2
  163. package/landing/src/components/demo/PhoneDemo.tsx +423 -0
  164. package/landing/src/components/demo/index.ts +1 -0
  165. package/landing/src/lib/stats.json +3 -1
  166. package/landing/tailwind.config.ts +10 -0
  167. package/package.json +9 -2
  168. package/src/adapters/base.ts +363 -0
  169. package/src/adapters/claude-desktop.ts +41 -0
  170. package/src/adapters/cline.ts +88 -0
  171. package/src/adapters/continue.ts +91 -0
  172. package/src/adapters/cursor.ts +43 -0
  173. package/src/adapters/custom.ts +188 -0
  174. package/src/adapters/detect.ts +202 -0
  175. package/src/adapters/index.ts +47 -0
  176. package/src/adapters/windsurf.ts +44 -0
  177. package/src/bin.ts +19 -0
  178. package/src/cli/commands/doctor.ts +367 -0
  179. package/src/cli/commands/index.ts +9 -0
  180. package/src/cli/commands/mcp-install.ts +291 -0
  181. package/src/cli/commands/restore.ts +333 -0
  182. package/src/cli/commands/setup.ts +276 -0
  183. package/src/cli/commands/uninstall.ts +240 -0
  184. package/src/cli/index.ts +116 -0
  185. package/src/discovery.ts +328 -3
  186. package/src/enterprise/env.ts +156 -0
  187. package/src/enterprise/index.ts +7 -0
  188. package/src/enterprise/script-generator.ts +481 -0
  189. package/src/execute.ts +256 -0
  190. package/src/index.ts +85 -7
  191. package/src/stripe.ts +1 -1
  192. package/src/types.ts +32 -0
  193. package/src/ui/colors.ts +219 -0
  194. package/src/ui/errors.ts +394 -0
  195. package/src/ui/index.ts +17 -0
  196. package/src/ui/prompts.ts +390 -0
  197. package/src/ui/spinner.ts +325 -0
  198. package/src/utils/backup.ts +224 -0
  199. package/src/utils/config.ts +315 -0
  200. package/src/utils/os.ts +124 -0
  201. package/src/utils/paths.ts +203 -0
  202. package/STATUS.md +0 -160
  203. package/landing/tsconfig.tsbuildinfo +0 -1
package/README.md CHANGED
@@ -1,273 +1,509 @@
1
- <h1 align="center">🦞 APIClaw</h1>
2
-
3
- <p align="center">
4
- <strong>The API Layer for AI Agents</strong>
5
- </p>
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
+ [![npm version](https://img.shields.io/npm/v/@nordsym/apiclaw.svg)](https://www.npmjs.com/package/@nordsym/apiclaw)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
25
7
 
26
8
  ---
27
9
 
28
- ## Why APIClaw?
10
+ ## Quick Start
29
11
 
30
- AI agents don't browse documentation. They query capabilities and execute.
12
+ ```bash
13
+ # Install APIClaw into Claude Desktop or Claude Code
14
+ npx @nordsym/apiclaw mcp-install
31
15
 
32
- APIClaw is the missing layer between agents and the API economy:
16
+ # That's it! Restart your AI assistant and ask:
17
+ # "List available APIs" or "Send an SMS via 46elks"
18
+ ```
33
19
 
34
- - **Discovery**22,000+ APIs, searchable by capability
35
- - **Direct Call** — Execute without API keys (we handle auth)
36
- - **One config** — Add APIClaw MCP, access everything
20
+ APIClaw automatically detects Claude Desktop and Claude Code then configures itself as an MCP server in seconds.
37
21
 
38
22
  ---
39
23
 
40
- ## Direct Call
24
+ ## What is APIClaw?
41
25
 
42
- **No API keys. No setup. Just call.**
26
+ APIClaw is an MCP (Model Context Protocol) server that gives AI coding assistants access to real-world APIs:
43
27
 
44
- Your agent can execute these APIs directly through APIClaw:
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
- ```javascript
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
- // Access 100+ LLMs through one endpoint
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
- // Execute code in secure sandbox
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
- // Scrape any website
78
- mcp.call("call_api", {
79
- provider: "firecrawl",
80
- action: "scrape",
81
- params: { url: "https://example.com" }
82
- })
41
+ ### Option 1: MCP Install (Recommended)
42
+
43
+ ```bash
44
+ npx @nordsym/apiclaw mcp-install
83
45
  ```
84
46
 
85
- ### Available Direct Call Providers
86
-
87
- | Provider | What It Does | Actions |
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` |
47
+ This will:
48
+ 1. 🔍 Detect Claude Desktop or Claude Code
49
+ 2. 📝 Add APIClaw to the MCP config
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
- ## Quick Start
65
+ ## Commands
66
+
67
+ ### `mcp-install`
68
+
69
+ Simple, focused installation for Claude Desktop and Claude Code.
104
70
 
105
71
  ```bash
106
- npx @nordsym/apiclaw
72
+ # Auto-detect and install
73
+ npx @nordsym/apiclaw mcp-install
74
+
75
+ # Install to specific client
76
+ npx @nordsym/apiclaw mcp-install --client claude-desktop
77
+ npx @nordsym/apiclaw mcp-install --client claude-code
78
+
79
+ # Preview changes without applying
80
+ npx @nordsym/apiclaw mcp-install --dry-run
107
81
  ```
108
82
 
109
- ### Add to Claude Desktop
83
+ ### `setup`
110
84
 
111
- ```json
112
- {
113
- "mcpServers": {
114
- "apiclaw": {
115
- "command": "npx",
116
- "args": ["@nordsym/apiclaw"]
117
- }
118
- }
119
- }
85
+ Full-featured setup with support for all MCP clients.
86
+
87
+ ```bash
88
+ # Auto-detect and configure all clients
89
+ npx @nordsym/apiclaw setup
90
+
91
+ # Configure specific client
92
+ npx @nordsym/apiclaw setup --client claude-desktop
93
+ npx @nordsym/apiclaw setup --client cursor
94
+ npx @nordsym/apiclaw setup --client windsurf
95
+ npx @nordsym/apiclaw setup --client cline
96
+ npx @nordsym/apiclaw setup --client continue
97
+
98
+ # Custom config path
99
+ npx @nordsym/apiclaw setup --config /path/to/config.json
100
+
101
+ # Link a workspace
102
+ npx @nordsym/apiclaw setup --workspace ws_abc123
103
+
104
+ # Preview changes without applying
105
+ npx @nordsym/apiclaw setup --dry-run
106
+
107
+ # Force overwrite existing config
108
+ npx @nordsym/apiclaw setup --force
109
+
110
+ # Interactive mode
111
+ npx @nordsym/apiclaw setup --wizard
120
112
  ```
121
113
 
122
- Works with Claude, GPT (via MCP bridge), Cursor, Cline, and any MCP-compatible client.
114
+ ### `doctor`
123
115
 
124
- ---
116
+ Diagnose your APIClaw setup.
125
117
 
126
- ## Discovery
118
+ ```bash
119
+ npx @nordsym/apiclaw doctor
120
+ ```
127
121
 
128
- 22,392 APIs indexed across 14 categories:
122
+ Output:
123
+ ```
124
+ 🔍 APIClaw Health Check
125
+ ========================
129
126
 
130
- ```javascript
131
- // Find APIs by capability
132
- mcp.call("discover_apis", {
133
- query: "image generation AI",
134
- max_results: 5
135
- })
127
+ System:
128
+ Node.js v20.11.0
129
+ ✓ npm 10.2.4
130
+ npx available
136
131
 
137
- // Get full details
138
- mcp.call("get_api_details", {
139
- api_id: "replicate"
140
- })
141
- // → endpoints, auth, pricing, examples
132
+ MCP Clients:
133
+ Claude Desktop - Configured ✓
134
+ Cursor - Configured ✓
135
+ ✗ Windsurf - Not installed
136
+
137
+ Connectivity:
138
+ ✓ api.apiclaw.com reachable
139
+
140
+ Status: All systems operational ✓
142
141
  ```
143
142
 
144
- ### Categories
143
+ ### `restore`
144
+
145
+ Restore config from backup.
146
+
147
+ ```bash
148
+ # Restore most recent backup
149
+ npx @nordsym/apiclaw restore
150
+
151
+ # List available backups
152
+ npx @nordsym/apiclaw restore --list
145
153
 
146
- | Category | APIs | Category | APIs |
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 |
154
+ # Restore specific backup
155
+ npx @nordsym/apiclaw restore --backup config.backup.1709150400.json
156
+ ```
157
+
158
+ ### `uninstall`
159
+
160
+ Remove APIClaw from all configured clients.
161
+
162
+ ```bash
163
+ npx @nordsym/apiclaw uninstall
164
+
165
+ # Remove from specific client
166
+ npx @nordsym/apiclaw uninstall --client cursor
167
+ ```
168
+
169
+ ---
170
+
171
+ ## Options
172
+
173
+ | Option | Description |
174
+ |--------|-------------|
175
+ | `--client <name>` | Target specific MCP client |
176
+ | `--config <path>` | Use custom config file path |
177
+ | `--workspace <id>` | Link an APIClaw workspace |
178
+ | `--dry-run` | Preview changes without applying |
179
+ | `--force` | Overwrite existing APIClaw config |
180
+ | `--wizard` | Interactive setup mode |
181
+ | `--no-backup` | Skip creating backup (not recommended) |
182
+ | `--verbose` | Show detailed output |
183
+ | `--version` | Show version number |
184
+ | `--help` | Show help |
155
185
 
156
186
  ---
157
187
 
158
- ## For Providers
188
+ ## Supported MCP Clients
189
+
190
+ | Client | macOS | Windows | Linux |
191
+ |--------|:-----:|:-------:|:-----:|
192
+ | **Claude Desktop** | ✅ | ✅ | ✅ |
193
+ | **Cursor** | ✅ | ✅ | ✅ |
194
+ | **Windsurf** | ✅ | ✅ | ✅ |
195
+ | **Cline** (VS Code) | ✅ | ✅ | ✅ |
196
+ | **Continue** | ✅ | ✅ | ✅ |
197
+ | **Custom** | ✅ | ✅ | ✅ |
198
+
199
+ ### Config Locations
200
+
201
+ <details>
202
+ <summary>Claude Desktop</summary>
203
+
204
+ | OS | Path |
205
+ |----|------|
206
+ | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
207
+ | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
208
+ | Linux | `~/.config/Claude/claude_desktop_config.json` |
209
+
210
+ </details>
211
+
212
+ <details>
213
+ <summary>Cursor</summary>
214
+
215
+ | OS | Path |
216
+ |----|------|
217
+ | macOS | `~/Library/Application Support/Cursor/User/globalStorage/cursor.mcp/config.json` |
218
+ | Windows | `%APPDATA%\Cursor\User\globalStorage\cursor.mcp\config.json` |
219
+ | Linux | `~/.config/Cursor/User/globalStorage/cursor.mcp/config.json` |
159
220
 
160
- **Get your API in front of AI agents.**
221
+ </details>
161
222
 
162
- Agents are the next wave of API consumers. They don't see your landing page—they query capabilities.
223
+ <details>
224
+ <summary>Windsurf</summary>
163
225
 
164
- ### Self-Service Dashboard
226
+ | OS | Path |
227
+ |----|------|
228
+ | macOS | `~/.codeium/windsurf/mcp_config.json` |
229
+ | Windows | `%USERPROFILE%\.codeium\windsurf\mcp_config.json` |
230
+ | Linux | `~/.codeium/windsurf/mcp_config.json` |
165
231
 
166
- 1. Sign up at [apiclaw.com/providers](https://apiclaw.com/providers)
167
- 2. Add your API spec
168
- 3. Configure Direct Call (optional)
169
- 4. Go live
232
+ </details>
170
233
 
171
- **Direct Call benefits:**
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
234
+ <details>
235
+ <summary>Cline</summary>
176
236
 
177
- [apiclaw.com/providers](https://apiclaw.com/providers)
237
+ | OS | Path |
238
+ |----|------|
239
+ | macOS | `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` |
240
+ | Windows | `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json` |
241
+ | Linux | `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json` |
242
+
243
+ </details>
244
+
245
+ <details>
246
+ <summary>Continue</summary>
247
+
248
+ | OS | Path |
249
+ |----|------|
250
+ | macOS | `~/.continue/config.json` |
251
+ | Windows | `%USERPROFILE%\.continue\config.json` |
252
+ | Linux | `~/.continue/config.json` |
253
+
254
+ </details>
178
255
 
179
256
  ---
180
257
 
181
- ## Architecture
258
+ ## Enterprise Deployment
259
+
260
+ Deploy APIClaw to your entire development team.
261
+
262
+ ### Environment Variables
263
+
264
+ ```bash
265
+ # Pre-configure workspace for all users
266
+ export APICLAW_WORKSPACE="ws_enterprise_123"
267
+
268
+ # Point to self-hosted instance
269
+ export APICLAW_API_URL="https://api.company.com/apiclaw"
270
+
271
+ # Disable telemetry
272
+ export APICLAW_DISABLE_TELEMETRY="true"
182
273
 
274
+ npx @nordsym/apiclaw mcp-install
183
275
  ```
184
- ┌─────────────────────────────────────────────────────────────┐
185
- │ Your Agent │
186
- └─────────────────────────────┬───────────────────────────────┘
187
- │ MCP Protocol
188
-
189
- ┌─────────────────────────────────────────────────────────────┐
190
- │ 🦞 APIClaw │
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
- └──────────┘ └──────────┘ └──────────┘
276
+
277
+ ### Generate Deployment Script
278
+
279
+ ```bash
280
+ # Generate cross-platform setup script
281
+ npx @nordsym/apiclaw setup --enterprise --output deploy.sh
206
282
  ```
207
283
 
284
+ The generated script handles:
285
+ - OS detection
286
+ - Client detection
287
+ - Config injection
288
+ - Verification
289
+ - Error reporting
290
+
291
+ ### MDM/Group Policy
292
+
293
+ See [Enterprise Deployment Guide](docs/enterprise-deployment.md) for:
294
+ - Jamf/Kandji/Mosyle (macOS)
295
+ - Intune/Group Policy (Windows)
296
+ - Ansible/Chef/Puppet (Linux)
297
+
208
298
  ---
209
299
 
210
- ## MCP Tools
300
+ ## Troubleshooting
301
+
302
+ ### "Permission denied"
303
+
304
+ ```bash
305
+ # Option 1: Run with sudo
306
+ sudo npx @nordsym/apiclaw mcp-install
307
+
308
+ # Option 2: Fix permissions
309
+ chmod 644 ~/Library/Application\ Support/Claude/claude_desktop_config.json
310
+ ```
311
+
312
+ ### "Config file not found"
313
+
314
+ The MCP client hasn't created its config yet:
315
+ 1. Open the client (Claude Desktop or Claude Code)
316
+ 2. Close it
317
+ 3. Try mcp-install again
318
+
319
+ Or use the full setup command with a custom path:
320
+ ```bash
321
+ npx @nordsym/apiclaw setup --config /path/to/config.json
322
+ ```
211
323
 
212
- | Tool | Description |
213
- |------|-------------|
214
- | `discover_apis` | Search 22k APIs by capability |
215
- | `get_api_details` | Full spec, auth, endpoints |
216
- | `list_connected` | Show Direct Call providers |
217
- | `call_api` | Execute via Direct Call |
218
- | `list_categories` | Browse all 14 categories |
324
+ ### "Invalid JSON"
325
+
326
+ Your config file has syntax errors:
327
+ ```bash
328
+ # Restore from backup
329
+ npx @nordsym/apiclaw restore --list
330
+ npx @nordsym/apiclaw restore
331
+
332
+ # Or manually fix the JSON
333
+ ```
334
+
335
+ ### "Already configured"
336
+
337
+ APIClaw is already set up. To update:
338
+ ```bash
339
+ npx @nordsym/apiclaw setup --force
340
+ ```
341
+
342
+ ### Still having issues?
343
+
344
+ ```bash
345
+ # Run diagnostics
346
+ npx @nordsym/apiclaw doctor --verbose
347
+
348
+ # Get help
349
+ https://docs.apiclaw.com/setup
350
+ https://github.com/nordsym/apiclaw/issues
351
+ ```
219
352
 
220
353
  ---
221
354
 
222
- ## Links
355
+ ## How It Works
223
356
 
224
- - **Website:** [apiclaw.com](https://apiclaw.com)
225
- - **Providers:** [apiclaw.com/providers](https://apiclaw.com/providers)
226
- - **npm:** [@nordsym/apiclaw](https://www.npmjs.com/package/@nordsym/apiclaw)
227
- - **Built by:** [NordSym](https://nordsym.com)
357
+ APIClaw modifies your MCP client's config file to register itself as a server:
358
+
359
+ ```json
360
+ {
361
+ "mcpServers": {
362
+ "apiclaw": {
363
+ "command": "npx",
364
+ "args": ["-y", "@nordsym/apiclaw"]
365
+ }
366
+ }
367
+ }
368
+ ```
369
+
370
+ When your AI assistant starts, it launches APIClaw as an MCP server. APIClaw then:
371
+ 1. Exposes available APIs as MCP tools
372
+ 2. Handles authentication and rate limiting
373
+ 3. Executes API calls on behalf of the AI
228
374
 
229
375
  ---
230
376
 
231
- ## License
377
+ ## Safety Features
232
378
 
233
- MIT © [NordSym](https://nordsym.com)
379
+ ### Automatic Backups
380
+
381
+ Before modifying any config, APIClaw creates a timestamped backup:
382
+ ```
383
+ claude_desktop_config.backup.1709150400.json
384
+ ```
385
+
386
+ ### Non-Destructive
387
+
388
+ - Never overwrites existing configurations
389
+ - Deep merges APIClaw into `mcpServers`
390
+ - Preserves all other settings
391
+
392
+ ### Validation
393
+
394
+ - Parses JSON before and after modifications
395
+ - Verifies required fields exist
396
+ - Rolls back on any error
397
+
398
+ ---
399
+
400
+ ## Dry-Run Mode
401
+
402
+ Test API calls without actually executing them. Perfect for debugging, development, and agent testing.
403
+
404
+ ### Usage
405
+
406
+ ```javascript
407
+ // In MCP tool call
408
+ call_api({
409
+ provider: "46elks",
410
+ action: "send_sms",
411
+ params: {
412
+ to: "+46701234567",
413
+ message: "Hello from dry-run!"
414
+ },
415
+ dry_run: true // ← No actual API call made
416
+ })
417
+ ```
418
+
419
+ ### Response
420
+
421
+ ```json
422
+ {
423
+ "dry_run": true,
424
+ "provider": "46elks",
425
+ "action": "send_sms",
426
+ "would_send": {
427
+ "url": "https://api.46elks.com/a1/sms",
428
+ "method": "POST",
429
+ "headers": {
430
+ "Content-Type": "application/json",
431
+ "Authorization": "Basic [base64(username:password)]"
432
+ },
433
+ "body": {
434
+ "from": "APIClaw",
435
+ "to": "+46701234567",
436
+ "message": "Hello from dry-run!"
437
+ }
438
+ },
439
+ "mock_response": {
440
+ "success": true,
441
+ "data": {
442
+ "id": "mock_sms_123",
443
+ "status": "delivered"
444
+ },
445
+ "estimated_cost": "~0.35-0.52 SEK"
446
+ },
447
+ "notes": [
448
+ "⚠️ DRY-RUN MODE: No actual API call was made",
449
+ "This shows what WOULD be sent if you remove dry_run: true"
450
+ ]
451
+ }
452
+ ```
453
+
454
+ ### Benefits
455
+
456
+ - **💰 No cost** — Test without burning API credits
457
+ - **🔍 Debug** — See exact request that would be sent
458
+ - **🧪 Test** — Validate agent workflows before going live
459
+ - **📋 Mock data** — Get realistic response shapes for development
460
+
461
+ ### Supported Providers
462
+
463
+ All Direct Call providers support dry-run:
464
+ - 46elks, Twilio (SMS)
465
+ - Resend (Email)
466
+ - Brave Search
467
+ - OpenRouter (LLM)
468
+ - ElevenLabs (TTS)
469
+ - Replicate (AI models)
470
+ - Firecrawl (Web scraping)
471
+ - GitHub
472
+ - E2B (Code sandbox)
234
473
 
235
474
  ---
236
475
 
237
- <p align="center">
238
- <strong>🦞 APIClaw</strong><br/>
239
- <em>The API layer for the agentic era.</em>
240
- </p>
476
+ ## Development
241
477
 
242
- ## 💳 Metered Billing (Pay-per-Call)
478
+ ```bash
479
+ # Clone the repo
480
+ git clone https://github.com/nordsym/apiclaw.git
481
+ cd apiclaw
243
482
 
244
- APIClaw supports usage-based billing at **$0.002 per API call**.
483
+ # Install dependencies
484
+ npm install
245
485
 
246
- ### Setup
247
- ```typescript
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
486
+ # Build
487
+ npm run build
253
488
 
254
- // 2. After checkout, API calls are tracked automatically
255
- // Usage is reported to Stripe meter after each successful call
489
+ # Run locally
490
+ npm run dev
256
491
 
257
- // 3. Check usage during billing period
258
- const usage = await mcp.call('get_usage_summary', {
259
- subscription_id: 'sub_xxx'
260
- });
261
- // Returns: { total_calls: 150, estimated_cost: "$0.30" }
492
+ # Test setup locally
493
+ npm run setup:test
262
494
  ```
263
495
 
264
- ### Pricing Examples
265
- | Calls/Month | Cost |
266
- |-------------|------|
267
- | 100 | $0.20 |
268
- | 1,000 | $2.00 |
269
- | 10,000 | $20.00 |
270
- | 100,000 | $200.00 |
496
+ ---
271
497
 
272
- ### Direct Call Mode
273
- If you have your own API keys, Direct Call bypasses metered billing - you pay providers directly.
498
+ ## License
499
+
500
+ MIT © [NordSym](https://nordsym.com)
501
+
502
+ ---
503
+
504
+ ## Links
505
+
506
+ - **Website:** [apiclaw.com](https://apiclaw.com)
507
+ - **Documentation:** [docs.apiclaw.com](https://docs.apiclaw.com)
508
+ - **GitHub:** [github.com/nordsym/apiclaw](https://github.com/nordsym/apiclaw)
509
+ - **npm:** [@nordsym/apiclaw](https://www.npmjs.com/package/@nordsym/apiclaw)