figma-console-mcp 0.1.0
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/LICENSE +21 -0
- package/README.md +328 -0
- package/dist/browser/base.d.ts +50 -0
- package/dist/browser/base.d.ts.map +1 -0
- package/dist/browser/base.js +6 -0
- package/dist/browser/base.js.map +1 -0
- package/dist/browser/local.d.ts +66 -0
- package/dist/browser/local.d.ts.map +1 -0
- package/dist/browser/local.js +223 -0
- package/dist/browser/local.js.map +1 -0
- package/dist/cloudflare/browser/base.js +5 -0
- package/dist/cloudflare/browser/cloudflare.js +156 -0
- package/dist/cloudflare/browser-manager.js +157 -0
- package/dist/cloudflare/core/config.js +161 -0
- package/dist/cloudflare/core/console-monitor.js +382 -0
- package/dist/cloudflare/core/enrichment/enrichment-service.js +272 -0
- package/dist/cloudflare/core/enrichment/index.js +7 -0
- package/dist/cloudflare/core/enrichment/relationship-mapper.js +351 -0
- package/dist/cloudflare/core/enrichment/style-resolver.js +326 -0
- package/dist/cloudflare/core/figma-api.js +273 -0
- package/dist/cloudflare/core/figma-desktop-connector.js +383 -0
- package/dist/cloudflare/core/figma-style-extractor.js +311 -0
- package/dist/cloudflare/core/figma-tools.js +2299 -0
- package/dist/cloudflare/core/logger.js +53 -0
- package/dist/cloudflare/core/snippet-injector.js +96 -0
- package/dist/cloudflare/core/types/enriched.js +5 -0
- package/dist/cloudflare/core/types/index.js +4 -0
- package/dist/cloudflare/index.js +1059 -0
- package/dist/cloudflare/test-browser.js +88 -0
- package/dist/config.d.ts +17 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +141 -0
- package/dist/config.js.map +1 -0
- package/dist/core/config.d.ts +17 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +162 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/console-monitor.d.ts +81 -0
- package/dist/core/console-monitor.d.ts.map +1 -0
- package/dist/core/console-monitor.js +383 -0
- package/dist/core/console-monitor.js.map +1 -0
- package/dist/core/enrichment/enrichment-service.d.ts +52 -0
- package/dist/core/enrichment/enrichment-service.d.ts.map +1 -0
- package/dist/core/enrichment/enrichment-service.js +273 -0
- package/dist/core/enrichment/enrichment-service.js.map +1 -0
- package/dist/core/enrichment/index.d.ts +8 -0
- package/dist/core/enrichment/index.d.ts.map +1 -0
- package/dist/core/enrichment/index.js +8 -0
- package/dist/core/enrichment/index.js.map +1 -0
- package/dist/core/enrichment/relationship-mapper.d.ts +106 -0
- package/dist/core/enrichment/relationship-mapper.d.ts.map +1 -0
- package/dist/core/enrichment/relationship-mapper.js +352 -0
- package/dist/core/enrichment/relationship-mapper.js.map +1 -0
- package/dist/core/enrichment/style-resolver.d.ts +80 -0
- package/dist/core/enrichment/style-resolver.d.ts.map +1 -0
- package/dist/core/enrichment/style-resolver.js +327 -0
- package/dist/core/enrichment/style-resolver.js.map +1 -0
- package/dist/core/figma-api.d.ts +137 -0
- package/dist/core/figma-api.d.ts.map +1 -0
- package/dist/core/figma-api.js +274 -0
- package/dist/core/figma-api.js.map +1 -0
- package/dist/core/figma-desktop-connector.d.ts +52 -0
- package/dist/core/figma-desktop-connector.d.ts.map +1 -0
- package/dist/core/figma-desktop-connector.js +384 -0
- package/dist/core/figma-desktop-connector.js.map +1 -0
- package/dist/core/figma-style-extractor.d.ts +76 -0
- package/dist/core/figma-style-extractor.d.ts.map +1 -0
- package/dist/core/figma-style-extractor.js +312 -0
- package/dist/core/figma-style-extractor.js.map +1 -0
- package/dist/core/figma-tools.d.ts +15 -0
- package/dist/core/figma-tools.d.ts.map +1 -0
- package/dist/core/figma-tools.js +2300 -0
- package/dist/core/figma-tools.js.map +1 -0
- package/dist/core/logger.d.ts +22 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +54 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/snippet-injector.d.ts +24 -0
- package/dist/core/snippet-injector.d.ts.map +1 -0
- package/dist/core/snippet-injector.js +97 -0
- package/dist/core/snippet-injector.js.map +1 -0
- package/dist/core/types/enriched.d.ts +213 -0
- package/dist/core/types/enriched.d.ts.map +1 -0
- package/dist/core/types/enriched.js +6 -0
- package/dist/core/types/enriched.js.map +1 -0
- package/dist/core/types/index.d.ts +112 -0
- package/dist/core/types/index.d.ts.map +1 -0
- package/dist/core/types/index.js +5 -0
- package/dist/core/types/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/local.d.ts +57 -0
- package/dist/local.d.ts.map +1 -0
- package/dist/local.js +668 -0
- package/dist/local.js.map +1 -0
- package/dist/logger.d.ts +22 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +45 -0
- package/dist/logger.js.map +1 -0
- package/dist/server.d.ts +40 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +99 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +184 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/types/index.d.ts +102 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/figma-desktop-bridge/README.md +232 -0
- package/figma-desktop-bridge/code.js +133 -0
- package/figma-desktop-bridge/manifest.json +13 -0
- package/figma-desktop-bridge/ui.html +200 -0
- package/package.json +77 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Figma Console MCP
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Console log entry captured from Figma plugin
|
|
6
|
+
*/
|
|
7
|
+
export interface ConsoleLogEntry {
|
|
8
|
+
timestamp: number;
|
|
9
|
+
level: 'log' | 'info' | 'warn' | 'error' | 'debug';
|
|
10
|
+
message: string;
|
|
11
|
+
args: any[];
|
|
12
|
+
stackTrace?: StackTrace;
|
|
13
|
+
source: 'plugin' | 'figma' | 'page' | 'unknown';
|
|
14
|
+
workerUrl?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Stack trace information
|
|
18
|
+
*/
|
|
19
|
+
export interface StackTrace {
|
|
20
|
+
callFrames: CallFrame[];
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Individual stack frame
|
|
24
|
+
*/
|
|
25
|
+
export interface CallFrame {
|
|
26
|
+
functionName: string;
|
|
27
|
+
url: string;
|
|
28
|
+
lineNumber: number;
|
|
29
|
+
columnNumber: number;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Screenshot metadata
|
|
33
|
+
*/
|
|
34
|
+
export interface Screenshot {
|
|
35
|
+
id: string;
|
|
36
|
+
timestamp: number;
|
|
37
|
+
path: string;
|
|
38
|
+
format: 'png' | 'jpeg';
|
|
39
|
+
width: number;
|
|
40
|
+
height: number;
|
|
41
|
+
selector?: string;
|
|
42
|
+
base64?: string;
|
|
43
|
+
metadata?: ScreenshotMetadata;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Additional screenshot metadata
|
|
47
|
+
*/
|
|
48
|
+
export interface ScreenshotMetadata {
|
|
49
|
+
pluginName?: string;
|
|
50
|
+
pluginId?: string;
|
|
51
|
+
figmaFileKey?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Plugin context information
|
|
55
|
+
*/
|
|
56
|
+
export interface PluginContext {
|
|
57
|
+
pluginId?: string;
|
|
58
|
+
pluginName?: string;
|
|
59
|
+
isRunning: boolean;
|
|
60
|
+
lastReloadTime?: number;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Server configuration
|
|
64
|
+
*/
|
|
65
|
+
export interface ServerConfig {
|
|
66
|
+
mode: 'local' | 'cloudflare';
|
|
67
|
+
browser: BrowserConfig;
|
|
68
|
+
console: ConsoleConfig;
|
|
69
|
+
screenshots: ScreenshotConfig;
|
|
70
|
+
local?: LocalModeConfig;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Browser configuration
|
|
74
|
+
*/
|
|
75
|
+
export interface BrowserConfig {
|
|
76
|
+
headless: boolean;
|
|
77
|
+
args: string[];
|
|
78
|
+
executablePath?: string;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Local mode configuration
|
|
82
|
+
*/
|
|
83
|
+
export interface LocalModeConfig {
|
|
84
|
+
debugHost: string;
|
|
85
|
+
debugPort: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Console monitoring configuration
|
|
89
|
+
*/
|
|
90
|
+
export interface ConsoleConfig {
|
|
91
|
+
bufferSize: number;
|
|
92
|
+
filterLevels: ConsoleLogEntry['level'][];
|
|
93
|
+
truncation: TruncationConfig;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Screenshot configuration
|
|
97
|
+
*/
|
|
98
|
+
export interface ScreenshotConfig {
|
|
99
|
+
defaultFormat: 'png' | 'jpeg';
|
|
100
|
+
quality: number;
|
|
101
|
+
storePath: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Log truncation configuration
|
|
105
|
+
*/
|
|
106
|
+
export interface TruncationConfig {
|
|
107
|
+
maxStringLength: number;
|
|
108
|
+
maxArrayLength: number;
|
|
109
|
+
maxObjectDepth: number;
|
|
110
|
+
removeDuplicates: boolean;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,OAAO,GAAG,YAAY,CAAC;IAC7B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;IACzC,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,OAAO,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;;GAIG"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* Figma Console MCP Server
|
|
5
|
+
* Entry point for the MCP server that enables AI assistants to access
|
|
6
|
+
* Figma plugin console logs and screenshots.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
10
|
+
const server_js_1 = require("./server.js");
|
|
11
|
+
const logger_js_1 = require("./logger.js");
|
|
12
|
+
/**
|
|
13
|
+
* Global server instance for cleanup
|
|
14
|
+
*/
|
|
15
|
+
let server = null;
|
|
16
|
+
/**
|
|
17
|
+
* Graceful shutdown handler
|
|
18
|
+
*/
|
|
19
|
+
async function shutdown(signal) {
|
|
20
|
+
logger_js_1.logger.info({ signal }, 'Received shutdown signal');
|
|
21
|
+
if (server) {
|
|
22
|
+
try {
|
|
23
|
+
await server.close();
|
|
24
|
+
logger_js_1.logger.info('Server shut down gracefully');
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
logger_js_1.logger.error({ error }, 'Error during shutdown');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Main function to start the server
|
|
35
|
+
*/
|
|
36
|
+
async function main() {
|
|
37
|
+
try {
|
|
38
|
+
logger_js_1.logger.info('Starting Figma Console MCP Server...');
|
|
39
|
+
logger_js_1.logger.info('Version: 0.1.0');
|
|
40
|
+
logger_js_1.logger.info('Node version: %s', process.version);
|
|
41
|
+
// Create server instance
|
|
42
|
+
server = new server_js_1.FigmaConsoleMCPServer();
|
|
43
|
+
// Set up graceful shutdown handlers
|
|
44
|
+
process.on('SIGINT', () => shutdown('SIGINT'));
|
|
45
|
+
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
|
46
|
+
// Handle uncaught errors
|
|
47
|
+
process.on('uncaughtException', (error) => {
|
|
48
|
+
logger_js_1.logger.fatal({ error }, 'Uncaught exception');
|
|
49
|
+
process.exit(1);
|
|
50
|
+
});
|
|
51
|
+
process.on('unhandledRejection', (reason) => {
|
|
52
|
+
logger_js_1.logger.fatal({ reason }, 'Unhandled promise rejection');
|
|
53
|
+
process.exit(1);
|
|
54
|
+
});
|
|
55
|
+
// Create stdio transport
|
|
56
|
+
const transport = new stdio_js_1.StdioServerTransport();
|
|
57
|
+
// Connect server to transport
|
|
58
|
+
await server.connect(transport);
|
|
59
|
+
logger_js_1.logger.info('Figma Console MCP server is running');
|
|
60
|
+
logger_js_1.logger.info('Ready to accept MCP tool calls via stdio');
|
|
61
|
+
logger_js_1.logger.info('Press Ctrl+C to stop the server');
|
|
62
|
+
// Keep process alive
|
|
63
|
+
// The server will run until killed or an error occurs
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
logger_js_1.logger.fatal({ error }, 'Fatal error starting server');
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Start the server
|
|
71
|
+
main();
|
|
72
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;;AAEH,wEAAiF;AACjF,2CAAoD;AACpD,2CAAqC;AAErC;;GAEG;AACH,IAAI,MAAM,GAAiC,IAAI,CAAC;AAEhD;;GAEG;AACH,KAAK,UAAU,QAAQ,CAAC,MAAc;IACpC,kBAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC;IAEpD,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,kBAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kBAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,kBAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACpD,kBAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC9B,kBAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEjD,yBAAyB;QACzB,MAAM,GAAG,IAAI,iCAAqB,EAAE,CAAC;QAErC,oCAAoC;QACpC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAEjD,yBAAyB;QACzB,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;YACxC,kBAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,oBAAoB,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;YAC1C,kBAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,6BAA6B,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,MAAM,SAAS,GAAG,IAAI,+BAAoB,EAAE,CAAC;QAE7C,8BAA8B;QAC9B,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAEhC,kBAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACnD,kBAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACxD,kBAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;QAE/C,qBAAqB;QACrB,sDAAsD;IACxD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,6BAA6B,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,mBAAmB;AACnB,IAAI,EAAE,CAAC"}
|
package/dist/local.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Figma Console MCP Server - Local Mode
|
|
4
|
+
*
|
|
5
|
+
* Entry point for local MCP server that connects to Figma Desktop
|
|
6
|
+
* via Chrome Remote Debugging Protocol (port 9222).
|
|
7
|
+
*
|
|
8
|
+
* This implementation uses stdio transport for MCP communication,
|
|
9
|
+
* suitable for local IDE integrations and development workflows.
|
|
10
|
+
*
|
|
11
|
+
* Requirements:
|
|
12
|
+
* - Figma Desktop must be launched with: --remote-debugging-port=9222
|
|
13
|
+
* - "Use Developer VM" enabled in Figma: Plugins → Development → Use Developer VM
|
|
14
|
+
* - FIGMA_ACCESS_TOKEN environment variable for API access
|
|
15
|
+
*
|
|
16
|
+
* macOS launch command:
|
|
17
|
+
* open -a "Figma" --args --remote-debugging-port=9222
|
|
18
|
+
*/
|
|
19
|
+
/**
|
|
20
|
+
* Local MCP Server
|
|
21
|
+
* Connects to Figma Desktop and provides identical tools to Cloudflare mode
|
|
22
|
+
*/
|
|
23
|
+
declare class LocalFigmaConsoleMCP {
|
|
24
|
+
private server;
|
|
25
|
+
private browserManager;
|
|
26
|
+
private consoleMonitor;
|
|
27
|
+
private figmaAPI;
|
|
28
|
+
private config;
|
|
29
|
+
private variablesCache;
|
|
30
|
+
constructor();
|
|
31
|
+
/**
|
|
32
|
+
* Get or create Figma API client
|
|
33
|
+
*/
|
|
34
|
+
private getFigmaAPI;
|
|
35
|
+
/**
|
|
36
|
+
* Check if Figma Desktop is accessible
|
|
37
|
+
*/
|
|
38
|
+
private checkFigmaDesktop;
|
|
39
|
+
/**
|
|
40
|
+
* Initialize browser and console monitoring
|
|
41
|
+
*/
|
|
42
|
+
private ensureInitialized;
|
|
43
|
+
/**
|
|
44
|
+
* Register all MCP tools
|
|
45
|
+
*/
|
|
46
|
+
private registerTools;
|
|
47
|
+
/**
|
|
48
|
+
* Start the MCP server
|
|
49
|
+
*/
|
|
50
|
+
start(): Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Cleanup and shutdown
|
|
53
|
+
*/
|
|
54
|
+
shutdown(): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
export { LocalFigmaConsoleMCP };
|
|
57
|
+
//# sourceMappingURL=local.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local.d.ts","sourceRoot":"","sources":["../src/local.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;GAgBG;AAcH;;;GAGG;AACH,cAAM,oBAAoB;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,cAAc,CAAoC;IAC1D,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,MAAM,CAAe;IAI7B,OAAO,CAAC,cAAc,CAGP;;IASf;;OAEG;YACW,WAAW;IAuBzB;;OAEG;YACW,iBAAiB;IAsC/B;;OAEG;YACW,iBAAiB;IA+B/B;;OAEG;IACH,OAAO,CAAC,aAAa;IA8lBrB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B5B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB/B;AA+BD,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|