@nordsym/apiclaw 1.3.8 → 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.
- package/README.md +29 -13
- package/dist/bin.js +1 -1
- package/dist/bin.js.map +1 -1
- package/dist/cli/commands/mcp-install.d.ts +14 -0
- package/dist/cli/commands/mcp-install.d.ts.map +1 -0
- package/dist/cli/commands/mcp-install.js +246 -0
- package/dist/cli/commands/mcp-install.js.map +1 -0
- package/dist/cli/index.js +8 -0
- package/dist/cli/index.js.map +1 -1
- package/landing/public/book/index.html +24 -5
- package/landing/public/demo-product.jpg +0 -0
- package/landing/scripts/generate-stats.js +3 -2
- package/landing/src/app/api/og/route.tsx +1 -3
- package/landing/src/app/layout.tsx +1 -1
- package/landing/src/app/page.tsx +47 -20
- package/landing/src/app/workspace/page.tsx +2 -97
- package/landing/src/components/HeroTabs.tsx +2 -2
- package/landing/src/components/demo/PhoneDemo.tsx +423 -0
- package/landing/src/components/demo/index.ts +1 -0
- package/landing/src/lib/stats.json +2 -2
- package/landing/tailwind.config.ts +10 -0
- package/package.json +1 -1
- package/src/bin.ts +1 -1
- package/src/cli/commands/mcp-install.ts +291 -0
- package/src/cli/index.ts +9 -0
- package/STATUS.md +0 -160
package/README.md
CHANGED
|
@@ -10,14 +10,14 @@
|
|
|
10
10
|
## Quick Start
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
#
|
|
14
|
-
npx @nordsym/apiclaw
|
|
13
|
+
# Install APIClaw into Claude Desktop or Claude Code
|
|
14
|
+
npx @nordsym/apiclaw mcp-install
|
|
15
15
|
|
|
16
16
|
# That's it! Restart your AI assistant and ask:
|
|
17
17
|
# "List available APIs" or "Send an SMS via 46elks"
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
APIClaw automatically detects Claude Desktop
|
|
20
|
+
APIClaw automatically detects Claude Desktop and Claude Code — then configures itself as an MCP server in seconds.
|
|
21
21
|
|
|
22
22
|
---
|
|
23
23
|
|
|
@@ -38,15 +38,15 @@ Instead of manually configuring API keys and reading documentation, just tell yo
|
|
|
38
38
|
|
|
39
39
|
## Installation
|
|
40
40
|
|
|
41
|
-
### Option 1:
|
|
41
|
+
### Option 1: MCP Install (Recommended)
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
npx @nordsym/apiclaw
|
|
44
|
+
npx @nordsym/apiclaw mcp-install
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
This will:
|
|
48
|
-
1. 🔍 Detect
|
|
49
|
-
2. 📝 Add APIClaw to
|
|
48
|
+
1. 🔍 Detect Claude Desktop or Claude Code
|
|
49
|
+
2. 📝 Add APIClaw to the MCP config
|
|
50
50
|
3. ✅ Verify the setup
|
|
51
51
|
|
|
52
52
|
### Option 2: Manual Installation
|
|
@@ -64,9 +64,25 @@ Just use `npx @nordsym/apiclaw` anywhere — it downloads on demand.
|
|
|
64
64
|
|
|
65
65
|
## Commands
|
|
66
66
|
|
|
67
|
+
### `mcp-install`
|
|
68
|
+
|
|
69
|
+
Simple, focused installation for Claude Desktop and Claude Code.
|
|
70
|
+
|
|
71
|
+
```bash
|
|
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
|
|
81
|
+
```
|
|
82
|
+
|
|
67
83
|
### `setup`
|
|
68
84
|
|
|
69
|
-
|
|
85
|
+
Full-featured setup with support for all MCP clients.
|
|
70
86
|
|
|
71
87
|
```bash
|
|
72
88
|
# Auto-detect and configure all clients
|
|
@@ -255,7 +271,7 @@ export APICLAW_API_URL="https://api.company.com/apiclaw"
|
|
|
255
271
|
# Disable telemetry
|
|
256
272
|
export APICLAW_DISABLE_TELEMETRY="true"
|
|
257
273
|
|
|
258
|
-
npx @nordsym/apiclaw
|
|
274
|
+
npx @nordsym/apiclaw mcp-install
|
|
259
275
|
```
|
|
260
276
|
|
|
261
277
|
### Generate Deployment Script
|
|
@@ -287,7 +303,7 @@ See [Enterprise Deployment Guide](docs/enterprise-deployment.md) for:
|
|
|
287
303
|
|
|
288
304
|
```bash
|
|
289
305
|
# Option 1: Run with sudo
|
|
290
|
-
sudo npx @nordsym/apiclaw
|
|
306
|
+
sudo npx @nordsym/apiclaw mcp-install
|
|
291
307
|
|
|
292
308
|
# Option 2: Fix permissions
|
|
293
309
|
chmod 644 ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
@@ -296,11 +312,11 @@ chmod 644 ~/Library/Application\ Support/Claude/claude_desktop_config.json
|
|
|
296
312
|
### "Config file not found"
|
|
297
313
|
|
|
298
314
|
The MCP client hasn't created its config yet:
|
|
299
|
-
1. Open the client (Claude Desktop
|
|
315
|
+
1. Open the client (Claude Desktop or Claude Code)
|
|
300
316
|
2. Close it
|
|
301
|
-
3. Try
|
|
317
|
+
3. Try mcp-install again
|
|
302
318
|
|
|
303
|
-
Or
|
|
319
|
+
Or use the full setup command with a custom path:
|
|
304
320
|
```bash
|
|
305
321
|
npx @nordsym/apiclaw setup --config /path/to/config.json
|
|
306
322
|
```
|
package/dist/bin.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* - No args or MCP-related args → Run MCP server
|
|
6
6
|
* - setup/doctor/restore/uninstall → Run CLI
|
|
7
7
|
*/
|
|
8
|
-
const cliCommands = ['setup', 'doctor', 'restore', 'uninstall', 'help', '--help', '-h', '--version', '-V'];
|
|
8
|
+
const cliCommands = ['setup', 'mcp-install', 'doctor', 'restore', 'uninstall', 'help', '--help', '-h', '--version', '-V'];
|
|
9
9
|
const firstArg = process.argv[2];
|
|
10
10
|
if (!firstArg || !cliCommands.includes(firstArg)) {
|
|
11
11
|
// Run MCP server
|
package/dist/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AACA;;;;;GAKG;AAEH,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AAE1H,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEjC,IAAI,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IACjD,iBAAiB;IACjB,MAAM,CAAC,YAAY,CAAC,CAAC;AACvB,CAAC;KAAM,CAAC;IACN,UAAU;IACV,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Install Command
|
|
3
|
+
* Simple, focused command to install APIClaw into MCP config files
|
|
4
|
+
* Supports Claude Desktop and Claude Code
|
|
5
|
+
*/
|
|
6
|
+
export interface MCPInstallOptions {
|
|
7
|
+
client?: string;
|
|
8
|
+
dryRun?: boolean;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Main mcp-install command handler
|
|
12
|
+
*/
|
|
13
|
+
export declare function mcpInstallCommand(options: MCPInstallOptions): Promise<void>;
|
|
14
|
+
//# sourceMappingURL=mcp-install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/mcp-install.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,MAAM,WAAW,iBAAiB;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2KD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsGjF"}
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Install Command
|
|
3
|
+
* Simple, focused command to install APIClaw into MCP config files
|
|
4
|
+
* Supports Claude Desktop and Claude Code
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
7
|
+
import { dirname, join } from 'path';
|
|
8
|
+
import { platform, homedir } from 'os';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
/**
|
|
11
|
+
* Detect operating system
|
|
12
|
+
*/
|
|
13
|
+
function detectOS() {
|
|
14
|
+
const os = platform();
|
|
15
|
+
switch (os) {
|
|
16
|
+
case 'darwin': return 'mac';
|
|
17
|
+
case 'win32': return 'win';
|
|
18
|
+
default: return 'linux';
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get home directory
|
|
23
|
+
*/
|
|
24
|
+
function getHome() {
|
|
25
|
+
return homedir();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Get config paths for supported clients
|
|
29
|
+
*/
|
|
30
|
+
function getClientConfigs() {
|
|
31
|
+
const os = detectOS();
|
|
32
|
+
const home = getHome();
|
|
33
|
+
const clients = [
|
|
34
|
+
{
|
|
35
|
+
name: 'claude-desktop',
|
|
36
|
+
displayName: 'Claude Desktop',
|
|
37
|
+
configKey: 'mcpServers',
|
|
38
|
+
getConfigPath: () => {
|
|
39
|
+
switch (os) {
|
|
40
|
+
case 'mac':
|
|
41
|
+
return join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json');
|
|
42
|
+
case 'win':
|
|
43
|
+
return join(process.env.APPDATA || join(home, 'AppData', 'Roaming'), 'Claude', 'claude_desktop_config.json');
|
|
44
|
+
case 'linux':
|
|
45
|
+
return join(home, '.config', 'Claude', 'claude_desktop_config.json');
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: 'claude-code',
|
|
51
|
+
displayName: 'Claude Code',
|
|
52
|
+
configKey: 'mcpServers',
|
|
53
|
+
getConfigPath: () => {
|
|
54
|
+
// Claude Code uses ~/.claude.json on all platforms
|
|
55
|
+
return join(home, '.claude.json');
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
];
|
|
59
|
+
return clients;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* APIClaw MCP server configuration
|
|
63
|
+
*/
|
|
64
|
+
const APICLAW_CONFIG = {
|
|
65
|
+
command: 'npx',
|
|
66
|
+
args: ['-y', '@nordsym/apiclaw', 'serve'],
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Read JSON config file
|
|
70
|
+
*/
|
|
71
|
+
function readConfig(path) {
|
|
72
|
+
try {
|
|
73
|
+
if (!existsSync(path)) {
|
|
74
|
+
return { success: true, config: {}, isNew: true };
|
|
75
|
+
}
|
|
76
|
+
const content = readFileSync(path, 'utf-8');
|
|
77
|
+
if (!content.trim()) {
|
|
78
|
+
return { success: true, config: {}, isNew: true };
|
|
79
|
+
}
|
|
80
|
+
return { success: true, config: JSON.parse(content), isNew: false };
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
return {
|
|
84
|
+
success: false,
|
|
85
|
+
config: null,
|
|
86
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Write JSON config file with backup
|
|
92
|
+
*/
|
|
93
|
+
function writeConfig(path, config, createBackup = true) {
|
|
94
|
+
try {
|
|
95
|
+
const dir = dirname(path);
|
|
96
|
+
if (!existsSync(dir)) {
|
|
97
|
+
mkdirSync(dir, { recursive: true });
|
|
98
|
+
}
|
|
99
|
+
// Create backup if file exists
|
|
100
|
+
if (createBackup && existsSync(path)) {
|
|
101
|
+
const backupPath = `${path}.backup.${Date.now()}.json`;
|
|
102
|
+
const existing = readFileSync(path, 'utf-8');
|
|
103
|
+
writeFileSync(backupPath, existing, 'utf-8');
|
|
104
|
+
}
|
|
105
|
+
writeFileSync(path, JSON.stringify(config, null, 2), 'utf-8');
|
|
106
|
+
return { success: true };
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
return {
|
|
110
|
+
success: false,
|
|
111
|
+
error: error instanceof Error ? error.message : 'Unknown error'
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Install APIClaw into a client config
|
|
117
|
+
*/
|
|
118
|
+
function installToClient(client, dryRun) {
|
|
119
|
+
const configPath = client.getConfigPath();
|
|
120
|
+
// Read existing config
|
|
121
|
+
const readResult = readConfig(configPath);
|
|
122
|
+
if (!readResult.success) {
|
|
123
|
+
return { success: false, message: `Failed to read config: ${readResult.error}` };
|
|
124
|
+
}
|
|
125
|
+
const config = readResult.config;
|
|
126
|
+
// Initialize mcpServers if not present
|
|
127
|
+
if (!config.mcpServers) {
|
|
128
|
+
config.mcpServers = {};
|
|
129
|
+
}
|
|
130
|
+
// Check if already installed
|
|
131
|
+
if (config.mcpServers.apiclaw) {
|
|
132
|
+
return { success: true, message: 'Already installed', skipped: true };
|
|
133
|
+
}
|
|
134
|
+
// Add APIClaw config
|
|
135
|
+
config.mcpServers.apiclaw = APICLAW_CONFIG;
|
|
136
|
+
if (dryRun) {
|
|
137
|
+
console.log(chalk.cyan(`\n Would add to ${configPath}:`));
|
|
138
|
+
console.log(chalk.gray(JSON.stringify({ apiclaw: APICLAW_CONFIG }, null, 4)));
|
|
139
|
+
return { success: true, message: 'Dry run - no changes made', skipped: true };
|
|
140
|
+
}
|
|
141
|
+
// Write config
|
|
142
|
+
const writeResult = writeConfig(configPath, config);
|
|
143
|
+
if (!writeResult.success) {
|
|
144
|
+
return { success: false, message: `Failed to write config: ${writeResult.error}` };
|
|
145
|
+
}
|
|
146
|
+
return {
|
|
147
|
+
success: true,
|
|
148
|
+
message: readResult.isNew ? 'Created new config' : 'Updated config'
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Main mcp-install command handler
|
|
153
|
+
*/
|
|
154
|
+
export async function mcpInstallCommand(options) {
|
|
155
|
+
const os = detectOS();
|
|
156
|
+
const osName = os === 'mac' ? 'macOS' : os === 'win' ? 'Windows' : 'Linux';
|
|
157
|
+
console.log(chalk.bold('\n🦞 APIClaw MCP Install\n'));
|
|
158
|
+
console.log(`Platform: ${osName}\n`);
|
|
159
|
+
const clients = getClientConfigs();
|
|
160
|
+
let targetClients = clients;
|
|
161
|
+
// Filter to specific client if requested
|
|
162
|
+
if (options.client) {
|
|
163
|
+
const normalizedClient = options.client.toLowerCase().replace(/[_\s]/g, '-');
|
|
164
|
+
const aliases = {
|
|
165
|
+
'claude': 'claude-desktop',
|
|
166
|
+
'claude-desktop': 'claude-desktop',
|
|
167
|
+
'claudedesktop': 'claude-desktop',
|
|
168
|
+
'desktop': 'claude-desktop',
|
|
169
|
+
'code': 'claude-code',
|
|
170
|
+
'claude-code': 'claude-code',
|
|
171
|
+
'claudecode': 'claude-code',
|
|
172
|
+
};
|
|
173
|
+
const targetName = aliases[normalizedClient];
|
|
174
|
+
if (!targetName) {
|
|
175
|
+
console.log(chalk.red(`❌ Unknown client: ${options.client}`));
|
|
176
|
+
console.log(' Supported: claude-desktop, claude-code');
|
|
177
|
+
process.exit(1);
|
|
178
|
+
}
|
|
179
|
+
targetClients = clients.filter(c => c.name === targetName);
|
|
180
|
+
}
|
|
181
|
+
// Detect which clients exist
|
|
182
|
+
console.log('🔍 Detecting MCP clients...\n');
|
|
183
|
+
const detectedClients = [];
|
|
184
|
+
for (const client of targetClients) {
|
|
185
|
+
const configPath = client.getConfigPath();
|
|
186
|
+
const configDir = dirname(configPath);
|
|
187
|
+
const exists = existsSync(configPath) || existsSync(configDir);
|
|
188
|
+
const icon = exists ? chalk.green('✓') : chalk.gray('✗');
|
|
189
|
+
const status = exists ? 'found' : 'not found';
|
|
190
|
+
console.log(` ${icon} ${client.displayName} ${status}`);
|
|
191
|
+
if (exists) {
|
|
192
|
+
detectedClients.push(client);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
console.log('');
|
|
196
|
+
if (detectedClients.length === 0) {
|
|
197
|
+
console.log(chalk.yellow('⚠️ No MCP clients detected.'));
|
|
198
|
+
console.log(' Install Claude Desktop or Claude Code first.\n');
|
|
199
|
+
process.exit(0);
|
|
200
|
+
}
|
|
201
|
+
// Install to each detected client
|
|
202
|
+
let successCount = 0;
|
|
203
|
+
let skipCount = 0;
|
|
204
|
+
let failCount = 0;
|
|
205
|
+
for (const client of detectedClients) {
|
|
206
|
+
const result = installToClient(client, options.dryRun || false);
|
|
207
|
+
if (result.success) {
|
|
208
|
+
if (result.skipped) {
|
|
209
|
+
skipCount++;
|
|
210
|
+
console.log(chalk.yellow(`⏭️ ${client.displayName}: ${result.message}`));
|
|
211
|
+
}
|
|
212
|
+
else {
|
|
213
|
+
successCount++;
|
|
214
|
+
console.log(chalk.green(`✓ ${client.displayName}: ${result.message}`));
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else {
|
|
218
|
+
failCount++;
|
|
219
|
+
console.log(chalk.red(`✗ ${client.displayName}: ${result.message}`));
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
// Summary
|
|
223
|
+
console.log('\n' + '═'.repeat(50));
|
|
224
|
+
if (failCount === 0) {
|
|
225
|
+
if (options.dryRun) {
|
|
226
|
+
console.log(chalk.cyan('\n✅ Dry run complete! Run without --dry-run to apply changes.\n'));
|
|
227
|
+
}
|
|
228
|
+
else if (successCount > 0) {
|
|
229
|
+
console.log(chalk.green('\n✅ APIClaw installed successfully!\n'));
|
|
230
|
+
console.log('Next steps:');
|
|
231
|
+
console.log(' 1. Restart your MCP client (Claude Desktop/Code)');
|
|
232
|
+
console.log(' 2. Ask: "List available APIs"');
|
|
233
|
+
console.log('');
|
|
234
|
+
console.log('Need help? https://apiclaw.com/docs\n');
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
console.log(chalk.yellow('\n✅ APIClaw already installed in all clients.\n'));
|
|
238
|
+
console.log('Run with --force to reinstall (coming soon).\n');
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
console.log(chalk.red(`\n⚠️ Installation completed with ${failCount} error(s).\n`));
|
|
243
|
+
process.exit(1);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=mcp-install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-install.js","sourceRoot":"","sources":["../../../src/cli/commands/mcp-install.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
import { writeFileSync } from 'fs';
|
|
8
8
|
import { setupCommand } from './commands/setup.js';
|
|
9
|
+
import { mcpInstallCommand } from './commands/mcp-install.js';
|
|
9
10
|
import { doctorCommand } from './commands/doctor.js';
|
|
10
11
|
import { restoreCommand } from './commands/restore.js';
|
|
11
12
|
import { uninstallCommand } from './commands/uninstall.js';
|
|
@@ -61,6 +62,13 @@ program
|
|
|
61
62
|
// Normal setup
|
|
62
63
|
await setupCommand(options);
|
|
63
64
|
});
|
|
65
|
+
// MCP Install command - simple focused installation
|
|
66
|
+
program
|
|
67
|
+
.command('mcp-install')
|
|
68
|
+
.description('Install APIClaw into Claude Desktop or Claude Code MCP config')
|
|
69
|
+
.option('-c, --client <client>', 'Target specific client (claude-desktop, claude-code)')
|
|
70
|
+
.option('--dry-run', 'Show what would happen without making changes')
|
|
71
|
+
.action(mcpInstallCommand);
|
|
64
72
|
// Doctor command - health check
|
|
65
73
|
program
|
|
66
74
|
.command('doctor')
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -231,12 +231,8 @@
|
|
|
231
231
|
|
|
232
232
|
<div class="form-group">
|
|
233
233
|
<label>Preferred Day</label>
|
|
234
|
-
<select name="day" required>
|
|
234
|
+
<select name="day" required id="day-select">
|
|
235
235
|
<option value="">Select a day</option>
|
|
236
|
-
<option value="tuesday">Tuesday (Feb 25)</option>
|
|
237
|
-
<option value="wednesday">Wednesday (Feb 26)</option>
|
|
238
|
-
<option value="thursday">Thursday (Feb 27)</option>
|
|
239
|
-
<option value="friday">Friday (Feb 28)</option>
|
|
240
236
|
</select>
|
|
241
237
|
</div>
|
|
242
238
|
|
|
@@ -300,6 +296,29 @@
|
|
|
300
296
|
}
|
|
301
297
|
});
|
|
302
298
|
|
|
299
|
+
// Generate dynamic weekday options (next 5 weekdays)
|
|
300
|
+
const daySelect = document.getElementById('day-select');
|
|
301
|
+
const dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
302
|
+
const monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
|
|
303
|
+
|
|
304
|
+
let date = new Date();
|
|
305
|
+
let addedDays = 0;
|
|
306
|
+
|
|
307
|
+
while (addedDays < 5) {
|
|
308
|
+
date.setDate(date.getDate() + 1);
|
|
309
|
+
const dayOfWeek = date.getDay();
|
|
310
|
+
if (dayOfWeek !== 0 && dayOfWeek !== 6) { // Skip weekends
|
|
311
|
+
const dayName = dayNames[dayOfWeek];
|
|
312
|
+
const monthName = monthNames[date.getMonth()];
|
|
313
|
+
const dateNum = date.getDate();
|
|
314
|
+
const option = document.createElement('option');
|
|
315
|
+
option.value = `${dayName.toLowerCase()}-${date.toISOString().split('T')[0]}`;
|
|
316
|
+
option.textContent = `${dayName} (${monthName} ${dateNum})`;
|
|
317
|
+
daySelect.appendChild(option);
|
|
318
|
+
addedDays++;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
|
|
303
322
|
// Time slot selection
|
|
304
323
|
document.querySelectorAll('.time-slot').forEach(slot => {
|
|
305
324
|
slot.addEventListener('click', () => {
|
|
Binary file
|
|
@@ -94,7 +94,8 @@ try {
|
|
|
94
94
|
).length;
|
|
95
95
|
|
|
96
96
|
// Direct call providers (hardcoded for now, update when adding new providers)
|
|
97
|
-
|
|
97
|
+
// Groq, Deepgram, Mistral, Cohere, Together, Stability, AssemblyAI, Serper, OpenAI, Anthropic, ElevenLabs, Replicate, Brave, Resend, Twilio, 46elks, Stripe, SendGrid
|
|
98
|
+
const directCallCount = 18;
|
|
98
99
|
|
|
99
100
|
const stats = {
|
|
100
101
|
apiCount: registry.count,
|
|
@@ -120,7 +121,7 @@ try {
|
|
|
120
121
|
const fallback = {
|
|
121
122
|
apiCount: 22392,
|
|
122
123
|
openApiCount: 996,
|
|
123
|
-
directCallCount:
|
|
124
|
+
directCallCount: 18,
|
|
124
125
|
categoryCount: 14,
|
|
125
126
|
lastUpdated: new Date().toISOString().split('T')[0],
|
|
126
127
|
generatedAt: new Date().toISOString(),
|
|
@@ -60,11 +60,9 @@ export async function GET() {
|
|
|
60
60
|
>
|
|
61
61
|
<span>{statsData.apiCount.toLocaleString()}+ APIs</span>
|
|
62
62
|
<span>•</span>
|
|
63
|
-
<span>{statsData.
|
|
63
|
+
<span>{statsData.directCallCount} Direct Call</span>
|
|
64
64
|
<span>•</span>
|
|
65
65
|
<span>MCP Native</span>
|
|
66
|
-
<span>•</span>
|
|
67
|
-
<span>Direct Call</span>
|
|
68
66
|
</div>
|
|
69
67
|
<div
|
|
70
68
|
style={{
|
package/landing/src/app/page.tsx
CHANGED
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
import statsData from "@/lib/stats.json";
|
|
11
11
|
import { useState, useEffect, useRef } from "react";
|
|
12
12
|
import { HeroTabs } from "@/components/HeroTabs";
|
|
13
|
+
import { PhoneDemo } from "@/components/demo";
|
|
13
14
|
|
|
14
15
|
const stats = [
|
|
15
16
|
{ number: statsData.apiCount.toLocaleString(), label: "APIs Indexed", live: true },
|
|
@@ -128,7 +129,7 @@ const providerBenefits = [
|
|
|
128
129
|
];
|
|
129
130
|
|
|
130
131
|
const terminalLines = [
|
|
131
|
-
{ type: "prompt", text: "npx @nordsym/apiclaw" },
|
|
132
|
+
{ type: "prompt", text: "npx @nordsym/apiclaw mcp-install" },
|
|
132
133
|
{ type: "output", text: "", delay: 500 },
|
|
133
134
|
{ type: "output", text: "🦞 APIClaw v1.2.2", delay: 100 },
|
|
134
135
|
{ type: "output", text: "", delay: 50 },
|
|
@@ -180,28 +181,34 @@ export default function Home() {
|
|
|
180
181
|
];
|
|
181
182
|
|
|
182
183
|
const copyToClipboard = () => {
|
|
183
|
-
navigator.clipboard.writeText('npx @nordsym/apiclaw');
|
|
184
|
+
navigator.clipboard.writeText('npx @nordsym/apiclaw mcp-install');
|
|
184
185
|
setShowCopied(true);
|
|
185
186
|
setTimeout(() => setShowCopied(false), 2000);
|
|
186
187
|
};
|
|
187
188
|
|
|
188
189
|
const copyContextToClipboard = () => {
|
|
189
|
-
const context = `APIClaw
|
|
190
|
+
const context = `APIClaw – Direct Call Execution Layer for AI Agents
|
|
190
191
|
|
|
191
|
-
|
|
192
|
-
• ${statsData.apiCount.toLocaleString()}+ APIs indexed (searchable catalog)
|
|
193
|
-
• ${statsData.openApiCount.toLocaleString()}+ Open APIs (no auth required)
|
|
194
|
-
• ${statsData.directCallCount} Direct Call providers (we handle auth: Replicate, OpenRouter, ElevenLabs, etc.)
|
|
192
|
+
You have access to APIClaw, an MCP server that lets you execute API calls WITHOUT managing keys.
|
|
195
193
|
|
|
196
|
-
|
|
197
|
-
•
|
|
198
|
-
•
|
|
199
|
-
•
|
|
200
|
-
• list_connected - See available Direct Call providers
|
|
194
|
+
Direct Call = Zero-Config Execution:
|
|
195
|
+
• No API key management needed
|
|
196
|
+
• APIClaw handles auth, headers, signatures
|
|
197
|
+
• Execute immediately on ${statsData.directCallCount} providers
|
|
201
198
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
199
|
+
Available Providers:
|
|
200
|
+
Replicate (AI models), ElevenLabs (voice), OpenRouter (LLMs), Resend (email), 46elks (SMS), Brave Search, Firecrawl, E2B, GitHub
|
|
201
|
+
|
|
202
|
+
Your Tools:
|
|
203
|
+
• list_connected - See providers ready for instant execution
|
|
204
|
+
• call_api(provider, action, params) - Execute directly. Auth handled by APIClaw — omit/leave auth fields empty
|
|
205
|
+
• discover_apis - Search ${statsData.apiCount.toLocaleString()}+ APIs by capability
|
|
206
|
+
• get_api_details - Full specs if you need them
|
|
207
|
+
|
|
208
|
+
You have authority to act. Use call_api directly.
|
|
209
|
+
|
|
210
|
+
Install: npx @nordsym/apiclaw mcp-install
|
|
211
|
+
Docs: https://apiclaw.nordsym.com/docs`;
|
|
205
212
|
navigator.clipboard.writeText(context);
|
|
206
213
|
setShowContextCopied(true);
|
|
207
214
|
setTimeout(() => setShowContextCopied(false), 2500);
|
|
@@ -283,8 +290,13 @@ Website: https://apiclaw.nordsym.com`;
|
|
|
283
290
|
|
|
284
291
|
return (
|
|
285
292
|
<main className="min-h-screen overflow-x-hidden">
|
|
293
|
+
{/* Early Access Banner */}
|
|
294
|
+
<div className="fixed top-0 w-full z-[60] bg-accent text-background text-center py-2 px-4 text-sm font-medium">
|
|
295
|
+
🦞 <span className="font-bold">Early Access</span> — Join the first wave of agents
|
|
296
|
+
</div>
|
|
297
|
+
|
|
286
298
|
{/* Header */}
|
|
287
|
-
<header className="fixed top-
|
|
299
|
+
<header className="fixed top-9 w-full z-50 bg-background/80 backdrop-blur-xl border-b border-border-subtle">
|
|
288
300
|
<div className="max-w-6xl mx-auto px-4 sm:px-6 py-3 sm:py-4 flex items-center justify-between">
|
|
289
301
|
<div className="flex items-center gap-2 sm:gap-3">
|
|
290
302
|
<div className="w-8 h-8 sm:w-10 sm:h-10 rounded-xl bg-accent/20 flex items-center justify-center text-xl sm:text-2xl logo-float">
|
|
@@ -434,7 +446,7 @@ Website: https://apiclaw.nordsym.com`;
|
|
|
434
446
|
</header>
|
|
435
447
|
|
|
436
448
|
{/* Hero */}
|
|
437
|
-
<section className="relative pt-
|
|
449
|
+
<section className="relative pt-44 pb-20 px-6 bg-grid">
|
|
438
450
|
<div className="hero-glow" />
|
|
439
451
|
|
|
440
452
|
<div className="max-w-6xl mx-auto relative z-10">
|
|
@@ -524,6 +536,21 @@ Website: https://apiclaw.nordsym.com`;
|
|
|
524
536
|
</div>
|
|
525
537
|
</section>
|
|
526
538
|
|
|
539
|
+
{/* Phone Demo - With vs Without APIClaw */}
|
|
540
|
+
<section className="py-20 px-6">
|
|
541
|
+
<div className="max-w-5xl mx-auto">
|
|
542
|
+
<div className="text-center mb-12">
|
|
543
|
+
<h2 className="text-3xl md:text-4xl font-bold mb-4">
|
|
544
|
+
See the Difference
|
|
545
|
+
</h2>
|
|
546
|
+
<p className="text-text-muted text-lg max-w-2xl mx-auto">
|
|
547
|
+
Toggle to compare what happens when your AI agent has APIClaw — versus doing it the old way.
|
|
548
|
+
</p>
|
|
549
|
+
</div>
|
|
550
|
+
<PhoneDemo />
|
|
551
|
+
</div>
|
|
552
|
+
</section>
|
|
553
|
+
|
|
527
554
|
{/* Direct Call Modal */}
|
|
528
555
|
{showDirectCallModal && (
|
|
529
556
|
<div className="fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/80 backdrop-blur-sm" onClick={() => setShowDirectCallModal(false)}>
|
|
@@ -956,7 +983,7 @@ Website: https://apiclaw.nordsym.com`;
|
|
|
956
983
|
</li>
|
|
957
984
|
<li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
|
|
958
985
|
<Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
|
|
959
|
-
|
|
986
|
+
18 providers (AI Models, Scraping, Code, Search)
|
|
960
987
|
</li>
|
|
961
988
|
<li className="flex items-start gap-3 text-text-secondary text-sm sm:text-base">
|
|
962
989
|
<Check className="w-5 h-5 text-accent flex-shrink-0 mt-0.5" />
|
|
@@ -1029,7 +1056,7 @@ Website: https://apiclaw.nordsym.com`;
|
|
|
1029
1056
|
},
|
|
1030
1057
|
{
|
|
1031
1058
|
q: "How does Direct Call work?",
|
|
1032
|
-
a: "Direct Call lets your agent use APIs without managing API keys. APIClaw handles authentication — your agent just calls the API through us. Currently available for
|
|
1059
|
+
a: "Direct Call lets your agent use APIs without managing API keys. APIClaw handles authentication — your agent just calls the API through us. Currently available for 18 providers including Replicate (1000+ ML models), OpenRouter (100+ LLMs), Firecrawl (web scraping), E2B (code sandbox), and more."
|
|
1033
1060
|
},
|
|
1034
1061
|
{
|
|
1035
1062
|
q: "How are API credentials secured?",
|
|
@@ -1151,7 +1178,7 @@ Website: https://apiclaw.nordsym.com`;
|
|
|
1151
1178
|
|
|
1152
1179
|
{/* Telegram Chat Bubble */}
|
|
1153
1180
|
<a
|
|
1154
|
-
href="https://t.me/
|
|
1181
|
+
href="https://t.me/Symbot_nordsym_bot?start=apiclaw"
|
|
1155
1182
|
target="_blank"
|
|
1156
1183
|
rel="noopener noreferrer"
|
|
1157
1184
|
className="fixed bottom-6 right-6 z-50 group"
|