@daxaur/ctrl-mcp 0.1.4 → 0.1.5

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/dist/index.js CHANGED
@@ -83,6 +83,37 @@ server.setRequestHandler(CallToolRequestSchema, async (req) => {
83
83
  }
84
84
  });
85
85
  async function main() {
86
+ // Subcommand dispatch — `install [target]` writes the user's MCP client
87
+ // config for them so they don't have to hand-edit JSON. Default (no args)
88
+ // is the stdio MCP server itself.
89
+ const argv = process.argv.slice(2);
90
+ if (argv[0] === 'install') {
91
+ const { runInstall } = await import('./install.js');
92
+ await runInstall(argv.slice(1));
93
+ return;
94
+ }
95
+ if (argv[0] === '--version' || argv[0] === '-v') {
96
+ console.log('@daxaur/ctrl-mcp 0.1.5');
97
+ return;
98
+ }
99
+ if (argv[0] === '--help' || argv[0] === '-h') {
100
+ console.log([
101
+ '@daxaur/ctrl-mcp — Base MCP plugin for CTRL workflow automation',
102
+ '',
103
+ 'Usage:',
104
+ ' npx -y @daxaur/ctrl-mcp run as stdio MCP server (default — used by MCP clients)',
105
+ ' npx -y @daxaur/ctrl-mcp install [claude|cursor|codex|all]',
106
+ ' auto-configure your AI client',
107
+ ' npx -y @daxaur/ctrl-mcp --version',
108
+ '',
109
+ 'Env:',
110
+ ' CTRL_API_KEY mint at https://ctrl.build/mcp',
111
+ '',
112
+ 'Install in Claude Desktop:',
113
+ ' CTRL_API_KEY=sk_ctrl_... npx -y @daxaur/ctrl-mcp install claude',
114
+ ].join('\n'));
115
+ return;
116
+ }
86
117
  const transport = new StdioServerTransport();
87
118
  await server.connect(transport);
88
119
  // Log to stderr so it doesn't corrupt the stdio protocol on stdout.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @daxaur/ctrl-mcp install — auto-configure Claude Desktop / Cursor / Codex.
3
+ *
4
+ * Usage:
5
+ * npx @daxaur/ctrl-mcp install claude # writes Claude Desktop config
6
+ * npx @daxaur/ctrl-mcp install cursor # writes Cursor mcp.json
7
+ * npx @daxaur/ctrl-mcp install codex # writes Codex config
8
+ * npx @daxaur/ctrl-mcp install all # writes any client whose config dir exists
9
+ *
10
+ * Reads existing config (if any), merges the `ctrl` entry under mcpServers
11
+ * (preserving other servers), writes it back. Prompts for CTRL_API_KEY if
12
+ * not in env. Idempotent — re-running just updates the entry.
13
+ */
14
+ export declare function runInstall(argv: string[]): Promise<void>;
15
+ //# sourceMappingURL=install.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0JH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmD9D"}
@@ -0,0 +1,170 @@
1
+ /**
2
+ * @daxaur/ctrl-mcp install — auto-configure Claude Desktop / Cursor / Codex.
3
+ *
4
+ * Usage:
5
+ * npx @daxaur/ctrl-mcp install claude # writes Claude Desktop config
6
+ * npx @daxaur/ctrl-mcp install cursor # writes Cursor mcp.json
7
+ * npx @daxaur/ctrl-mcp install codex # writes Codex config
8
+ * npx @daxaur/ctrl-mcp install all # writes any client whose config dir exists
9
+ *
10
+ * Reads existing config (if any), merges the `ctrl` entry under mcpServers
11
+ * (preserving other servers), writes it back. Prompts for CTRL_API_KEY if
12
+ * not in env. Idempotent — re-running just updates the entry.
13
+ */
14
+ import fs from 'node:fs';
15
+ import path from 'node:path';
16
+ import os from 'node:os';
17
+ import readline from 'node:readline/promises';
18
+ import { stdin as input, stdout as output } from 'node:process';
19
+ function clientSpecs() {
20
+ const home = os.homedir();
21
+ return [
22
+ {
23
+ id: 'claude',
24
+ label: 'Claude Desktop',
25
+ configPath: path.join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
26
+ schemaShape: 'mcpServers',
27
+ },
28
+ {
29
+ id: 'cursor',
30
+ label: 'Cursor',
31
+ configPath: path.join(home, '.cursor', 'mcp.json'),
32
+ schemaShape: 'mcpServers',
33
+ },
34
+ {
35
+ id: 'codex',
36
+ label: 'Codex',
37
+ configPath: path.join(home, '.config', 'openai-codex', 'mcp.json'),
38
+ schemaShape: 'mcpServers',
39
+ },
40
+ ];
41
+ }
42
+ async function promptForKey() {
43
+ const rl = readline.createInterface({ input, output });
44
+ try {
45
+ const answer = await rl.question('\nPaste your CTRL API key (mint at https://ctrl.build/mcp): ');
46
+ return answer.trim();
47
+ }
48
+ finally {
49
+ rl.close();
50
+ }
51
+ }
52
+ function mcpEntry(apiKey) {
53
+ return {
54
+ command: 'npx',
55
+ args: ['-y', '@daxaur/ctrl-mcp@latest'],
56
+ env: { CTRL_API_KEY: apiKey },
57
+ };
58
+ }
59
+ function readConfig(p) {
60
+ if (!fs.existsSync(p))
61
+ return {};
62
+ try {
63
+ const raw = fs.readFileSync(p, 'utf8').trim();
64
+ if (!raw)
65
+ return {};
66
+ return JSON.parse(raw);
67
+ }
68
+ catch (e) {
69
+ throw new Error(`Could not parse ${p}: ${e instanceof Error ? e.message : String(e)}. Open it in a JSON validator and fix the syntax, then re-run.`);
70
+ }
71
+ }
72
+ function writeConfig(p, cfg) {
73
+ fs.mkdirSync(path.dirname(p), { recursive: true });
74
+ // Preserve a single trailing newline + 2-space indent (the convention every client uses).
75
+ fs.writeFileSync(p, JSON.stringify(cfg, null, 2) + '\n', 'utf8');
76
+ }
77
+ async function installOne(spec, apiKey, opts) {
78
+ const dir = path.dirname(spec.configPath);
79
+ const dirExists = fs.existsSync(dir);
80
+ if (!dirExists && opts.skipIfMissingDir) {
81
+ return {
82
+ client: spec.id,
83
+ label: spec.label,
84
+ path: spec.configPath,
85
+ action: 'skipped',
86
+ reason: `${dir} does not exist — ${spec.label} likely not installed on this machine`,
87
+ };
88
+ }
89
+ const existed = fs.existsSync(spec.configPath);
90
+ const cfg = readConfig(spec.configPath);
91
+ const servers = (cfg.mcpServers || {});
92
+ const prevEntry = servers.ctrl;
93
+ const nextEntry = mcpEntry(apiKey);
94
+ if (prevEntry &&
95
+ JSON.stringify(prevEntry) === JSON.stringify(nextEntry)) {
96
+ return {
97
+ client: spec.id,
98
+ label: spec.label,
99
+ path: spec.configPath,
100
+ action: 'already-current',
101
+ };
102
+ }
103
+ servers.ctrl = nextEntry;
104
+ cfg.mcpServers = servers;
105
+ writeConfig(spec.configPath, cfg);
106
+ return {
107
+ client: spec.id,
108
+ label: spec.label,
109
+ path: spec.configPath,
110
+ action: existed ? 'updated' : 'created',
111
+ };
112
+ }
113
+ function logResult(r) {
114
+ const sym = r.action === 'created'
115
+ ? '✓ created'
116
+ : r.action === 'updated'
117
+ ? '✓ updated'
118
+ : r.action === 'already-current'
119
+ ? '· already current'
120
+ : '· skipped';
121
+ console.log(`${sym} ${r.label.padEnd(16)} ${r.path}`);
122
+ if (r.reason)
123
+ console.log(` ${r.reason}`);
124
+ }
125
+ export async function runInstall(argv) {
126
+ const target = (argv[0] || 'all').toLowerCase();
127
+ const validClients = ['claude', 'cursor', 'codex'];
128
+ if (target !== 'all' && !validClients.includes(target)) {
129
+ console.error(`Unknown target: ${target}. Use one of: ${validClients.join(', ')}, all.`);
130
+ process.exit(1);
131
+ }
132
+ let apiKey = process.env.CTRL_API_KEY || '';
133
+ if (!apiKey) {
134
+ apiKey = await promptForKey();
135
+ }
136
+ if (!apiKey || !apiKey.startsWith('sk_ctrl_')) {
137
+ console.error(`\nMissing or malformed CTRL API key. Mint one at https://ctrl.build/mcp, then re-run.`);
138
+ process.exit(1);
139
+ }
140
+ const specs = clientSpecs();
141
+ const selected = target === 'all' ? specs : specs.filter((s) => s.id === target);
142
+ console.log(`\nInstalling @daxaur/ctrl-mcp into ${selected.length} client${selected.length === 1 ? '' : 's'}…\n`);
143
+ const results = [];
144
+ for (const spec of selected) {
145
+ try {
146
+ const r = await installOne(spec, apiKey, {
147
+ skipIfMissingDir: target === 'all',
148
+ });
149
+ results.push(r);
150
+ logResult(r);
151
+ }
152
+ catch (e) {
153
+ console.error(`✗ ${spec.label}: ${e instanceof Error ? e.message : String(e)}`);
154
+ }
155
+ }
156
+ const wrote = results.filter((r) => r.action === 'created' || r.action === 'updated');
157
+ if (wrote.length > 0) {
158
+ console.log(`\nDone. Fully quit ${wrote.map((r) => r.label).join(' + ')} (Cmd+Q) and reopen — closing the window isn't enough.`);
159
+ console.log(`Then ask: "list the tools you have from ctrl" — you should see five.`);
160
+ }
161
+ else if (results.every((r) => r.action === 'already-current')) {
162
+ console.log(`\nNothing to change — your config already points at this key.`);
163
+ }
164
+ else if (results.every((r) => r.action === 'skipped')) {
165
+ console.log(`\nNone of the supported clients are installed at the default paths.`);
166
+ console.log(`If you have a non-standard install, paste this into your client's MCP config manually:`);
167
+ console.log(`\n ${JSON.stringify({ mcpServers: { ctrl: mcpEntry(apiKey) } }, null, 2)}`);
168
+ }
169
+ }
170
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daxaur/ctrl-mcp",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Base MCP plugin for CTRL — turn natural language into onchain workflow automations on Base. Sign once, trade forever.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",