Skip to main content
Glama
ProTech001
by ProTech001

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
MMAR_API_URLNoThe URL of the MM-AR API. Defaults to http://localhost:8000.http://localhost:8000

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
mmar_loginA

Log in to the MM-AR metamodeling platform. This MUST be called first before using any other MM-AR tools. Returns a confirmation that the session is active.

mmar_check_sessionA

Check if there is an active MM-AR session (i.e., if the user is currently logged in).

mmar_logoutA

Log out from the MM-AR platform by clearing the stored session token.

mmar_list_scene_typesA

List all available modeling languages (SceneTypes) in MM-AR. Each SceneType defines a modeling language with its classes, relations, and rules. Returns an array of SceneType objects with their UUIDs and names.

mmar_get_scene_typeA

Get the full details of a specific modeling language (SceneType) by its UUID. Returns the complete SceneType including all its classes, relationclasses, attributes, ports, and roles.

mmar_get_classes_for_scene_typeA

Get all classes (node/shape types) defined in a specific modeling language (SceneType). Classes represent the elements that can be placed on a diagram.

mmar_get_relationclasses_for_scene_typeA

Get all relation types (edge/connection types) defined in a specific modeling language (SceneType). Relationclasses define how elements can be connected to each other, including their roles (source/destination rules).

mmar_get_classA

Get the full details of a specific class (node type) by its UUID. Returns the class with its attributes, ports, and geometry (VizRep).

mmar_get_relationclassA

Get the full details of a specific relation type (edge type) by its UUID. Returns the relationclass with its role_from, role_to, attributes, and connection rules.

mmar_list_attribute_typesA

List all available attribute types in MM-AR (e.g., String, Float, Integer, Boolean, Enumeration, Table). These are the primitive data types that attributes can use. You MUST know these UUIDs before creating attributes on classes or relationclasses.

mmar_get_attribute_typeA

Get full details of a specific attribute type by UUID. Returns the type definition including its regex validation pattern, name, and description.

mmar_get_attributeA

Get the full details of a specific meta-attribute by UUID. Returns the attribute definition including its type, default value, sequence, and UI component.

mmar_get_roleA

Get the full details of a specific role by UUID. Returns the role definition including its class_references (which classes it can connect to), port_references, and cardinality (min/max).

mmar_get_portB

Get the full details of a specific port by UUID. Ports are connection points on classes.

mmar_create_scene_typeA

Create a complete modeling language (SceneType) in MM-AR in a SINGLE atomic transaction. This is the primary way to create metamodels.

IMPORTANT RULES:

  1. Pre-generate ALL UUIDs (v4) for every object in the payload (SceneType, Classes, Attributes, RelationClasses, Roles).

  2. Call mmar_list_attribute_types FIRST to get AttributeType UUIDs (e.g., String, Float).

  3. Classes are created BEFORE RelationClasses — role class_references must point to class UUIDs in the same payload.

  4. Duplicate UUID → 409 CONFLICT.

  5. The entire operation is atomic — all or nothing.

The scene_type_data JSON must follow this structure: { "uuid": "", "name": "My Language", "description": "...", "classes": [{ uuid, name, geometry, attributes: [{ uuid, name, attribute_type: { uuid, name }, default_value, sequence }], ports: [] }], "relationclasses": [{ uuid, name, geometry, role_from: { uuid, name, class_references: [{ uuid, min, max }] }, role_to: { uuid, name, class_references: [{ uuid, min, max }] }, attributes: [], ports: [] }], "attributes": [], "ports": [], "procedures": [] }

mmar_update_scene_typeA

Update an existing modeling language (SceneType). Uses smart diff-based updates by default — new children are added, existing ones are updated.

Set hardpatch=true for FULL REPLACEMENT mode: children not in the payload will be DELETED. Use with caution.

Send the complete desired state of the SceneType (same structure as mmar_create_scene_type).

mmar_delete_scene_typeA

Delete a modeling language (SceneType) and ALL its contents (classes, relationclasses, attributes, etc.) permanently. This cannot be undone.

mmar_create_classA

Create a new class (node/shape type) and add it to an existing SceneType. Use this for incremental metamodel building instead of recreating the whole SceneType.

The class_data JSON should include: uuid, name, geometry (VizRep function or null), is_reusable, is_abstract, attributes (array), and ports (array).

