brainferno-mcp-bridge 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/CHANGELOG.md +19 -0
- package/LICENSE +202 -0
- package/NOTICE +27 -0
- package/README.md +410 -0
- package/THIRD_PARTY_NOTICES.md +52 -0
- package/dist/bridge/handshake.d.ts +34 -0
- package/dist/bridge/handshake.js +36 -0
- package/dist/bridge/handshake.js.map +1 -0
- package/dist/bridge/script-escape.d.ts +16 -0
- package/dist/bridge/script-escape.js +47 -0
- package/dist/bridge/script-escape.js.map +1 -0
- package/dist/bridge/socket.d.ts +79 -0
- package/dist/bridge/socket.js +424 -0
- package/dist/bridge/socket.js.map +1 -0
- package/dist/bridge/types.d.ts +49 -0
- package/dist/bridge/types.js +38 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/config.d.ts +87 -0
- package/dist/config.js +172 -0
- package/dist/config.js.map +1 -0
- package/dist/drivers/ame-webservice.d.ts +118 -0
- package/dist/drivers/ame-webservice.js +356 -0
- package/dist/drivers/ame-webservice.js.map +1 -0
- package/dist/drivers/illustrator-delegate.d.ts +71 -0
- package/dist/drivers/illustrator-delegate.js +120 -0
- package/dist/drivers/illustrator-delegate.js.map +1 -0
- package/dist/drivers/osscript.d.ts +60 -0
- package/dist/drivers/osscript.js +230 -0
- package/dist/drivers/osscript.js.map +1 -0
- package/dist/http.d.ts +26 -0
- package/dist/http.js +126 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/install/cli.d.ts +2 -0
- package/dist/install/cli.js +310 -0
- package/dist/install/cli.js.map +1 -0
- package/dist/install/lib.d.ts +76 -0
- package/dist/install/lib.js +194 -0
- package/dist/install/lib.js.map +1 -0
- package/dist/jobs.d.ts +117 -0
- package/dist/jobs.js +196 -0
- package/dist/jobs.js.map +1 -0
- package/dist/logging.d.ts +8 -0
- package/dist/logging.js +33 -0
- package/dist/logging.js.map +1 -0
- package/dist/server.d.ts +38 -0
- package/dist/server.js +90 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/after-effects.d.ts +100 -0
- package/dist/tools/after-effects.js +695 -0
- package/dist/tools/after-effects.js.map +1 -0
- package/dist/tools/audio.d.ts +118 -0
- package/dist/tools/audio.js +356 -0
- package/dist/tools/audio.js.map +1 -0
- package/dist/tools/audition.d.ts +15 -0
- package/dist/tools/audition.js +329 -0
- package/dist/tools/audition.js.map +1 -0
- package/dist/tools/diagnostics.d.ts +17 -0
- package/dist/tools/diagnostics.js +61 -0
- package/dist/tools/diagnostics.js.map +1 -0
- package/dist/tools/illustrator-delegate.d.ts +9 -0
- package/dist/tools/illustrator-delegate.js +61 -0
- package/dist/tools/illustrator-delegate.js.map +1 -0
- package/dist/tools/illustrator.d.ts +36 -0
- package/dist/tools/illustrator.js +299 -0
- package/dist/tools/illustrator.js.map +1 -0
- package/dist/tools/jobs.d.ts +39 -0
- package/dist/tools/jobs.js +83 -0
- package/dist/tools/jobs.js.map +1 -0
- package/dist/tools/media-encoder.d.ts +17 -0
- package/dist/tools/media-encoder.js +180 -0
- package/dist/tools/media-encoder.js.map +1 -0
- package/dist/tools/photoshop.d.ts +17 -0
- package/dist/tools/photoshop.js +202 -0
- package/dist/tools/photoshop.js.map +1 -0
- package/dist/tools/pipelines.d.ts +23 -0
- package/dist/tools/pipelines.js +254 -0
- package/dist/tools/pipelines.js.map +1 -0
- package/dist/tools/premiere.d.ts +26 -0
- package/dist/tools/premiere.js +396 -0
- package/dist/tools/premiere.js.map +1 -0
- package/dist/tools/result.d.ts +17 -0
- package/dist/tools/result.js +51 -0
- package/dist/tools/result.js.map +1 -0
- package/package.json +64 -0
- package/panels/panel-cep/CSXS/manifest.xml +53 -0
- package/panels/panel-cep/bridge-client.js +204 -0
- package/panels/panel-cep/host.jsx +62 -0
- package/panels/panel-cep/icons/logo.svg +61 -0
- package/panels/panel-cep/index.html +48 -0
- package/panels/panel-cep/main.js +173 -0
- package/panels/panel-uxp/README.md +36 -0
- package/panels/panel-uxp/bridge-client.js +204 -0
- package/panels/panel-uxp/commands.js +375 -0
- package/panels/panel-uxp/icons/icon.png +0 -0
- package/panels/panel-uxp/icons/icon@2x.png +0 -0
- package/panels/panel-uxp/icons/logo.svg +61 -0
- package/panels/panel-uxp/index.html +47 -0
- package/panels/panel-uxp/main.js +109 -0
- package/panels/panel-uxp/manifest.json +89 -0
- package/panels/panel-uxp-ppro/README.md +11 -0
- package/panels/panel-uxp-ppro/bridge-client.js +204 -0
- package/panels/panel-uxp-ppro/commands.js +797 -0
- package/panels/panel-uxp-ppro/icons/icon.png +0 -0
- package/panels/panel-uxp-ppro/icons/icon@2x.png +0 -0
- package/panels/panel-uxp-ppro/icons/logo.svg +61 -0
- package/panels/panel-uxp-ppro/index.html +64 -0
- package/panels/panel-uxp-ppro/main.js +113 -0
- package/panels/panel-uxp-ppro/manifest.json +65 -0
package/dist/server.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { homedir } from "node:os";
|
|
2
|
+
import { dirname, join } from "node:path";
|
|
3
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
4
|
+
import { BridgeServer } from "./bridge/socket.js";
|
|
5
|
+
import { AmeWebService } from "./drivers/ame-webservice.js";
|
|
6
|
+
import { IllustratorDelegate } from "./drivers/illustrator-delegate.js";
|
|
7
|
+
import { OsScriptBridge } from "./drivers/osscript.js";
|
|
8
|
+
import { JobRegistry } from "./jobs.js";
|
|
9
|
+
import { setLogLevel } from "./logging.js";
|
|
10
|
+
import { registerAfterEffectsTools } from "./tools/after-effects.js";
|
|
11
|
+
import { registerAudioTools } from "./tools/audio.js";
|
|
12
|
+
import { registerAuditionTools } from "./tools/audition.js";
|
|
13
|
+
import { registerDiagnosticTools } from "./tools/diagnostics.js";
|
|
14
|
+
import { registerIllustratorTools } from "./tools/illustrator.js";
|
|
15
|
+
import { registerIllustratorDelegateTools } from "./tools/illustrator-delegate.js";
|
|
16
|
+
import { registerJobTools } from "./tools/jobs.js";
|
|
17
|
+
import { registerMediaEncoderTools } from "./tools/media-encoder.js";
|
|
18
|
+
import { registerPhotoshopTools } from "./tools/photoshop.js";
|
|
19
|
+
import { registerPipelineTools } from "./tools/pipelines.js";
|
|
20
|
+
import { registerPremiereTools } from "./tools/premiere.js";
|
|
21
|
+
export function buildRuntime(config) {
|
|
22
|
+
setLogLevel(config.logLevel);
|
|
23
|
+
const bridge = new BridgeServer({
|
|
24
|
+
port: config.bridgePort,
|
|
25
|
+
token: config.bridgeToken,
|
|
26
|
+
insecure: config.bridgeInsecure,
|
|
27
|
+
defaultTimeoutMs: config.evalTimeoutMs,
|
|
28
|
+
heartbeatIntervalMs: config.heartbeatIntervalMs,
|
|
29
|
+
handshakeFilePath: config.handshakeFilePath,
|
|
30
|
+
allowedOrigins: config.allowedOrigins,
|
|
31
|
+
});
|
|
32
|
+
const illustratorBridge = new OsScriptBridge({ appId: "illustrator", defaultTimeoutMs: config.evalTimeoutMs });
|
|
33
|
+
const illustratorDelegate = new IllustratorDelegate({ url: config.illustratorMcpUrl, token: config.illustratorMcpKey });
|
|
34
|
+
// Job work folders sit beside the handshake file (~/.brainferno-mcp-bridge/work/<jobId>/).
|
|
35
|
+
const jobs = new JobRegistry({ workRoot: join(dirname(config.handshakeFilePath) || join(homedir(), ".brainferno-mcp-bridge"), "work") });
|
|
36
|
+
const mediaEncoder = new AmeWebService({ exePath: config.ameWebServicePath, port: config.amePort, extraArgs: [], idleMs: config.ameIdleMs });
|
|
37
|
+
const audio = { ffmpegPath: config.ffmpegPath, ffprobePath: config.ffprobePath };
|
|
38
|
+
return { config, bridge, illustratorBridge, illustratorDelegate, jobs, mediaEncoder, audio };
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* A new McpServer with every tool registered against the shared runtime.
|
|
42
|
+
* Tools are registered unconditionally: an application that has no panel
|
|
43
|
+
* connected still advertises its tools, and those tools return an actionable
|
|
44
|
+
* "not connected" error rather than vanishing from the tool list mid-session.
|
|
45
|
+
*/
|
|
46
|
+
export function createMcpServer(rt) {
|
|
47
|
+
const { config, bridge, jobs } = rt;
|
|
48
|
+
const server = new McpServer({ name: "brainferno-mcp-bridge", version: "0.1.0" }, {
|
|
49
|
+
capabilities: { tools: {} },
|
|
50
|
+
instructions: "Drives Adobe Creative Cloud production applications. Each tool acts on the application that is already " +
|
|
51
|
+
"open on the operator's machine, on the project they currently have loaded — there is no separate workspace. " +
|
|
52
|
+
"Call cc_connected_apps first to see which applications are reachable.",
|
|
53
|
+
});
|
|
54
|
+
// The installer's app choice: only chosen apps get tools (and pipelines that need them).
|
|
55
|
+
const on = new Set(config.enabledApps);
|
|
56
|
+
const appIds = ["after_effects", "premiere", "photoshop", "illustrator", "audition"].filter((id) => on.has(id));
|
|
57
|
+
registerDiagnosticTools(server, bridge, { allowRawScripts: config.allowRawScripts, enabledApps: appIds });
|
|
58
|
+
if (on.has("after_effects"))
|
|
59
|
+
registerAfterEffectsTools(server, bridge.bridgeFor("after_effects"), { jobs });
|
|
60
|
+
if (on.has("premiere"))
|
|
61
|
+
registerPremiereTools(server, bridge.bridgeFor("premiere"), { jobs });
|
|
62
|
+
if (on.has("photoshop"))
|
|
63
|
+
registerPhotoshopTools(server, bridge.bridgeFor("photoshop"), { allowRawScripts: config.allowRawScripts });
|
|
64
|
+
if (on.has("illustrator")) {
|
|
65
|
+
registerIllustratorTools(server, rt.illustratorBridge);
|
|
66
|
+
registerIllustratorDelegateTools(server, rt.illustratorDelegate, config.illustratorMcpKey !== "");
|
|
67
|
+
}
|
|
68
|
+
if (on.has("audition"))
|
|
69
|
+
registerAuditionTools(server, bridge.bridgeFor("audition"));
|
|
70
|
+
registerAudioTools(server, rt.audio);
|
|
71
|
+
registerJobTools(server, jobs);
|
|
72
|
+
if (on.has("media_encoder"))
|
|
73
|
+
registerMediaEncoderTools(server, rt.mediaEncoder, { jobs });
|
|
74
|
+
registerPipelineTools(server, {
|
|
75
|
+
photoshop: bridge.bridgeFor("photoshop"),
|
|
76
|
+
afterEffects: bridge.bridgeFor("after_effects"),
|
|
77
|
+
premiere: bridge.bridgeFor("premiere"),
|
|
78
|
+
illustrator: rt.illustratorBridge,
|
|
79
|
+
jobs,
|
|
80
|
+
audio: rt.audio,
|
|
81
|
+
enabled: on,
|
|
82
|
+
});
|
|
83
|
+
return server;
|
|
84
|
+
}
|
|
85
|
+
/** Runtime plus one McpServer (the stdio session). */
|
|
86
|
+
export function buildServer(config) {
|
|
87
|
+
const rt = buildRuntime(config);
|
|
88
|
+
return { ...rt, server: createMcpServer(rt) };
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import type { AppBridge } from "../bridge/types.js";
|
|
3
|
+
import type { JobRegistry } from "../jobs.js";
|
|
4
|
+
export declare const LIST_COMPOSITIONS: string;
|
|
5
|
+
export declare const PROJECT_INFO: string;
|
|
6
|
+
export declare const LIST_FOOTAGE: string;
|
|
7
|
+
export declare function getCompScript(compId: number): string;
|
|
8
|
+
export declare function getLayerScript(compId: number, layerIndex: number): string;
|
|
9
|
+
export declare function openProjectScript(path: string): string;
|
|
10
|
+
export declare function saveProjectScript(path: string | undefined): string;
|
|
11
|
+
export declare function importFootageScript(path: string): string;
|
|
12
|
+
export interface CreateCompParams {
|
|
13
|
+
name: string;
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
frameRate: number;
|
|
17
|
+
duration: number;
|
|
18
|
+
pixelAspect: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function createCompScript(p: CreateCompParams): string;
|
|
21
|
+
export interface AddLayerParams {
|
|
22
|
+
compId: number;
|
|
23
|
+
kind: "footage" | "solid" | "text" | "null" | "adjustment";
|
|
24
|
+
itemId?: number;
|
|
25
|
+
color?: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
text?: string;
|
|
28
|
+
width?: number;
|
|
29
|
+
height?: number;
|
|
30
|
+
}
|
|
31
|
+
export declare function addLayerScript(p: AddLayerParams): string;
|
|
32
|
+
export interface LayerProps {
|
|
33
|
+
name?: string;
|
|
34
|
+
enabled?: boolean;
|
|
35
|
+
inPoint?: number;
|
|
36
|
+
outPoint?: number;
|
|
37
|
+
startTime?: number;
|
|
38
|
+
position?: number[];
|
|
39
|
+
scale?: number[];
|
|
40
|
+
rotation?: number;
|
|
41
|
+
opacity?: number;
|
|
42
|
+
anchorPoint?: number[];
|
|
43
|
+
parentIndex?: number | null;
|
|
44
|
+
}
|
|
45
|
+
export declare function setLayerPropsScript(compId: number, layerIndex: number, p: LayerProps): string;
|
|
46
|
+
export declare function duplicateLayerScript(compId: number, layerIndex: number, name: string | undefined): string;
|
|
47
|
+
export declare function deleteLayerScript(compId: number, layerIndex: number): string;
|
|
48
|
+
export interface KeyframeParams {
|
|
49
|
+
compId: number;
|
|
50
|
+
layerIndex: number;
|
|
51
|
+
property: string;
|
|
52
|
+
propertyPath?: string[];
|
|
53
|
+
keys: {
|
|
54
|
+
time: number;
|
|
55
|
+
value: number | number[];
|
|
56
|
+
easy?: boolean;
|
|
57
|
+
}[];
|
|
58
|
+
}
|
|
59
|
+
export declare function setKeyframesScript(p: KeyframeParams): string;
|
|
60
|
+
export declare function getKeyframesScript(compId: number, layerIndex: number, property: string, propertyPath: string[] | undefined): string;
|
|
61
|
+
export declare function removeKeyframesScript(compId: number, layerIndex: number, property: string, propertyPath: string[] | undefined): string;
|
|
62
|
+
export declare function setExpressionScript(compId: number, layerIndex: number, property: string, propertyPath: string[] | undefined, expression: string | null): string;
|
|
63
|
+
export declare function applyEffectScript(compId: number, layerIndex: number, matchName: string): string;
|
|
64
|
+
export declare function setEffectParamScript(compId: number, layerIndex: number, effect: number | string, param: string, value: number | number[] | string): string;
|
|
65
|
+
export interface SetTextParams {
|
|
66
|
+
compId: number;
|
|
67
|
+
layerIndex: number;
|
|
68
|
+
text?: string;
|
|
69
|
+
fontSize?: number;
|
|
70
|
+
font?: string;
|
|
71
|
+
color?: string;
|
|
72
|
+
justification?: "left" | "center" | "right";
|
|
73
|
+
}
|
|
74
|
+
export declare function setTextScript(p: SetTextParams): string;
|
|
75
|
+
export declare function addMarkerScript(compId: number, time: number, comment: string, layerIndex: number | undefined, duration: number | undefined): string;
|
|
76
|
+
export declare function renderFrameScript(compId: number, time: number, path: string, maxDimension: number): string;
|
|
77
|
+
export declare const AERENDER_INFO: string;
|
|
78
|
+
export interface RenderCompOptions {
|
|
79
|
+
compName: string;
|
|
80
|
+
outputPath: string;
|
|
81
|
+
outputModule?: string;
|
|
82
|
+
renderSettings?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Save the project, then render one comp with aerender. Shared by the
|
|
86
|
+
* ae_render_comp tool and the pipelines; throws with an actionable message.
|
|
87
|
+
*/
|
|
88
|
+
export declare function renderCompHeadless(bridge: AppBridge, o: RenderCompOptions, ctx?: {
|
|
89
|
+
signal?: AbortSignal;
|
|
90
|
+
log?: (line: string) => void;
|
|
91
|
+
}): Promise<{
|
|
92
|
+
outputPath: string;
|
|
93
|
+
compName: string;
|
|
94
|
+
log: string;
|
|
95
|
+
}>;
|
|
96
|
+
export interface AfterEffectsToolOptions {
|
|
97
|
+
/** When given, ae_render_comp runs as a job (progress, cancel, wait:false). */
|
|
98
|
+
jobs?: JobRegistry;
|
|
99
|
+
}
|
|
100
|
+
export declare function registerAfterEffectsTools(server: McpServer, bridge: AppBridge, options?: AfterEffectsToolOptions): void;
|