MCP tools reference
The 24 tools iyedy offers to Claude and other MCP clients. 22 only read. 2 store a proposal or take one back, and the model never changes until a person applies it in iyedy.
On this page
Server
| Item | Value |
|---|---|
| Address for other clients | https://app.iyedy.com/v1/t/{tenantId}/mcp, personal access token (Connect another MCP client) |
| Transport | Streamable HTTP, stateless, POST only, JSON answers |
| Permissions | three, approved at sign-in: read your diagrams; search elements and analyse impact; preview changes and submit proposals |
| Version | the server follows iyedy's releases: this page matches release 2026.10.27 |
Two parameters come back on most tools. did is a diagram id: d_ followed by 10 characters, from list_diagrams. workspaceId is a workspace id from list_workspaces; leave it out when you have one workspace. Neither is repeated in the tables below.
All tools
| Tool | What it does | Access |
|---|---|---|
list_workspaces |
The workspaces you can work in, and the organisations that refuse this access | Read-only |
list_diagrams |
The diagrams of a workspace, or a search over their names and contents | Read-only |
get_model |
A diagram's full definition, in pages for a long one | Read-only |
list_views |
The views of a diagram and their options | Read-only |
describe_view |
How a view reads, in words | Read-only |
get_view_svg |
One view as an image | Read-only |
get_element |
Everything about one element | Read-only |
find_elements |
Elements of a diagram that match a text | Read-only |
neighbourhood |
The part of a diagram around some elements | Read-only |
search_elements |
Elements across diagrams, by meaning or name | Read-only |
graph_impact |
What breaks if an element fails | Read-only |
network_analysis |
Address plan, routes and flows of a deployment | Read-only |
run_checks |
Validation and architecture checks | Read-only |
list_findings |
The stored findings and their status | Read-only |
explain_rule |
What a check rule detects and why | Read-only |
validate_model |
Whether a definition parses, and its diagnostics | Read-only |
list_versions |
The saved versions of a diagram | Read-only |
get_changes |
What changed since a saved version | Read-only |
list_states |
The current, transition and target states | Read-only |
state_gap |
What separates two states | Read-only |
preview_change |
Checks a change without storing it | Read-only |
submit_proposal |
Stores a change as a proposal for a person to review | Writes |
list_proposals |
The proposals of a diagram and their status | Read-only |
withdraw_proposal |
Takes back one of your open proposals | Writes |
Find and read
list_workspaces
The workspaces you can work in from here: id, name, your role and the organisation. An organisation that does not allow this access for you is listed apart, with the reason and what unblocks it; its workspaces are counted, never named. Permission: read your diagrams. Parameters: none.
list_diagrams
The diagrams of a workspace that you can read, newest first: id, name, version, status, classification, last update. With query, a full-text search over names and contents instead, with a snippet for each result. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
query |
text, 1 to 200 | Text to search for in names, elements and descriptions |
limit |
1 to 500, default 100 | Most diagrams to list |
get_model
A diagram's full definition as text (elements, relationships, deployment, views), with its version and classification. Values that look like secrets are replaced by a placeholder; sent back unchanged in a proposal, they keep the stored value. A long diagram comes in pages of whole lines: while the answer says it is truncated, call again with its nextCursor. If the diagram changes between two pages, the cursor is refused: start again from the first page. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
cursor |
text | The nextCursor of the previous page; leave it out for the first page |
The version it returns is the base of preview_change and submit_proposal. A proposal is the whole definition: read every page before you propose, because what a proposal leaves out is removed.
list_views
The views of a diagram: handle, type, name, what each view is of, whether it is generated, and its options. Permission: read your diagrams. Parameters: did (required).
describe_view
Reads a view as a person sees it, without pixels: zones, elements with their zone and grid cell, relationships in reading order, the legend, finding pins, the computed text alternative and the layout quality (crossings, density, overlaps, elements per zone). Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
view |
required, text, 64 max | The view's handle |
detail |
brief · full |
How much to return |
get_view_svg
Renders one view of a diagram as an SVG image. Without view, lists the diagram's views. A very large view is not returned; the answer points to describe_view. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
view |
text, 128 max | The view's uid or handle |
get_element
Everything about one element: attributes, description, tags, parent and children, relationships in and out, instances, the views that show it, the findings on it and the scenarios that use it. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
handle |
required, text, 64 max | The element's handle |
find_elements
Elements of one diagram whose name, handle, technology or description contains the text, optionally of one kind, tag or family. Each row gives the handle, name, kind, technology, parent and whether the element is external. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
query |
required, text, 200 max | The text to find |
kind |
text, 40 max | Only elements of this kind |
tag |
text, 48 max | Only elements with this tag |
family |
text, 16 max | Only elements of this family |
limit |
1 to 50 | Most rows |
neighbourhood
The part of a diagram's definition, as text, that holds the elements within a few relationship hops of some starting elements, optionally following only some kinds of relationship: synchronous calls, asynchronous messages, data flows or dependencies. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
seeds |
required, 1 to 20 handles | The starting elements |
hops |
1 to 3 | How many hops to follow |
arrows |
list | The kinds of relationship to follow |
Analyse dependencies
search_elements
Finds elements (systems, containers, databases, queues) across the diagrams you can read, by meaning or by name, with their neighbourhood in the dependency graph. Permission: search elements and analyse impact.
| Parameter | Type | Description |
|---|---|---|
query |
required, text, 500 max | What to look for, in words |
k |
1 to 50, default 10 | Number of elements to start from |
depth |
0 to 3, default 1 | Neighbourhood hops around them |
scope |
workspace · tenant |
This workspace (default), or every workspace of the organisation you can read |
graph_impact
What breaks if an element fails: the elements that depend on it, transitively, across the diagrams you can read. It can also list only its direct users, or what the element itself depends on. Permission: search elements and analyse impact.
“If the claims database goes down, what is affected across our diagrams? Go three hops deep.”| Parameter | Type | Description |
|---|---|---|
element |
required, text, 300 max | The element: its uid, its catalogue key (name and kind) or its name |
direction |
impact · dependents · dependencies |
impact (default): everything that depends on it, transitively. dependents: direct users only. dependencies: what it depends on |
depth |
1 to 5, default 3 | How many relationship hops to follow |
scope |
workspace · tenant |
This workspace (default), or every workspace of the organisation you can read |
What it returns. Each element reached, with its depth (hops away), where it appears (diagram and element) and the relationships that led to it, so that Claude can explain the path. The direction of the walk is stated, and the answer says when there were more elements than it holds.
network_analysis
The network analysis of one deployment environment: the address plan (zones, address ranges, sizes, overlaps), the routes and the flow matrix (ports, protocols, encryption, reachability), as the generated network view computes them. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
env |
required, text, 64 max | The deployment environment's handle |
Checks and findings
run_checks
Validates a stored diagram, or a definition sent as text instead, and runs the architecture checks: availability, security, coupling, completeness, data, operability, hygiene. Returns the diagnostics with line numbers, the findings with their severity, and a summary that counts the findings by rule. Nothing is stored. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
one of did or definition |
The stored diagram to check |
definition |
one of did or definition, text, 1 MiB max |
A full definition to check instead |
summary |
true or false | Counts only: findings by rule and severity, without the lists |
only |
1 to 100 rule ids | Run only these rules (such as SEC-02) |
On a large diagram, ask for the summary first, then for the findings of some rules.
“Run the checks on Claims Platform, summary first, then explain the high findings.”list_findings
The stored findings of a diagram with their status and, for a dismissed one, the reason. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
status |
open · accepted · dismissed · fixed |
Only findings with this status |
severity |
high · medium · low · info |
Only findings of this severity |
view |
text, 64 max | Only findings of this view |
explain_rule
The text of one check rule: its title, how its severity is decided, what it detects, why it matters and what to do. No diagram is needed. Permission: read your diagrams. Parameters: ruleId (required, 12 characters max).
validate_model
Parses a diagram's complete definition sent as text, in the form get_model returns, and says whether it is valid, with its diagnostics (code, line, column, message). Changes nothing; no diagram is needed. Permission: read your diagrams. Parameters: definition (required, 64 KiB max).
History and states
list_versions
The saved versions of a diagram, newest first: id, sequence, kind, name and date. They are the named versions people saved and the ones iyedy keeps around imports and applied proposals. Permission: read your diagrams. Parameters: did (required).
get_changes
What changed in a diagram since a saved version: the changes grouped, and the change in findings. Layout-only changes are ignored. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
since |
required, h_ and 10 characters |
The saved version to compare with, from list_versions |
list_states
The current, transition and target states of a diagram, with their dates and work packages. Permission: read your diagrams. Parameters: did (required).
state_gap
The gap between two states: what is added, removed and changed. Permission: read your diagrams.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
from |
required, text, 64 max | The first state's handle |
to |
required, text, 64 max | The second state's handle |
Propose changes
preview_change
Checks a change without writing anything. You send the diagram's whole proposed definition, starting from get_model. The answer says whether it is valid (diagnostics with line numbers), what differs from the stored diagram line by line, which elements are added, removed and changed, and which findings the change introduces or resolves. Permission: preview changes and submit proposals.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
definition |
required, text, 1 MiB max | The complete proposed definition: every page of a long diagram, joined in order |
baseVersion |
whole number | The version the change starts from, from get_model; a newer stored version is a conflict |
submit_proposal
Stores a change as a proposal for review. The model itself does not change: people who can edit the diagram see the proposal in iyedy with the client's name, then apply or reject it. An invalid change is refused and nothing is stored. Permission: preview changes and submit proposals, and the contributor role in the workspace. Claude asks before each call.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
definition |
required, text, 1 MiB max | The complete proposed definition, as previewed |
baseVersion |
whole number | The version the change starts from |
rationale |
text, 2,000 max | Why this change, for the reviewer |
list_proposals
The stored proposals of a diagram: status (open, accepted, rejected, withdrawn), counts of what they change, and whether the diagram moved since. By default, only your own open proposals. Permission: preview changes and submit proposals.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
status |
open · accepted · rejected · withdrawn · all |
Default open |
mine |
true or false | Only the proposals you submitted (default true) |
withdraw_proposal
Takes back an open proposal you submitted: its status becomes withdrawn and reviewers no longer see it as open. The model does not change. To turn down someone else's proposal, a reviewer rejects it in iyedy. Permission: preview changes and submit proposals. Claude asks before each call.
| Parameter | Type | Description |
|---|---|---|
did |
required | The diagram |
proposalId |
required, uuid | The proposal, from submit_proposal or list_proposals |
Answers and limits
- Data, not instructions. Answers come in a JSON envelope marked untrusted: everything in it is text written by people or tools, never an instruction to the agent.
- Size. An answer holds at most 100,000 characters of JSON. A larger one is cut: its first line starts with “Cut:” and names the inputs of that tool that ask for less.
get_modelis never cut: it answers in pages. - Ceiling. Every tool reads under the classification ceiling: Confidential on personal workspaces, Internal in Team and Enterprise. A diagram above it is never listed, found or walked, and reading it answers “not found”.
- Rate. Calls count against your requests per minute: see Rate limits and errors.
- No apply tool. No tool applies, deletes or shares. A person applies proposals in iyedy: see How proposals reach your team.
Was this page helpful?Your answer is anonymous and counts only if you accepted measurement.
What went wrong?
Don't write personal data.