@pinepaper.studio/mcp-server 1.4.2 → 1.4.3
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/README.md +99 -18
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +37 -0
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/base.d.ts.map +1 -1
- package/dist/i18n/locales/base.js +49 -0
- package/dist/i18n/locales/base.js.map +1 -1
- package/dist/i18n/locales/bn.d.ts.map +1 -1
- package/dist/i18n/locales/bn.js +10 -0
- package/dist/i18n/locales/bn.js.map +1 -1
- package/dist/i18n/locales/cs.d.ts.map +1 -1
- package/dist/i18n/locales/cs.js +10 -0
- package/dist/i18n/locales/cs.js.map +1 -1
- package/dist/i18n/locales/da.d.ts.map +1 -1
- package/dist/i18n/locales/da.js +10 -0
- package/dist/i18n/locales/da.js.map +1 -1
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +107 -0
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +10 -0
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +162 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +106 -0
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fa.d.ts.map +1 -1
- package/dist/i18n/locales/fa.js +10 -0
- package/dist/i18n/locales/fa.js.map +1 -1
- package/dist/i18n/locales/fi.d.ts.map +1 -1
- package/dist/i18n/locales/fi.js +10 -0
- package/dist/i18n/locales/fi.js.map +1 -1
- package/dist/i18n/locales/fil.d.ts.map +1 -1
- package/dist/i18n/locales/fil.js +10 -0
- package/dist/i18n/locales/fil.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +37 -0
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/gu.d.ts.map +1 -1
- package/dist/i18n/locales/gu.js +10 -0
- package/dist/i18n/locales/gu.js.map +1 -1
- package/dist/i18n/locales/he.d.ts.map +1 -1
- package/dist/i18n/locales/he.js +10 -0
- package/dist/i18n/locales/he.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +37 -0
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts.map +1 -1
- package/dist/i18n/locales/hu.js +10 -0
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/id.d.ts.map +1 -1
- package/dist/i18n/locales/id.js +108 -0
- package/dist/i18n/locales/id.js.map +1 -1
- package/dist/i18n/locales/is.d.ts.map +1 -1
- package/dist/i18n/locales/is.js +10 -0
- package/dist/i18n/locales/is.js.map +1 -1
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +108 -0
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +108 -0
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/kn.d.ts.map +1 -1
- package/dist/i18n/locales/kn.js +10 -0
- package/dist/i18n/locales/kn.js.map +1 -1
- package/dist/i18n/locales/ko.d.ts.map +1 -1
- package/dist/i18n/locales/ko.js +37 -0
- package/dist/i18n/locales/ko.js.map +1 -1
- package/dist/i18n/locales/ml.d.ts.map +1 -1
- package/dist/i18n/locales/ml.js +10 -0
- package/dist/i18n/locales/ml.js.map +1 -1
- package/dist/i18n/locales/mr.d.ts.map +1 -1
- package/dist/i18n/locales/mr.js +10 -0
- package/dist/i18n/locales/mr.js.map +1 -1
- package/dist/i18n/locales/ms.d.ts.map +1 -1
- package/dist/i18n/locales/ms.js +10 -0
- package/dist/i18n/locales/ms.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +108 -0
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/no.d.ts.map +1 -1
- package/dist/i18n/locales/no.js +10 -0
- package/dist/i18n/locales/no.js.map +1 -1
- package/dist/i18n/locales/pa.d.ts.map +1 -1
- package/dist/i18n/locales/pa.js +10 -0
- package/dist/i18n/locales/pa.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +108 -0
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt-BR.d.ts.map +1 -1
- package/dist/i18n/locales/pt-BR.js +108 -0
- package/dist/i18n/locales/pt-BR.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +10 -0
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +10 -0
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +108 -0
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +10 -0
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/ta.d.ts.map +1 -1
- package/dist/i18n/locales/ta.js +10 -0
- package/dist/i18n/locales/ta.js.map +1 -1
- package/dist/i18n/locales/te.d.ts.map +1 -1
- package/dist/i18n/locales/te.js +10 -0
- package/dist/i18n/locales/te.js.map +1 -1
- package/dist/i18n/locales/th.d.ts.map +1 -1
- package/dist/i18n/locales/th.js +108 -0
- package/dist/i18n/locales/th.js.map +1 -1
- package/dist/i18n/locales/tl.d.ts.map +1 -1
- package/dist/i18n/locales/tl.js +10 -0
- package/dist/i18n/locales/tl.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +108 -0
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/uk.d.ts.map +1 -1
- package/dist/i18n/locales/uk.js +108 -0
- package/dist/i18n/locales/uk.js.map +1 -1
- package/dist/i18n/locales/ur.d.ts.map +1 -1
- package/dist/i18n/locales/ur.js +10 -0
- package/dist/i18n/locales/ur.js.map +1 -1
- package/dist/i18n/locales/vi.d.ts.map +1 -1
- package/dist/i18n/locales/vi.js +108 -0
- package/dist/i18n/locales/vi.js.map +1 -1
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
- package/dist/i18n/locales/zh-CN.js +108 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -1
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -1
- package/dist/i18n/locales/zh-TW.js +108 -0
- package/dist/i18n/locales/zh-TW.js.map +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +680 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +71 -1
- package/dist/tools/handlers.js.map +1 -1
- package/dist/types/code-generator.d.ts +37 -1
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +241 -1
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +497 -24
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +249 -0
- package/dist/types/schemas.js.map +1 -1
- package/manifest.json +38 -2
- package/package.json +2 -2
|
@@ -2011,7 +2011,7 @@ RETURNS:
|
|
|
2011
2011
|
},
|
|
2012
2012
|
description: `Execute p5.js-style drawing code on the PinePaper canvas.
|
|
2013
2013
|
|
|
2014
|
-
|
|
2014
|
+
AI assistants can use familiar p5.js syntax - the code is translated to Paper.js automatically.
|
|
2015
2015
|
This is a SUBSET of p5.js functions optimized for static drawings.
|
|
2016
2016
|
|
|
2017
2017
|
AVAILABLE FUNCTIONS:
|
|
@@ -2120,6 +2120,685 @@ for (let i = 10; i > 0; i--) {
|
|
|
2120
2120
|
required: ['code'],
|
|
2121
2121
|
},
|
|
2122
2122
|
},
|
|
2123
|
+
// ---------------------------------------------------------------------------
|
|
2124
|
+
// DIAGRAM TOOLS
|
|
2125
|
+
// ---------------------------------------------------------------------------
|
|
2126
|
+
{
|
|
2127
|
+
name: 'pinepaper_create_diagram_shape',
|
|
2128
|
+
annotations: {
|
|
2129
|
+
title: 'Create Diagram Shape',
|
|
2130
|
+
readOnlyHint: false,
|
|
2131
|
+
destructiveHint: false,
|
|
2132
|
+
idempotentHint: false,
|
|
2133
|
+
openWorldHint: false,
|
|
2134
|
+
},
|
|
2135
|
+
description: `Create a diagram shape on the canvas. Diagram shapes are specialized shapes for flowcharts, UML diagrams, network diagrams, and similar technical drawings.
|
|
2136
|
+
|
|
2137
|
+
USE WHEN:
|
|
2138
|
+
- Creating flowcharts, process diagrams, or workflows
|
|
2139
|
+
- Building UML class diagrams, use case diagrams, or sequence diagrams
|
|
2140
|
+
- Designing network topology diagrams
|
|
2141
|
+
- Making organizational charts or decision trees
|
|
2142
|
+
- Any technical or architectural diagram
|
|
2143
|
+
|
|
2144
|
+
SHAPE TYPES:
|
|
2145
|
+
|
|
2146
|
+
Flowchart shapes:
|
|
2147
|
+
- process: Rectangle for process steps (default: 120x60)
|
|
2148
|
+
- decision: Diamond for yes/no decisions (default: 100x100)
|
|
2149
|
+
- terminal: Rounded rectangle for start/end (default: 120x40)
|
|
2150
|
+
- data: Parallelogram for data I/O (default: 120x60)
|
|
2151
|
+
- document: Wavy-bottom rectangle for documents (default: 100x80)
|
|
2152
|
+
- database: Cylinder for database/storage (default: 80x100)
|
|
2153
|
+
- preparation: Hexagon for preparation steps (default: 120x60)
|
|
2154
|
+
|
|
2155
|
+
UML shapes:
|
|
2156
|
+
- uml-class: Class box with name/attributes/methods sections (default: 150x120)
|
|
2157
|
+
- uml-usecase: Ellipse for use case (default: 140x80)
|
|
2158
|
+
- uml-actor: Stick figure for actor (default: 60x100)
|
|
2159
|
+
|
|
2160
|
+
Network shapes:
|
|
2161
|
+
- cloud: Cloud shape for cloud services (default: 140x90)
|
|
2162
|
+
- server: Server rack shape (default: 80x100)
|
|
2163
|
+
|
|
2164
|
+
Basic shapes (same as pinepaper_create_item but diagram-optimized):
|
|
2165
|
+
- rectangle, circle, triangle, star
|
|
2166
|
+
|
|
2167
|
+
All shapes:
|
|
2168
|
+
- Have connection ports for connectors
|
|
2169
|
+
- Support labels inside the shape
|
|
2170
|
+
- Can be connected using pinepaper_connect or pinepaper_connect_ports
|
|
2171
|
+
|
|
2172
|
+
EXAMPLES:
|
|
2173
|
+
- Flowchart start: {shapeType: "terminal", label: "Start", position: {x: 400, y: 100}}
|
|
2174
|
+
- Decision node: {shapeType: "decision", label: "Is valid?", position: {x: 400, y: 200}}
|
|
2175
|
+
- Database: {shapeType: "database", label: "Users DB", position: {x: 600, y: 200}}
|
|
2176
|
+
- UML Class: {shapeType: "uml-class", label: "User", width: 180, height: 150}
|
|
2177
|
+
|
|
2178
|
+
WORKFLOW TIP:
|
|
2179
|
+
After creating shapes, use pinepaper_connect to draw connectors between them.
|
|
2180
|
+
Use pinepaper_auto_layout to automatically arrange shapes in a clean layout.`,
|
|
2181
|
+
inputSchema: {
|
|
2182
|
+
type: 'object',
|
|
2183
|
+
properties: {
|
|
2184
|
+
shapeType: {
|
|
2185
|
+
type: 'string',
|
|
2186
|
+
enum: ['process', 'decision', 'terminal', 'data', 'document', 'database', 'preparation', 'uml-class', 'uml-usecase', 'uml-actor', 'cloud', 'server', 'rectangle', 'circle', 'triangle', 'star'],
|
|
2187
|
+
description: 'Type of diagram shape to create',
|
|
2188
|
+
},
|
|
2189
|
+
position: {
|
|
2190
|
+
type: 'object',
|
|
2191
|
+
properties: {
|
|
2192
|
+
x: { type: 'number', description: 'X coordinate (default: 400)' },
|
|
2193
|
+
y: { type: 'number', description: 'Y coordinate (default: 300)' },
|
|
2194
|
+
},
|
|
2195
|
+
description: 'Position on canvas',
|
|
2196
|
+
},
|
|
2197
|
+
width: {
|
|
2198
|
+
type: 'number',
|
|
2199
|
+
description: 'Shape width in pixels (uses type-specific default if not specified)',
|
|
2200
|
+
},
|
|
2201
|
+
height: {
|
|
2202
|
+
type: 'number',
|
|
2203
|
+
description: 'Shape height in pixels (uses type-specific default if not specified)',
|
|
2204
|
+
},
|
|
2205
|
+
label: {
|
|
2206
|
+
type: 'string',
|
|
2207
|
+
description: 'Text label inside the shape',
|
|
2208
|
+
},
|
|
2209
|
+
style: {
|
|
2210
|
+
type: 'object',
|
|
2211
|
+
properties: {
|
|
2212
|
+
fillColor: { type: 'string', description: 'Fill color' },
|
|
2213
|
+
strokeColor: { type: 'string', description: 'Stroke color' },
|
|
2214
|
+
strokeWidth: { type: 'number', description: 'Stroke width' },
|
|
2215
|
+
},
|
|
2216
|
+
description: 'Visual styling options',
|
|
2217
|
+
},
|
|
2218
|
+
},
|
|
2219
|
+
required: ['shapeType'],
|
|
2220
|
+
},
|
|
2221
|
+
},
|
|
2222
|
+
{
|
|
2223
|
+
name: 'pinepaper_connect',
|
|
2224
|
+
annotations: {
|
|
2225
|
+
title: 'Connect Items',
|
|
2226
|
+
readOnlyHint: false,
|
|
2227
|
+
destructiveHint: false,
|
|
2228
|
+
idempotentHint: false,
|
|
2229
|
+
openWorldHint: false,
|
|
2230
|
+
},
|
|
2231
|
+
description: `Connect two items with a smart connector. This is the primary way to draw lines/arrows between diagram shapes.
|
|
2232
|
+
|
|
2233
|
+
USE WHEN:
|
|
2234
|
+
- Drawing arrows between flowchart steps
|
|
2235
|
+
- Connecting UML classes with associations
|
|
2236
|
+
- Creating network connections between nodes
|
|
2237
|
+
- Any diagram that needs lines/arrows between elements
|
|
2238
|
+
|
|
2239
|
+
CONNECTOR FEATURES:
|
|
2240
|
+
- Automatic port selection (finds nearest ports)
|
|
2241
|
+
- Smart routing to avoid overlapping shapes
|
|
2242
|
+
- Animated "bolt" effect for data flow visualization
|
|
2243
|
+
- Arrow heads on either or both ends
|
|
2244
|
+
- Labels on connectors
|
|
2245
|
+
|
|
2246
|
+
ROUTING TYPES:
|
|
2247
|
+
- orthogonal: Right-angle turns only (default, best for flowcharts)
|
|
2248
|
+
- direct: Straight line between points
|
|
2249
|
+
- curved: Bezier curve with adjustable curvature
|
|
2250
|
+
|
|
2251
|
+
ARROW STYLES:
|
|
2252
|
+
- classic: Standard filled arrow (default for head)
|
|
2253
|
+
- stealth: Narrow sharp arrow
|
|
2254
|
+
- sharp: Simple pointed arrow
|
|
2255
|
+
- open: Outline arrow (not filled)
|
|
2256
|
+
- diamond: Diamond shape (for UML aggregation)
|
|
2257
|
+
- circle: Circle (for UML composition)
|
|
2258
|
+
- none: No arrowhead (default for tail)
|
|
2259
|
+
|
|
2260
|
+
LINE STYLES:
|
|
2261
|
+
- solid: Continuous line (default)
|
|
2262
|
+
- dashed: Dashed line (for optional relationships)
|
|
2263
|
+
- dotted: Dotted line (for dependencies)
|
|
2264
|
+
|
|
2265
|
+
ANIMATED BOLT:
|
|
2266
|
+
Enable boltEnabled: true to show an animated particle traveling along the connector.
|
|
2267
|
+
Useful for showing data flow, process direction, or network traffic.
|
|
2268
|
+
|
|
2269
|
+
EXAMPLES:
|
|
2270
|
+
- Simple arrow: {sourceItemId: "shape_1", targetItemId: "shape_2"}
|
|
2271
|
+
- Curved line: {sourceItemId: "a", targetItemId: "b", routing: "curved", curvature: 0.7}
|
|
2272
|
+
- Dashed dependency: {sourceItemId: "a", targetItemId: "b", lineStyle: "dashed", headStyle: "open"}
|
|
2273
|
+
- Two-way arrow: {sourceItemId: "a", targetItemId: "b", headStyle: "classic", tailStyle: "classic"}
|
|
2274
|
+
- Labeled connection: {sourceItemId: "a", targetItemId: "b", label: "1..*"}
|
|
2275
|
+
|
|
2276
|
+
RETURNS:
|
|
2277
|
+
- connectorId: ID of the connector (use for updates/removal)
|
|
2278
|
+
- sourceItemId, targetItemId: Connected items`,
|
|
2279
|
+
inputSchema: {
|
|
2280
|
+
type: 'object',
|
|
2281
|
+
properties: {
|
|
2282
|
+
sourceItemId: {
|
|
2283
|
+
type: 'string',
|
|
2284
|
+
description: 'Registry ID of the source item (where arrow starts)',
|
|
2285
|
+
},
|
|
2286
|
+
targetItemId: {
|
|
2287
|
+
type: 'string',
|
|
2288
|
+
description: 'Registry ID of the target item (where arrow points)',
|
|
2289
|
+
},
|
|
2290
|
+
routing: {
|
|
2291
|
+
type: 'string',
|
|
2292
|
+
enum: ['direct', 'orthogonal', 'curved'],
|
|
2293
|
+
description: 'Connector routing style (default: orthogonal)',
|
|
2294
|
+
},
|
|
2295
|
+
lineColor: {
|
|
2296
|
+
type: 'string',
|
|
2297
|
+
description: 'Line color (default: #4B5563)',
|
|
2298
|
+
},
|
|
2299
|
+
lineWidth: {
|
|
2300
|
+
type: 'number',
|
|
2301
|
+
description: 'Line width in pixels (default: 2)',
|
|
2302
|
+
},
|
|
2303
|
+
lineStyle: {
|
|
2304
|
+
type: 'string',
|
|
2305
|
+
enum: ['solid', 'dashed', 'dotted'],
|
|
2306
|
+
description: 'Line style (default: solid)',
|
|
2307
|
+
},
|
|
2308
|
+
headStyle: {
|
|
2309
|
+
type: 'string',
|
|
2310
|
+
enum: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'],
|
|
2311
|
+
description: 'Arrow head style at target (default: classic)',
|
|
2312
|
+
},
|
|
2313
|
+
tailStyle: {
|
|
2314
|
+
type: 'string',
|
|
2315
|
+
enum: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'],
|
|
2316
|
+
description: 'Arrow style at source (default: none)',
|
|
2317
|
+
},
|
|
2318
|
+
label: {
|
|
2319
|
+
type: 'string',
|
|
2320
|
+
description: 'Text label on the connector',
|
|
2321
|
+
},
|
|
2322
|
+
curvature: {
|
|
2323
|
+
type: 'number',
|
|
2324
|
+
description: 'Curve intensity for curved routing (0.1-1.0, default: 0.5)',
|
|
2325
|
+
},
|
|
2326
|
+
boltEnabled: {
|
|
2327
|
+
type: 'boolean',
|
|
2328
|
+
description: 'Enable animated bolt effect (default: true)',
|
|
2329
|
+
},
|
|
2330
|
+
boltColor: {
|
|
2331
|
+
type: 'string',
|
|
2332
|
+
description: 'Bolt animation color (default: #fbbf24)',
|
|
2333
|
+
},
|
|
2334
|
+
},
|
|
2335
|
+
required: ['sourceItemId', 'targetItemId'],
|
|
2336
|
+
},
|
|
2337
|
+
},
|
|
2338
|
+
{
|
|
2339
|
+
name: 'pinepaper_connect_ports',
|
|
2340
|
+
annotations: {
|
|
2341
|
+
title: 'Connect Specific Ports',
|
|
2342
|
+
readOnlyHint: false,
|
|
2343
|
+
destructiveHint: false,
|
|
2344
|
+
idempotentHint: false,
|
|
2345
|
+
openWorldHint: false,
|
|
2346
|
+
},
|
|
2347
|
+
description: `Connect two specific ports on items. Use this when you need precise control over which ports the connector attaches to.
|
|
2348
|
+
|
|
2349
|
+
USE WHEN:
|
|
2350
|
+
- Need connector to attach to specific side of shape
|
|
2351
|
+
- Creating complex diagrams where automatic port selection isn't ideal
|
|
2352
|
+
- Building circuit-like diagrams with specific entry/exit points
|
|
2353
|
+
- Connecting specific input/output ports
|
|
2354
|
+
|
|
2355
|
+
PORT POSITIONS:
|
|
2356
|
+
Standard positions:
|
|
2357
|
+
- top, bottom, left, right: Center of each edge
|
|
2358
|
+
- top-left, top-right, bottom-left, bottom-right: Corners
|
|
2359
|
+
- center: Center of the shape
|
|
2360
|
+
|
|
2361
|
+
Line/path specific:
|
|
2362
|
+
- start: Beginning of path
|
|
2363
|
+
- end: End of path
|
|
2364
|
+
|
|
2365
|
+
EXAMPLES:
|
|
2366
|
+
- Top to bottom: {sourceItemId: "a", sourcePort: "bottom", targetItemId: "b", targetPort: "top"}
|
|
2367
|
+
- Left to right: {sourceItemId: "a", sourcePort: "right", targetItemId: "b", targetPort: "left"}
|
|
2368
|
+
- Corner connection: {sourceItemId: "a", sourcePort: "bottom-right", targetItemId: "b", targetPort: "top-left"}
|
|
2369
|
+
|
|
2370
|
+
CONFIG OPTIONS:
|
|
2371
|
+
Same as pinepaper_connect: routing, lineColor, lineWidth, lineStyle, headStyle, tailStyle, label, curvature, boltEnabled, boltColor`,
|
|
2372
|
+
inputSchema: {
|
|
2373
|
+
type: 'object',
|
|
2374
|
+
properties: {
|
|
2375
|
+
sourceItemId: {
|
|
2376
|
+
type: 'string',
|
|
2377
|
+
description: 'Registry ID of the source item',
|
|
2378
|
+
},
|
|
2379
|
+
sourcePort: {
|
|
2380
|
+
type: 'string',
|
|
2381
|
+
enum: ['top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'center', 'start', 'end'],
|
|
2382
|
+
description: 'Port position on source item',
|
|
2383
|
+
},
|
|
2384
|
+
targetItemId: {
|
|
2385
|
+
type: 'string',
|
|
2386
|
+
description: 'Registry ID of the target item',
|
|
2387
|
+
},
|
|
2388
|
+
targetPort: {
|
|
2389
|
+
type: 'string',
|
|
2390
|
+
enum: ['top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'center', 'start', 'end'],
|
|
2391
|
+
description: 'Port position on target item',
|
|
2392
|
+
},
|
|
2393
|
+
config: {
|
|
2394
|
+
type: 'object',
|
|
2395
|
+
properties: {
|
|
2396
|
+
routing: { type: 'string', enum: ['direct', 'orthogonal', 'curved'] },
|
|
2397
|
+
lineColor: { type: 'string' },
|
|
2398
|
+
lineWidth: { type: 'number' },
|
|
2399
|
+
lineStyle: { type: 'string', enum: ['solid', 'dashed', 'dotted'] },
|
|
2400
|
+
headStyle: { type: 'string', enum: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'] },
|
|
2401
|
+
tailStyle: { type: 'string', enum: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'] },
|
|
2402
|
+
label: { type: 'string' },
|
|
2403
|
+
curvature: { type: 'number' },
|
|
2404
|
+
boltEnabled: { type: 'boolean' },
|
|
2405
|
+
boltColor: { type: 'string' },
|
|
2406
|
+
},
|
|
2407
|
+
description: 'Connector configuration options',
|
|
2408
|
+
},
|
|
2409
|
+
},
|
|
2410
|
+
required: ['sourceItemId', 'sourcePort', 'targetItemId', 'targetPort'],
|
|
2411
|
+
},
|
|
2412
|
+
},
|
|
2413
|
+
{
|
|
2414
|
+
name: 'pinepaper_add_ports',
|
|
2415
|
+
annotations: {
|
|
2416
|
+
title: 'Add Ports to Item',
|
|
2417
|
+
readOnlyHint: false,
|
|
2418
|
+
destructiveHint: false,
|
|
2419
|
+
idempotentHint: false,
|
|
2420
|
+
openWorldHint: false,
|
|
2421
|
+
},
|
|
2422
|
+
description: `Add connection ports to an existing item. Ports are anchor points where connectors can attach.
|
|
2423
|
+
|
|
2424
|
+
USE WHEN:
|
|
2425
|
+
- Adding custom port positions to shapes
|
|
2426
|
+
- Enabling connections on items that don't have ports
|
|
2427
|
+
- Creating specialized connection points for complex diagrams
|
|
2428
|
+
|
|
2429
|
+
PORT TYPES:
|
|
2430
|
+
- standard: Standard 4 ports (top, bottom, left, right)
|
|
2431
|
+
- line: 2 ports (start, end) for line-like items
|
|
2432
|
+
- path: N ports distributed along a path
|
|
2433
|
+
- custom: User-defined port positions
|
|
2434
|
+
|
|
2435
|
+
CUSTOM PORTS:
|
|
2436
|
+
Define specific ports with position and type:
|
|
2437
|
+
- position: where on the item (top, bottom, left, right, corners)
|
|
2438
|
+
- type: input (accept incoming), output (start outgoing), or both
|
|
2439
|
+
|
|
2440
|
+
EXAMPLES:
|
|
2441
|
+
- Standard 4 ports: {itemId: "shape_1", portType: "standard"}
|
|
2442
|
+
- Line endpoints: {itemId: "line_1", portType: "line"}
|
|
2443
|
+
- Path with 5 ports: {itemId: "path_1", portType: "path", count: 5}
|
|
2444
|
+
- Custom ports: {itemId: "shape_1", portType: "custom", ports: [{position: "top", type: "input"}, {position: "bottom", type: "output"}]}`,
|
|
2445
|
+
inputSchema: {
|
|
2446
|
+
type: 'object',
|
|
2447
|
+
properties: {
|
|
2448
|
+
itemId: {
|
|
2449
|
+
type: 'string',
|
|
2450
|
+
description: 'Registry ID of the item to add ports to',
|
|
2451
|
+
},
|
|
2452
|
+
portType: {
|
|
2453
|
+
type: 'string',
|
|
2454
|
+
enum: ['standard', 'line', 'path', 'custom'],
|
|
2455
|
+
description: 'Type of port configuration (default: standard)',
|
|
2456
|
+
},
|
|
2457
|
+
ports: {
|
|
2458
|
+
type: 'array',
|
|
2459
|
+
items: {
|
|
2460
|
+
type: 'object',
|
|
2461
|
+
properties: {
|
|
2462
|
+
position: {
|
|
2463
|
+
type: 'string',
|
|
2464
|
+
enum: ['top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'center', 'start', 'end'],
|
|
2465
|
+
},
|
|
2466
|
+
type: {
|
|
2467
|
+
type: 'string',
|
|
2468
|
+
enum: ['input', 'output', 'both'],
|
|
2469
|
+
},
|
|
2470
|
+
},
|
|
2471
|
+
},
|
|
2472
|
+
description: 'Custom port definitions (for portType: "custom")',
|
|
2473
|
+
},
|
|
2474
|
+
count: {
|
|
2475
|
+
type: 'number',
|
|
2476
|
+
description: 'Number of ports for path type',
|
|
2477
|
+
},
|
|
2478
|
+
},
|
|
2479
|
+
required: ['itemId'],
|
|
2480
|
+
},
|
|
2481
|
+
},
|
|
2482
|
+
{
|
|
2483
|
+
name: 'pinepaper_auto_layout',
|
|
2484
|
+
annotations: {
|
|
2485
|
+
title: 'Auto Layout',
|
|
2486
|
+
readOnlyHint: false,
|
|
2487
|
+
destructiveHint: false,
|
|
2488
|
+
idempotentHint: false,
|
|
2489
|
+
openWorldHint: false,
|
|
2490
|
+
},
|
|
2491
|
+
description: `Automatically arrange diagram items using a layout algorithm. This reorganizes items for cleaner, more readable diagrams.
|
|
2492
|
+
|
|
2493
|
+
USE WHEN:
|
|
2494
|
+
- Diagram items are messy or overlapping
|
|
2495
|
+
- Want to create a professional-looking layout automatically
|
|
2496
|
+
- After adding many items, need to organize them
|
|
2497
|
+
- Creating hierarchical structures (org charts, trees)
|
|
2498
|
+
|
|
2499
|
+
LAYOUT TYPES:
|
|
2500
|
+
|
|
2501
|
+
hierarchical:
|
|
2502
|
+
- Best for: flowcharts, org charts, dependency graphs
|
|
2503
|
+
- Arranges items in levels from top to bottom (or other directions)
|
|
2504
|
+
- Respects connector direction for parent-child relationships
|
|
2505
|
+
- Options: direction (TB/BT/LR/RL), levelSpacing, nodeSpacing
|
|
2506
|
+
|
|
2507
|
+
force-directed:
|
|
2508
|
+
- Best for: network diagrams, relationship graphs
|
|
2509
|
+
- Uses physics simulation (attraction/repulsion)
|
|
2510
|
+
- Good for showing clusters and relationships
|
|
2511
|
+
- Options: iterations, attraction, repulsion
|
|
2512
|
+
|
|
2513
|
+
tree:
|
|
2514
|
+
- Best for: hierarchies, file systems, family trees
|
|
2515
|
+
- Similar to hierarchical but optimized for tree structures
|
|
2516
|
+
- Options: direction, levelSpacing, nodeSpacing
|
|
2517
|
+
|
|
2518
|
+
radial:
|
|
2519
|
+
- Best for: mind maps, hub-and-spoke diagrams
|
|
2520
|
+
- Places items in concentric circles around a center
|
|
2521
|
+
- Options: centerX, centerY, startRadius, radiusStep
|
|
2522
|
+
|
|
2523
|
+
grid:
|
|
2524
|
+
- Best for: equal-importance items, component libraries
|
|
2525
|
+
- Arranges items in rows and columns
|
|
2526
|
+
- Options: columns, cellWidth, cellHeight
|
|
2527
|
+
|
|
2528
|
+
ANIMATION:
|
|
2529
|
+
By default, items animate smoothly to their new positions.
|
|
2530
|
+
Set animate: false for instant repositioning.
|
|
2531
|
+
|
|
2532
|
+
EXAMPLES:
|
|
2533
|
+
- Flowchart layout: {layoutType: "hierarchical", options: {direction: "TB", levelSpacing: 100}}
|
|
2534
|
+
- Network diagram: {layoutType: "force-directed", options: {iterations: 200, repulsion: 2000}}
|
|
2535
|
+
- Mind map: {layoutType: "radial", options: {centerX: 400, centerY: 300}}
|
|
2536
|
+
- Grid of icons: {layoutType: "grid", options: {columns: 4, cellWidth: 120}}
|
|
2537
|
+
|
|
2538
|
+
PARTIAL LAYOUT:
|
|
2539
|
+
Pass itemIds array to only layout specific items, leaving others in place.`,
|
|
2540
|
+
inputSchema: {
|
|
2541
|
+
type: 'object',
|
|
2542
|
+
properties: {
|
|
2543
|
+
layoutType: {
|
|
2544
|
+
type: 'string',
|
|
2545
|
+
enum: ['hierarchical', 'force-directed', 'tree', 'radial', 'grid'],
|
|
2546
|
+
description: 'Layout algorithm to use',
|
|
2547
|
+
},
|
|
2548
|
+
itemIds: {
|
|
2549
|
+
type: 'array',
|
|
2550
|
+
items: { type: 'string' },
|
|
2551
|
+
description: 'Specific items to layout (default: all diagram items)',
|
|
2552
|
+
},
|
|
2553
|
+
options: {
|
|
2554
|
+
type: 'object',
|
|
2555
|
+
properties: {
|
|
2556
|
+
direction: {
|
|
2557
|
+
type: 'string',
|
|
2558
|
+
enum: ['TB', 'BT', 'LR', 'RL'],
|
|
2559
|
+
description: 'Layout direction (TB=top-to-bottom, LR=left-to-right, etc.)',
|
|
2560
|
+
},
|
|
2561
|
+
levelSpacing: {
|
|
2562
|
+
type: 'number',
|
|
2563
|
+
description: 'Vertical spacing between levels (default: 100)',
|
|
2564
|
+
},
|
|
2565
|
+
nodeSpacing: {
|
|
2566
|
+
type: 'number',
|
|
2567
|
+
description: 'Horizontal spacing between nodes (default: 80)',
|
|
2568
|
+
},
|
|
2569
|
+
iterations: {
|
|
2570
|
+
type: 'number',
|
|
2571
|
+
description: 'Iterations for force-directed layout (default: 100)',
|
|
2572
|
+
},
|
|
2573
|
+
attraction: {
|
|
2574
|
+
type: 'number',
|
|
2575
|
+
description: 'Attraction force for connected nodes (default: 0.01)',
|
|
2576
|
+
},
|
|
2577
|
+
repulsion: {
|
|
2578
|
+
type: 'number',
|
|
2579
|
+
description: 'Repulsion force between all nodes (default: 1000)',
|
|
2580
|
+
},
|
|
2581
|
+
columns: {
|
|
2582
|
+
type: 'number',
|
|
2583
|
+
description: 'Number of columns for grid layout',
|
|
2584
|
+
},
|
|
2585
|
+
cellWidth: {
|
|
2586
|
+
type: 'number',
|
|
2587
|
+
description: 'Cell width for grid layout (default: 150)',
|
|
2588
|
+
},
|
|
2589
|
+
cellHeight: {
|
|
2590
|
+
type: 'number',
|
|
2591
|
+
description: 'Cell height for grid layout (default: 100)',
|
|
2592
|
+
},
|
|
2593
|
+
centerX: {
|
|
2594
|
+
type: 'number',
|
|
2595
|
+
description: 'Center X for radial layout',
|
|
2596
|
+
},
|
|
2597
|
+
centerY: {
|
|
2598
|
+
type: 'number',
|
|
2599
|
+
description: 'Center Y for radial layout',
|
|
2600
|
+
},
|
|
2601
|
+
startRadius: {
|
|
2602
|
+
type: 'number',
|
|
2603
|
+
description: 'Starting radius for radial layout (default: 100)',
|
|
2604
|
+
},
|
|
2605
|
+
radiusStep: {
|
|
2606
|
+
type: 'number',
|
|
2607
|
+
description: 'Radius increment per level for radial layout (default: 80)',
|
|
2608
|
+
},
|
|
2609
|
+
animate: {
|
|
2610
|
+
type: 'boolean',
|
|
2611
|
+
description: 'Animate transition to new positions (default: true)',
|
|
2612
|
+
},
|
|
2613
|
+
animationDuration: {
|
|
2614
|
+
type: 'number',
|
|
2615
|
+
description: 'Animation duration in ms (default: 300)',
|
|
2616
|
+
},
|
|
2617
|
+
},
|
|
2618
|
+
description: 'Layout-specific options',
|
|
2619
|
+
},
|
|
2620
|
+
},
|
|
2621
|
+
required: ['layoutType'],
|
|
2622
|
+
},
|
|
2623
|
+
},
|
|
2624
|
+
{
|
|
2625
|
+
name: 'pinepaper_get_diagram_shapes',
|
|
2626
|
+
annotations: {
|
|
2627
|
+
title: 'Get Diagram Shapes',
|
|
2628
|
+
readOnlyHint: true,
|
|
2629
|
+
destructiveHint: false,
|
|
2630
|
+
idempotentHint: true,
|
|
2631
|
+
openWorldHint: false,
|
|
2632
|
+
},
|
|
2633
|
+
description: `Get a list of available diagram shapes with their properties.
|
|
2634
|
+
|
|
2635
|
+
USE WHEN:
|
|
2636
|
+
- Need to see what diagram shapes are available
|
|
2637
|
+
- Want to know default sizes and styling for shapes
|
|
2638
|
+
- Building dynamic UI that shows shape options
|
|
2639
|
+
|
|
2640
|
+
CATEGORIES:
|
|
2641
|
+
- flowchart: process, decision, terminal, data, document, database, preparation
|
|
2642
|
+
- uml: uml-class, uml-usecase, uml-actor
|
|
2643
|
+
- network: cloud, server
|
|
2644
|
+
- basic: rectangle, circle, triangle, star
|
|
2645
|
+
|
|
2646
|
+
RETURNS:
|
|
2647
|
+
Array of shape definitions including:
|
|
2648
|
+
- name: Shape identifier
|
|
2649
|
+
- category: Category it belongs to
|
|
2650
|
+
- defaultWidth, defaultHeight: Default dimensions
|
|
2651
|
+
- defaultStyle: Default colors and stroke
|
|
2652
|
+
- description: What the shape represents`,
|
|
2653
|
+
inputSchema: {
|
|
2654
|
+
type: 'object',
|
|
2655
|
+
properties: {
|
|
2656
|
+
category: {
|
|
2657
|
+
type: 'string',
|
|
2658
|
+
enum: ['flowchart', 'uml', 'network', 'basic'],
|
|
2659
|
+
description: 'Filter by category (optional - returns all if not specified)',
|
|
2660
|
+
},
|
|
2661
|
+
},
|
|
2662
|
+
},
|
|
2663
|
+
},
|
|
2664
|
+
{
|
|
2665
|
+
name: 'pinepaper_update_connector',
|
|
2666
|
+
annotations: {
|
|
2667
|
+
title: 'Update Connector',
|
|
2668
|
+
readOnlyHint: false,
|
|
2669
|
+
destructiveHint: false,
|
|
2670
|
+
idempotentHint: true,
|
|
2671
|
+
openWorldHint: false,
|
|
2672
|
+
},
|
|
2673
|
+
description: `Update the style or label of an existing connector.
|
|
2674
|
+
|
|
2675
|
+
USE WHEN:
|
|
2676
|
+
- Changing connector appearance after creation
|
|
2677
|
+
- Updating connector labels
|
|
2678
|
+
- Changing arrow styles or colors
|
|
2679
|
+
|
|
2680
|
+
UPDATABLE PROPERTIES:
|
|
2681
|
+
- style: lineColor, lineWidth, headStyle, tailStyle, routing, lineStyle
|
|
2682
|
+
- label: Text label on the connector
|
|
2683
|
+
- labelPosition: Position along path (0-1, where 0.5 is middle)
|
|
2684
|
+
|
|
2685
|
+
EXAMPLES:
|
|
2686
|
+
- Change color: {connectorId: "conn_1", style: {lineColor: "#ef4444"}}
|
|
2687
|
+
- Add label: {connectorId: "conn_1", label: "data flow"}
|
|
2688
|
+
- Change to dashed: {connectorId: "conn_1", style: {lineStyle: "dashed"}}
|
|
2689
|
+
- Move label: {connectorId: "conn_1", labelPosition: 0.25}`,
|
|
2690
|
+
inputSchema: {
|
|
2691
|
+
type: 'object',
|
|
2692
|
+
properties: {
|
|
2693
|
+
connectorId: {
|
|
2694
|
+
type: 'string',
|
|
2695
|
+
description: 'ID of the connector to update',
|
|
2696
|
+
},
|
|
2697
|
+
style: {
|
|
2698
|
+
type: 'object',
|
|
2699
|
+
properties: {
|
|
2700
|
+
lineColor: { type: 'string' },
|
|
2701
|
+
lineWidth: { type: 'number' },
|
|
2702
|
+
headStyle: { type: 'string', enum: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'] },
|
|
2703
|
+
tailStyle: { type: 'string', enum: ['classic', 'stealth', 'sharp', 'open', 'diamond', 'circle', 'none'] },
|
|
2704
|
+
routing: { type: 'string', enum: ['direct', 'orthogonal', 'curved'] },
|
|
2705
|
+
lineStyle: { type: 'string', enum: ['solid', 'dashed', 'dotted'] },
|
|
2706
|
+
},
|
|
2707
|
+
description: 'Style properties to update',
|
|
2708
|
+
},
|
|
2709
|
+
label: {
|
|
2710
|
+
type: 'string',
|
|
2711
|
+
description: 'New label text',
|
|
2712
|
+
},
|
|
2713
|
+
labelPosition: {
|
|
2714
|
+
type: 'number',
|
|
2715
|
+
description: 'Label position along path (0-1)',
|
|
2716
|
+
},
|
|
2717
|
+
},
|
|
2718
|
+
required: ['connectorId'],
|
|
2719
|
+
},
|
|
2720
|
+
},
|
|
2721
|
+
{
|
|
2722
|
+
name: 'pinepaper_remove_connector',
|
|
2723
|
+
annotations: {
|
|
2724
|
+
title: 'Remove Connector',
|
|
2725
|
+
readOnlyHint: false,
|
|
2726
|
+
destructiveHint: true,
|
|
2727
|
+
idempotentHint: true,
|
|
2728
|
+
openWorldHint: false,
|
|
2729
|
+
},
|
|
2730
|
+
description: `Remove a connector from the canvas.
|
|
2731
|
+
|
|
2732
|
+
USE WHEN:
|
|
2733
|
+
- Deleting a connection between items
|
|
2734
|
+
- Removing incorrect links
|
|
2735
|
+
- Restructuring diagram connections`,
|
|
2736
|
+
inputSchema: {
|
|
2737
|
+
type: 'object',
|
|
2738
|
+
properties: {
|
|
2739
|
+
connectorId: {
|
|
2740
|
+
type: 'string',
|
|
2741
|
+
description: 'ID of the connector to remove',
|
|
2742
|
+
},
|
|
2743
|
+
},
|
|
2744
|
+
required: ['connectorId'],
|
|
2745
|
+
},
|
|
2746
|
+
},
|
|
2747
|
+
{
|
|
2748
|
+
name: 'pinepaper_diagram_mode',
|
|
2749
|
+
annotations: {
|
|
2750
|
+
title: 'Diagram Mode',
|
|
2751
|
+
readOnlyHint: false,
|
|
2752
|
+
destructiveHint: false,
|
|
2753
|
+
idempotentHint: true,
|
|
2754
|
+
openWorldHint: false,
|
|
2755
|
+
},
|
|
2756
|
+
description: `Control the diagram mode for interactive editing.
|
|
2757
|
+
|
|
2758
|
+
USE WHEN:
|
|
2759
|
+
- Switching between drawing and selection modes
|
|
2760
|
+
- Enabling/disabling diagram-specific UI
|
|
2761
|
+
- Setting up the canvas for diagram creation
|
|
2762
|
+
|
|
2763
|
+
ACTIONS:
|
|
2764
|
+
- activate: Enable diagram mode (shows grid, snap, port indicators)
|
|
2765
|
+
- deactivate: Return to normal canvas mode
|
|
2766
|
+
- toggle: Switch between diagram and normal mode
|
|
2767
|
+
- setMode: Set specific tool mode (select, connect, shape, pan)
|
|
2768
|
+
|
|
2769
|
+
TOOL MODES (for setMode action):
|
|
2770
|
+
- select: Selection and moving items
|
|
2771
|
+
- connect: Drawing connectors between items
|
|
2772
|
+
- shape: Drawing new shapes (optionally specify shapeType)
|
|
2773
|
+
- pan: Panning the canvas
|
|
2774
|
+
|
|
2775
|
+
EXAMPLES:
|
|
2776
|
+
- Enter diagram mode: {action: "activate"}
|
|
2777
|
+
- Exit diagram mode: {action: "deactivate"}
|
|
2778
|
+
- Set to connect mode: {action: "setMode", mode: "connect"}
|
|
2779
|
+
- Set to draw rectangles: {action: "setMode", mode: "shape", shapeType: "process"}`,
|
|
2780
|
+
inputSchema: {
|
|
2781
|
+
type: 'object',
|
|
2782
|
+
properties: {
|
|
2783
|
+
action: {
|
|
2784
|
+
type: 'string',
|
|
2785
|
+
enum: ['activate', 'deactivate', 'toggle', 'setMode'],
|
|
2786
|
+
description: 'Action to perform',
|
|
2787
|
+
},
|
|
2788
|
+
mode: {
|
|
2789
|
+
type: 'string',
|
|
2790
|
+
enum: ['select', 'connect', 'shape', 'pan'],
|
|
2791
|
+
description: 'Tool mode (for setMode action)',
|
|
2792
|
+
},
|
|
2793
|
+
shapeType: {
|
|
2794
|
+
type: 'string',
|
|
2795
|
+
enum: ['process', 'decision', 'terminal', 'data', 'document', 'database', 'preparation', 'uml-class', 'uml-usecase', 'uml-actor', 'cloud', 'server', 'rectangle', 'circle', 'triangle', 'star'],
|
|
2796
|
+
description: 'Shape type for shape mode',
|
|
2797
|
+
},
|
|
2798
|
+
},
|
|
2799
|
+
required: ['action'],
|
|
2800
|
+
},
|
|
2801
|
+
},
|
|
2123
2802
|
];
|
|
2124
2803
|
/**
|
|
2125
2804
|
* Get a tool definition by name
|