coras-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CORAS_JAVA | No | Selects a JDK/JRE to use for running Java components. | |
| CORAS_PYTHON | No | Selects a Python interpreter to use for running the server. | |
| CORAS_TOOL_DIR | No | Overrides the directory containing the CORAS editor jar. This takes precedence over the default bundled tool directory and the --set-tool-dir command-line option. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| coras_referenceA | The CORAS language as this 2007 Threat Modelling Tool implements it: every element type, every relationship and which elements it may connect, the treatment strategies, and the text notation. Read this first when you are unsure whether an arrow is allowed - the editor refuses to open a file with an illegal relationship. |
| coras_create_diagramA | Build a CORAS diagram file (.dgx) from a description and lay it out automatically, then show you how the editor draws it. Give either a structured 'spec' or 'text' in the CORAS notation. Elements are placed in the canonical left-to-right order (stakeholder, threat, vulnerability, threat scenario, unwanted incident, risk, asset), sized to fit their labels, and relationship types are inferred from the elements they join. The resulting file opens in the Threat Modelling Tool as if it had been drawn by hand. |
| coras_read_diagramA | Read an existing .dgx file and return it as a structured spec and as the CORAS text notation, so it can be inspected or rewritten. Optionally renders it so you can see the current state. |
| coras_edit_diagramA | Change an existing .dgx file in place: add or remove elements and arrows, rename things, recolour, move, add or drop whole diagrams, or re-run the automatic layout. Existing positions are kept unless you ask for a relayout, and a .bak copy is made first. |
| coras_render_diagramA | Render a .dgx file to PNG or SVG using the editor's own renderer, so the image is pixel-identical to what the tool shows. Returns the picture inline and writes it to disk. |
| coras_validate_fileA | Check that a .dgx file is well formed and that the Threat Modelling Tool itself can load it, reporting what it found in each diagram. |
| coras_open_editorA | Launch the Threat Modelling Tool GUI, optionally with a .dgx file already open, so the diagram can be looked at and edited by hand. The editor keeps running after this returns. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a distinct operation—create, read, edit, render, validate, open in the GUI, or consult the language reference—so there is little risk of selecting the wrong one. The only close pair, read vs. render, is clearly separated by output type: structured spec/text vs. PNG/SVG image.
Most tools follow a consistent coras_<verb>_<noun> pattern: coras_read_diagram, coras_edit_diagram, coras_render_diagram, coras_create_diagram, coras_open_editor. The exceptions are coras_reference, which is a bare noun, and coras_validate_file, which uses 'file' rather than 'diagram', but these are minor deviations.
Seven tools is well-scoped for a CORAS diagram server. Each tool has a clear role covering creation, inspection, editing, rendering, validation, GUI launch, and language reference, with no apparent redundancy.
The core diagram lifecycle is well covered: create, read, edit, render, validate, and even open in the desktop editor. Minor gaps exist—there is no explicit file listing/deletion or a tool to close the launched editor—but these do not block the main workflows.