Skip to main content
Glama

Create a model

create_model

Creates a new graph data model in the user's toro4n account from nodes, relationships, and notes, lays it out automatically, and returns a link that opens it. Give each node a ref of your choice and use it in relationships and notes. Each model describes a Neo4j schema, not instance data. It holds nodes such as (:Customer), (:Order), or (:Router:Egress), and the relationships between them, such as (:Customer)-[:PLACED]->(:Order). No two nodes can have the same set of labels. Every relationship has a direction. Follow Neo4j's naming conventions: PascalCase for node labels, UPPER_SNAKE_CASE for relationship types, and camelCase for property keys. toro4n converts new names to these conventions. Labels and property keys keep runs of capitals, as in USB and IPAddress. Spaces, underscores, and hyphens always stay as written. Editing a node or relationship leaves its existing names unchanged. Each property has a key and can also have a property type, an example value, and uniqueness and existence constraints. On a node, the first property's example is shown as its caption, so put the most descriptive property first. Leave examples out unless you have realistic values. Read get_modeling_guide first and pass its guideCode. Always share the link with the user.

Input Schema

NameRequiredDescriptionDefault
nameYesThe model's name.
nodesYes
notesNo
guideCodeNoThe guideCode that get_modeling_guide returns. Required: call get_modeling_guide and read the guide before you create or edit a model.
relationshipsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / nodes / items / properties / properties / items / properties / partOfKey
      Added value: +{
      +  "description": "Set to true on every property that together identifies the node or relationship, such as orderId and lineNo on an order line. toro4n exports one key constraint over all of them, REQUIRE (n.orderId, n.lineNo) IS NODE KEY (IS RELATIONSHIP KEY on a relationship): each must be present and the combination unique. Needs Neo4j Enterprise Edition or Aura. An element has one key.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / relationships / items / properties / properties / items / properties / partOfKey
      Added value: +{
      +  "description": "Set to true on every property that together identifies the node or relationship, such as orderId and lineNo on an order line. toro4n exports one key constraint over all of them, REQUIRE (n.orderId, n.lineNo) IS NODE KEY (IS RELATIONSHIP KEY on a relationship): each must be present and the combination unique. Needs Neo4j Enterprise Edition or Aura. An element has one key.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • addedInput schema / properties / guideCode
      Added value: +{
      +  "description": "The guideCode that get_modeling_guide returns. Required: call get_modeling_guide and read the guide before you create or edit a model.",
      +  "maxLength": 100,
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a non-read-only, non-destructive, non-idempotent write, and the description layers on substantive behavior beyond them: the model is a schema not data, layout is automatic, a link is returned, new names are normalized to Neo4j conventions while explicitly edited names are left unchanged, duplicate label sets are rejected, and every relationship is directional. Those normalization and rejection rules are exactly the surprises an agent would otherwise hit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action, its return value, and the guide prerequisite are front-loaded, and most later sentences carry operational rules an agent needs. It is long, though, and the naming-convention and caption guidance reads like reference documentation that could be trimmed or moved to the guide it already mandates.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter, deeply nested mutation with no output schema, the definition covers the important unknowns: what the return value is, the mandatory guide step, naming normalization, label-set uniqueness, caption ordering, and when to omit examples. Remaining gaps are minor, such as what happens on validation failure or whether repeated calls accumulate models.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 40%, so the description has to compensate, and it does contribute real meaning: refs are self-chosen handles reused in relationships and notes, properties are in display order and the first node property's example becomes the caption, and examples should be omitted unless realistic. The naming-convention rules (PascalCase labels, UPPER_SNAKE_CASE types, camelCase keys, preserved capital runs) explain how input values are transformed, which no schema field communicates.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence names a specific verb and resource ('Creates a new graph data model'), states its inputs (nodes, relationships, notes), notes it auto-lays-out the model, and says it returns a shareable link. It also states what the model represents (a Neo4j schema, not instance data), which cleanly separates it from edit_model/get_model without ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit prerequisites and post-conditions: 'Read get_modeling_guide first and pass its guideCode' and 'Always share the link with the user.' What it does not do is explicitly route between create_model and edit_model (e.g. 'use edit_model to change an existing model'), so an agent must infer the create-vs-edit choice from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources