46 Commits

Author SHA1 Message Date
Dominik Jain
c3ae05c8fc Track handler responses being sent 2025-10-08 00:10:25 +02:00
Dominik Jain
bc28e116c8 Add HighLevelOverviewTool 2025-10-08 00:10:25 +02:00
Dominik Jain
b94f29fcf1 Switch from low-level Server to McpServer 2025-10-08 00:10:25 +02:00
Dominik Jain
e0efe2b110 Add initial instructions (loaded from yml file) 2025-10-08 00:10:25 +02:00
Dominik Jain
6bd4567db3 Remove tsbuildinfo from version control 2025-10-08 00:10:12 +02:00
Dominik Jain
5ffaabd728 Add code execution tool 2025-10-08 00:09:42 +02:00
Dominik Jain
9fb3ccc2e2 Update usage instructions to include build of common stuff 2025-09-17 20:07:44 +02:00
Dominik Jain
82bd77c9bc Replace console logging with a proper logging system (Pino) 2025-09-17 20:07:26 +02:00
Dominik Jain
ee1ee5317e Fix type parameter issue 2025-09-17 19:52:28 +02:00
Dominik Jain
93e98f5e08 Refactor task handling (adding Task abstraction) 2025-09-17 19:43:21 +02:00
Dominik Jain
8275735999 Refactor task handling (introducing abstraction TaskHandler) 2025-09-16 17:38:34 +02:00
Dominik Jain
23d2270df0 Improve error handling in PluginTask execution 2025-09-12 18:36:13 +02:00
Dominik Jain
736c25ecc2 Refactoring: Separate the plugin bridge (WebSocket server abstraction) from the MCP server 2025-09-12 17:01:32 +02:00
Dominik Jain
48955b67a9 Apply formatter 2025-09-12 16:58:17 +02:00
Dominik Jain
139f77edb2 Split history src/PenpotMcpServer.ts to src/PluginBridge.ts - restore name of source-file 2025-09-12 16:50:11 +02:00
Dominik Jain
cfbc258274 Split history src/PenpotMcpServer.ts to src/PluginBridge.ts - resolve conflict and keep both files 2025-09-12 16:50:11 +02:00
Dominik Jain
e0b1d9078f Split history src/PenpotMcpServer.ts to src/PluginBridge.ts - rename source-file to git-split-temp 2025-09-12 16:50:11 +02:00
Dominik Jain
8961f90cc9 Split history src/PenpotMcpServer.ts to src/PluginBridge.ts - rename file to target-name 2025-09-12 16:50:10 +02:00
Dominik Jain
b7d1171654 Establish return channel when executing plugin tasks
and package 'common' for representations used in both subprojects
2025-09-12 16:42:13 +02:00
Dominik Jain
283f01b0ac Refactoring: Move every concrete plugin task to a separate source file 2025-09-12 13:41:31 +02:00
Dominik Jain
0468381d2b Improve build to not require .js extensions in imports 2025-09-12 13:37:20 +02:00
Dominik Jain
2985bb75c5 Refactoring: Remove interfaces folder (inaccurate naming) 2025-09-12 13:22:02 +02:00
Dominik Jain
f93d2af5c9 Refactoring: Move PenpotMcpServer to its own file 2025-09-12 13:12:27 +02:00
Dominik Jain
c37cccea3e Split history src/index.ts to src/PenpotMcpServer.ts - restore name of source-file 2025-09-12 13:08:15 +02:00
Dominik Jain
f8006b6ea2 Split history src/index.ts to src/PenpotMcpServer.ts - resolve conflict and keep both files 2025-09-12 13:08:15 +02:00
Dominik Jain
a067519778 Split history src/index.ts to src/PenpotMcpServer.ts - rename source-file to git-split-temp 2025-09-12 13:08:15 +02:00
Dominik Jain
358e1401f6 Split history src/index.ts to src/PenpotMcpServer.ts - rename file to target-name 2025-09-12 13:08:14 +02:00
Dominik Jain
6636544f88 Refactoring
* Handle plugin task execution centrally in MCP server
 * Centrally handle exceptions in Tool base class, returning an error message
2025-09-12 13:02:07 +02:00
Dominik Jain
472dcd7890 Refactoring: Rename Tool -> ToolInterface, TypeSafeTool -> Tool 2025-09-12 13:00:59 +02:00
Dominik Jain
e714caaef2 Improve handling of tool responses, adding explicit classes 2025-09-11 13:55:33 +02:00
Dominik Jain
f5bdb1accb Update README 2025-09-11 12:09:05 +02:00
Dominik Jain
966a39eb5c Update README 2025-09-11 12:02:09 +02:00
Dominik Jain
f8b6c05df4 Apply formatter 2025-09-11 11:38:39 +02:00
Dominik Jain
4b755e4381 Apply formatter 2025-09-11 11:37:25 +02:00
Dominik Jain
f99fedb4f1 Update formatter config 2025-09-11 11:35:48 +02:00
Dominik Jain
4a9700d445 Implement initial WebSocket interaction between MCP server and Penpot plugin
(Example: Writing and selecting a text object to the Penpot project)
2025-09-10 23:02:57 +02:00
Dominik Jain
16167e2758 Use Streamable HTTP and SSE transports in MCP server instead of stdio
(This is necessary to ensure a single instance, which is required for a
well-defined websocket port)
2025-09-10 21:13:10 +02:00
Dominik Jain
7faca70aa7 Establish websocket connection between plugin and MCP server 2025-09-10 16:33:53 +02:00
Dominik Jain
740750fbd8 Update plugin metadata 2025-09-10 16:00:30 +02:00
Dominik Jain
c0047faec0 Ignore temp 2025-09-10 15:37:48 +02:00
Dominik Jain
44929fd684 Add plugin code from template 2025-09-10 15:34:22 +02:00
Dominik Jain
a99851e7dd Fully typed tool interfaces 2025-09-10 15:21:14 +02:00
Dominik Jain
71b67349d2 Add README 2025-09-10 14:59:46 +02:00
Dominik Jain
d1045b28b3 Apply formatter with identation 4 2025-09-10 14:47:07 +02:00
Dominik Jain
c41d92785a Add initial server implementation 2025-09-10 12:24:46 +02:00
Dominik Jain
291908fede Initial setup 2025-09-10 10:23:46 +02:00