@spooky-sync/devtools-mcp 0.0.1-canary.26 → 0.0.1-canary.29

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/bridge.js CHANGED
@@ -15,18 +15,18 @@ export class Bridge {
15
15
  return Array.from(this.connectedTabs.values());
16
16
  }
17
17
  start() {
18
- const port = parseInt(process.env.SPOOKY_MCP_PORT || '', 10) || BRIDGE_PORT;
18
+ const port = parseInt(process.env.SP00KY_MCP_PORT || '', 10) || BRIDGE_PORT;
19
19
  return new Promise((resolve, reject) => {
20
20
  this.wss = new WebSocketServer({ host: '127.0.0.1', port }, () => {
21
- process.stderr.write(`[spooky-mcp] Bridge listening on ws://127.0.0.1:${port}\n`);
21
+ process.stderr.write(`[sp00ky-mcp] Bridge listening on ws://127.0.0.1:${port}\n`);
22
22
  resolve();
23
23
  });
24
24
  this.wss.on('error', (err) => {
25
- process.stderr.write(`[spooky-mcp] Bridge error: ${err.message}\n`);
25
+ process.stderr.write(`[sp00ky-mcp] Bridge error: ${err.message}\n`);
26
26
  reject(err);
27
27
  });
28
28
  this.wss.on('connection', (ws) => {
29
- process.stderr.write('[spooky-mcp] Extension connected\n');
29
+ process.stderr.write('[sp00ky-mcp] Extension connected\n');
30
30
  // Only allow one extension connection at a time
31
31
  if (this.extensionSocket) {
32
32
  this.extensionSocket.close();
@@ -40,11 +40,11 @@ export class Bridge {
40
40
  this.handleMessage(msg);
41
41
  }
42
42
  catch (err) {
43
- process.stderr.write(`[spooky-mcp] Bad message: ${err}\n`);
43
+ process.stderr.write(`[sp00ky-mcp] Bad message: ${err}\n`);
44
44
  }
45
45
  });
46
46
  ws.on('close', () => {
47
- process.stderr.write('[spooky-mcp] Extension disconnected\n');
47
+ process.stderr.write('[sp00ky-mcp] Extension disconnected\n');
48
48
  if (this.extensionSocket === ws) {
49
49
  this.extensionSocket = null;
50
50
  this.connectedTabs.clear();
@@ -58,7 +58,7 @@ export class Bridge {
58
58
  }
59
59
  });
60
60
  ws.on('error', (err) => {
61
- process.stderr.write(`[spooky-mcp] Socket error: ${err.message}\n`);
61
+ process.stderr.write(`[sp00ky-mcp] Socket error: ${err.message}\n`);
62
62
  });
63
63
  });
64
64
  });
@@ -107,7 +107,7 @@ export class Bridge {
107
107
  }
108
108
  async request(method, params = {}, tabId) {
109
109
  if (!this.extensionSocket || this.extensionSocket.readyState !== WebSocket.OPEN) {
110
- throw new Error('No extension connected. Make sure the Spooky DevTools extension is running and has a page with Spooky open.');
110
+ throw new Error('No extension connected. Make sure the Sp00ky DevTools extension is running and has a page with Sp00ky open.');
111
111
  }
112
112
  const id = `mcp-${++this.requestCounter}`;
113
113
  const resolvedTabId = tabId ?? this.getDefaultTabId();
package/dist/index.js CHANGED
@@ -8,10 +8,10 @@ async function main() {
8
8
  const server = createServer(bridge);
9
9
  const transport = new StdioServerTransport();
10
10
  await server.connect(transport);
11
- process.stderr.write('[spooky-mcp] MCP server running on stdio\n');
11
+ process.stderr.write('[sp00ky-mcp] MCP server running on stdio\n');
12
12
  // Graceful shutdown
13
13
  const cleanup = async () => {
14
- process.stderr.write('[spooky-mcp] Shutting down...\n');
14
+ process.stderr.write('[sp00ky-mcp] Shutting down...\n');
15
15
  await bridge.stop();
16
16
  process.exit(0);
17
17
  };
@@ -19,6 +19,6 @@ async function main() {
19
19
  process.on('SIGTERM', cleanup);
20
20
  }
21
21
  main().catch((err) => {
22
- process.stderr.write(`[spooky-mcp] Fatal error: ${err.message}\n`);
22
+ process.stderr.write(`[sp00ky-mcp] Fatal error: ${err.message}\n`);
23
23
  process.exit(1);
24
24
  });
package/dist/server.js CHANGED
@@ -3,11 +3,11 @@ import { z } from 'zod';
3
3
  import { BRIDGE_METHODS } from './protocol.js';
4
4
  export function createServer(bridge) {
5
5
  const server = new McpServer({
6
- name: 'spooky-devtools',
6
+ name: 'sp00ky-devtools',
7
7
  version: '0.0.1',
8
8
  });
9
9
  // --- Tools ---
10
- server.tool('list_connections', 'List browser tabs connected to Spooky DevTools', {}, async () => {
10
+ server.tool('list_connections', 'List browser tabs connected to Sp00ky DevTools', {}, async () => {
11
11
  const tabs = bridge.getConnectedTabs();
12
12
  return {
13
13
  content: [
@@ -21,7 +21,7 @@ export function createServer(bridge) {
21
21
  ],
22
22
  };
23
23
  });
24
- server.tool('get_state', 'Get the full Spooky DevTools state (events, queries, auth, database)', { tabId: z.number().optional().describe('Browser tab ID (uses first connected tab if omitted)') }, async ({ tabId }) => {
24
+ server.tool('get_state', 'Get the full Sp00ky DevTools state (events, queries, auth, database)', { tabId: z.number().optional().describe('Browser tab ID (uses first connected tab if omitted)') }, async ({ tabId }) => {
25
25
  const result = await bridge.request(BRIDGE_METHODS.GET_STATE, {}, tabId);
26
26
  return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
27
27
  });
@@ -92,26 +92,26 @@ export function createServer(bridge) {
92
92
  return { content: [{ type: 'text', text: 'History cleared.' }] };
93
93
  });
94
94
  // --- Resources ---
95
- server.resource('state', 'spooky://state', { description: 'Full Spooky DevTools state' }, async (uri) => {
95
+ server.resource('state', 'sp00ky://state', { description: 'Full Sp00ky DevTools state' }, async (uri) => {
96
96
  const state = await bridge.request(BRIDGE_METHODS.GET_STATE);
97
97
  return { contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(state, null, 2) }] };
98
98
  });
99
- server.resource('tables', 'spooky://tables', { description: 'List of database tables' }, async (uri) => {
99
+ server.resource('tables', 'sp00ky://tables', { description: 'List of database tables' }, async (uri) => {
100
100
  const state = (await bridge.request(BRIDGE_METHODS.GET_STATE));
101
101
  const tables = state?.database?.tables ?? [];
102
102
  return { contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(tables, null, 2) }] };
103
103
  });
104
- server.resource('table-data', new ResourceTemplate('spooky://tables/{tableName}', { list: undefined }), { description: 'Contents of a specific database table' }, async (uri, variables) => {
104
+ server.resource('table-data', new ResourceTemplate('sp00ky://tables/{tableName}', { list: undefined }), { description: 'Contents of a specific database table' }, async (uri, variables) => {
105
105
  const tableName = variables.tableName;
106
106
  const result = await bridge.request(BRIDGE_METHODS.GET_TABLE_DATA, { tableName });
107
107
  return { contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(result, null, 2) }] };
108
108
  });
109
- server.resource('queries', 'spooky://queries', { description: 'Active live queries' }, async (uri) => {
109
+ server.resource('queries', 'sp00ky://queries', { description: 'Active live queries' }, async (uri) => {
110
110
  const state = (await bridge.request(BRIDGE_METHODS.GET_STATE));
111
111
  const queries = state?.activeQueries ?? [];
112
112
  return { contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(queries, null, 2) }] };
113
113
  });
114
- server.resource('events', 'spooky://events', { description: 'Event history' }, async (uri) => {
114
+ server.resource('events', 'sp00ky://events', { description: 'Event history' }, async (uri) => {
115
115
  const state = (await bridge.request(BRIDGE_METHODS.GET_STATE));
116
116
  const events = state?.eventsHistory ?? [];
117
117
  return { contents: [{ uri: uri.href, mimeType: 'application/json', text: JSON.stringify(events, null, 2) }] };
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@spooky-sync/devtools-mcp",
3
- "version": "0.0.1-canary.26",
4
- "description": "MCP server for Spooky Sync devtools",
3
+ "version": "0.0.1-canary.29",
4
+ "description": "MCP server for Sp00ky Sync devtools",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {
8
- "spooky-mcp": "./dist/index.js"
8
+ "sp00ky-mcp": "./dist/index.js"
9
9
  },
10
10
  "files": [
11
11
  "dist"
@@ -16,7 +16,7 @@
16
16
  },
17
17
  "repository": {
18
18
  "type": "git",
19
- "url": "https://github.com/mono424/spooky.git",
19
+ "url": "https://github.com/mono424/sp00ky.git",
20
20
  "directory": "apps/devtools-mcp"
21
21
  },
22
22
  "publishConfig": {