forked from antoinebou12/uml-mcp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsmithery.yaml
More file actions
328 lines (294 loc) · 9.86 KB
/
smithery.yaml
File metadata and controls
328 lines (294 loc) · 9.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
# Smithery.ai configuration
name: uml-mcp
version: "1.2.0"
description: "UML diagram generation server with MCP interface supporting PlantUML, Mermaid, Kroki, and D2"
startCommand:
type: stdio
configSchema:
type: "object"
properties:
debug:
type: "boolean"
description: "Enable debug mode for verbose logging"
default: false
output_dir:
type: "string"
description: "Directory to store generated diagram files"
default: "/app/output"
transport:
type: "string"
description: "Transport protocol to use (stdio or http)"
enum: ["stdio", "http"]
default: "stdio"
host:
type: "string"
description: "Host to bind to when using HTTP transport"
default: "127.0.0.1"
port:
type: "integer"
description: "Port to bind to when using HTTP transport"
default: 8000
minimum: 1024
maximum: 65535
log_level:
type: "string"
description: "Logging level"
enum: ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
default: "INFO"
kroki_server:
type: "string"
description: "Kroki server URL for diagram rendering"
default: "https://kroki.io"
plantuml_server:
type: "string"
description: "PlantUML server URL for diagram rendering (leave empty to use Kroki)"
default: ""
enabled_formats:
type: "array"
description: "Enabled diagram formats (leave empty for all formats)"
items:
type: "string"
enum: ["plantuml", "mermaid", "d2", "graphviz", "erd"]
default: []
additionalProperties: false
description: "Configuration for UML diagram generation server"
commandFunction: |-
(config) => {
// Build command arguments
const args = ["mcp_server.py"];
// Add transport option
if (config.transport) {
args.push("--transport", config.transport);
}
// Add debug flag if enabled
if (config.debug) {
args.push("--debug");
}
// Add host and port if using http transport
if (config.transport === "http") {
if (config.host) {
args.push("--host", config.host);
}
if (config.port) {
args.push("--port", config.port.toString());
}
}
// Build environment variables
const env = {
"PYTHONUNBUFFERED": "1" // Ensure unbuffered Python output
};
// Add output directory
if (config.output_dir) {
env.UML_MCP_OUTPUT_DIR = config.output_dir;
}
// Add log level
if (config.log_level) {
env.LOG_LEVEL = config.log_level;
}
// Add Kroki server
if (config.kroki_server) {
env.KROKI_SERVER = config.kroki_server;
}
// Add PlantUML server
if (config.plantuml_server) {
env.PLANTUML_SERVER = config.plantuml_server;
}
// Add enabled formats
if (config.enabled_formats && config.enabled_formats.length > 0) {
env.ENABLED_FORMATS = config.enabled_formats.join(",");
}
// Return command configuration
return {
command: "python",
args: args,
env: env
};
}
exampleConfig: {
"debug": false,
"output_dir": "/app/output",
"transport": "stdio",
"log_level": "INFO"
}
healthCheck:
interval: "30s"
timeout: "5s"
retries: 3
startPeriod: "10s"
# Build configuration
build:
dockerBuildPath: "../../"
dockerfile: "./Dockerfile"
# Server capabilities based on actual console output
capabilities:
# Server information
serverName: "UML Diagram Generator"
# Tools from console output
tools:
- name: "generate_uml"
description: "Generate any UML diagram based on diagram type"
parameters:
- name: "diagram_type"
type: "string"
description: "Type of diagram (class, sequence, activity, etc.)"
required: true
- name: "code"
type: "string"
description: "The diagram code/description"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_class_diagram"
description: "Generate UML class diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_sequence_diagram"
description: "Generate UML sequence diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_activity_diagram"
description: "Generate UML activity diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_usecase_diagram"
description: "Generate UML use case diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_state_diagram"
description: "Generate UML state diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_component_diagram"
description: "Generate UML component diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_deployment_diagram"
description: "Generate UML deployment diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_object_diagram"
description: "Generate UML object diagram from PlantUML code"
parameters:
- name: "code"
type: "string"
description: "The PlantUML diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_mermaid_diagram"
description: "Generate diagrams using Mermaid syntax"
parameters:
- name: "code"
type: "string"
description: "The Mermaid diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_d2_diagram"
description: "Generate diagrams using D2 syntax"
parameters:
- name: "code"
type: "string"
description: "The D2 diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_graphviz_diagram"
description: "Generate diagrams using Graphviz DOT syntax"
parameters:
- name: "code"
type: "string"
description: "The Graphviz DOT code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
- name: "generate_erd_diagram"
description: "Generate Entity-Relationship diagrams"
parameters:
- name: "code"
type: "string"
description: "The ERD diagram code"
required: true
- name: "output_dir"
type: "string"
description: "Directory where to save the generated image"
required: true
# Prompts from console output
prompts:
- name: "class_diagram"
description: "Create a UML class diagram showing classes, attributes, methods, and relationships"
- name: "sequence_diagram"
description: "Create a UML sequence diagram showing interactions between objects over time"
- name: "activity_diagram"
description: "Create a UML activity diagram showing workflows and business processes"
# Resources from console output
resources:
- name: "uml://types"
description: "List of available UML diagram types"
- name: "uml://templates"
description: "Templates for creating UML diagrams"
- name: "uml://examples"
description: "Example UML diagrams for reference"
- name: "uml://formats"
description: "Supported output formats for diagrams"
- name: "uml://server-info"
description: "Information about the UML-MCP server"