mmar_update_classA

Update an existing class (node type). Send the complete desired state — the server will diff and apply changes to attributes, ports, and other properties.

mmar_delete_classA

Delete a class (node type) from a metamodel permanently. This also removes its attributes, ports, and any role references to it.

mmar_create_relationclassA

Create a new relationclass (edge/connection type) and add it to an existing SceneType.

IMPORTANT: The classes referenced in role_from.class_references and role_to.class_references MUST already exist in the SceneType.

The relationclass_data JSON should include: uuid, name, geometry, role_from (with uuid, name, class_references[{uuid, min, max}]), role_to (same structure), bendpoint, attributes, ports.

mmar_update_relationclassA

Update an existing relationclass (edge type). Send the complete desired state — the server will diff and apply changes to roles, attributes, and other properties.

mmar_delete_relationclassA

Delete a relationclass (edge type) from a metamodel permanently. This also removes its roles, attributes, and ports.

mmar_create_attribute_for_classA

Add a new attribute to an existing class. The attribute_data must include uuid, name, attribute_type (with uuid and name of an existing AttributeType), default_value, sequence, and ui_component.

mmar_create_attribute_for_scene_typeA

Add a new attribute to an existing SceneType (scene-level attribute, not on a class). Same structure as class attributes.

mmar_update_attributeB

Update an existing meta-attribute. Send the updated attribute data including name, default_value, sequence, ui_component, and attribute_type.

mmar_update_roleA

Update an existing role on a relationclass. Use this to change cardinality (min/max) or which classes a role can connect to (class_references). Send the complete desired state of the role.

mmar_create_portA

Create a new port (connection point) on a class. Ports define where connections can attach to an element.

mmar_update_portA

Update an existing port. Send the complete desired state of the port.

mmar_list_scene_instancesA

List all model instances (diagrams) for a specific modeling language (SceneType). Returns an array of SceneInstance objects with their UUIDs, names, and content.

mmar_get_scene_instanceA

Get the full details of a specific model instance (diagram) by its UUID. Returns the complete SceneInstance including all class instances, relationclass instances, attribute instances, role instances, and port instances.

mmar_create_scene_instanceA

Create a new model instance (diagram) for a specific SceneType. The scene_instance_data should be a JSON object with at minimum: uuid (generate a new UUID v4), name, and optionally class_instances, relationclasses_instances, role_instances, attribute_instances, and port_instances arrays.

mmar_update_scene_instanceA

Update an existing model instance (diagram). Uses smart diffing — new elements are added, existing ones updated.

IMPORTANT: This is the RECOMMENDED way to add connections (relationclass instances). Include uuid_scene_type in the payload. New relationclasses_instances entries will be created.

The payload must include at minimum: uuid, name, uuid_scene_type. Add relationclasses_instances array with connection objects including role_instance_from/to.

mmar_delete_scene_instanceA

Delete a specific model instance (diagram) and all its contents by UUID.

mmar_get_class_instancesA

Get all class instances (elements/nodes) within a specific scene instance (diagram).

mmar_get_class_instanceA

Get the full details of a specific class instance (element/node) by its UUID. Returns the class instance with its attribute instances, port instances, and position.

mmar_create_class_instanceA

Create a new class instance (element/node) within a scene instance.

IMPORTANT: The API does NOT auto-create attribute instances. You MUST include them in the payload. For each attribute on the meta-Class, create an attribute_instance with:

  • uuid: new UUIDv4

  • name: same as meta-attribute name

  • value: the desired value (or the meta-attribute's default_value)

  • uuid_attribute: the meta-attribute's UUID

Example payload: { "uuid": "", "uuid_class": "", "name": "My Element", "coordinates_2d": {"x": 0, "y": 0, "z": 0}, "attribute_instance": [ { "uuid": "", "name": "Name", "value": "My Element", "uuid_attribute": "" } ] }

mmar_update_class_instanceA

Update an existing class instance. Send the complete desired state including position, attribute instances, etc.

mmar_delete_class_instanceA

Delete a specific class instance (element/node) from a diagram by its UUID.

mmar_get_relationclass_instancesA

Get all relationclass instances (connections/edges) within a specific scene instance (diagram).

mmar_get_relationclass_instanceA

Get the full details of a specific relationclass instance (connection/edge) by its UUID.

mmar_create_relationclass_instanceA

Create a new relationclass instance (connection/edge) within a scene instance.

Include:

  • uuid, uuid_class, uuid_relationclass (all set to the meta-Relationclass UUID)

  • role_instance_from: { uuid, uuid_role, uuid_has_reference_class_instance }

  • role_instance_to: { uuid, uuid_role, uuid_has_reference_class_instance }

  • attribute_instance: [...] (for each attribute on the meta-Relationclass)

line_points are AUTO-POPULATED from source/target coordinates — you do NOT need to provide them.

mmar_update_relationclass_instanceA

Update an existing relationclass instance (connection/edge). Send the complete desired state.

mmar_delete_relationclass_instanceA

Delete a specific relationclass instance (connection/edge) from a diagram by its UUID.

mmar_get_attribute_instanceA

Get the full details of a specific attribute instance by its UUID. Returns the attribute value, type reference, and which element it belongs to.

mmar_get_attribute_instances_for_class_instanceA

Get all attribute instances for a specific class instance (element).

mmar_get_attribute_instances_for_relationclass_instanceA

Get all attribute instances for a specific relationclass instance (connection).

mmar_update_attribute_instanceA

Update the value of an attribute instance. Use this to change data values on elements (e.g., setting a name, description, or any custom attribute).

mmar_delete_attribute_instanceB

Delete a specific attribute instance by its UUID.

mmar_get_role_instanceA

Get the full details of a specific role instance by its UUID. Returns the role instance with its class instance reference and cardinality.

mmar_get_role_from_for_relationclass_instanceA

Get the source (from) role instance of a specific relationclass instance.

mmar_get_role_to_for_relationclass_instanceA

Get the destination (to) role instance of a specific relationclass instance.

mmar_update_role_instanceA

Update an existing role instance. Use this to change which class instance a connection endpoint references.

mmar_get_port_instanceA

Get the full details of a specific port instance by its UUID.

mmar_get_port_instances_for_scene_instanceA

Get all port instances within a specific scene instance.

mmar_create_port_instanceB

Create a new port instance within a scene instance.

mmar_update_port_instanceA

Update an existing port instance. Send the complete desired state.

mmar_delete_port_instanceA

Delete a specific port instance by its UUID.

mmar_get_bendpoints_for_relationclass_instanceA

Get all bendpoint instances for a specific relationclass instance (connection). Bendpoints define intermediate waypoints on a connection line.

mmar_create_bendpointA

Create a new bendpoint on a relationclass instance (connection). Bendpoints add waypoints to the connection line for routing.

mmar_update_bendpointA

Update an existing bendpoint. Use this to change the waypoint position.

mmar_delete_bendpointA

Delete a specific bendpoint from a connection by its UUID.

Prompts

Interactive templates invoked by user choice

NameDescription
create-metamodelGuided workflow for creating a complete modeling language (SceneType) from a natural-language description. Walks through AttributeType discovery, UUID generation, class/relationclass design, VizRep geometry, and one-shot creation.
create-modelGuided workflow for creating a model instance (diagram) from a natural-language description of a system. Discovers the metamodel structure and creates elements + connections.
analyze-modelGuided workflow for analyzing an existing model — checks completeness, validates against metamodel rules, and identifies potential issues.

Resources

Contextual data attached and managed by the client

NameDescription
platform-infoGeneral information about the MM-AR metamodeling platform, its concepts, and how to use the MCP tools.
vizrep-templatesVisual Representation (VizRep) geometry code templates for common modeling element shapes. CRITICAL: Elements without geometry cannot be dragged onto the modeling canvas.
metamodel-schemaExact JSON structure required for mmar_create_scene_type. Use this as your template when building SceneType payloads.
attribute-type-catalogStatic reference of all pre-defined AttributeTypes with their semantics and recommended ui_component values. Call mmar_list_attribute_types at runtime to get current UUIDs.
example-metamodelA complete, working Petri Net metamodel JSON payload that can be passed directly to mmar_create_scene_type. Use as a ground-truth reference for structure and geometry. NOTE: Replace AttributeType UUIDs with values from mmar_list_attribute_types.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ProTech001/mmar-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server