Skip to main content
Glama

add_element

Add an ArchiMate element to the active model by specifying its type and name. Supports optional description, folder, properties, and custom ID.

Instructions

Add a new ArchiMate element to the active model.

Call `list_supported_types` to discover valid `element_type` values
if you are not certain. The response `data.id` is the canonical
element ID; use it as `source_id`/`target_id` when adding
relationships and as `element_id` when adding view nodes.

Args:
    element_type: A supported ArchiMate element type, e.g.
        `BusinessActor`, `BusinessProcess`, `ApplicationComponent`,
        `ApplicationService`, `DataObject`, `Node`, `Artifact`,
        `Goal`, `Stakeholder`, `Grouping`, `AndJunction`,
        `OrJunction`. Use `list_supported_types` for the full list.
    name: Element name. Must be a non-empty string.
    description: Optional element documentation text.
    folder_path: Optional conceptual folder path. Roots are
        normalized: `Business`, `/Business`, and `business` resolve
        to `/Business`. Sub-folders such as `/Business/Actors` are
        preserved.
    properties: Optional custom property key-value pairs. Values are
        stored as strings.
    element_id: Optional stable element ID. When omitted a UUID is
        generated.

Returns:
    Success envelope with `data` shaped like an `ElementDetail`:
    `{id, name, type, description, properties, folder,
    incoming_relationship_ids, outgoing_relationship_ids}`.

Errors:
    `INVALID_ELEMENT_NAME` when `name` is missing or blank.
    `InvalidElementTypeError` for an unknown `element_type`.
    `ModelNotFoundError` if no model is active.
    `ModelOperationError` for a duplicate `element_id` or invalid
    folder path.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYes
element_idNo
propertiesNo
descriptionNo
folder_pathNo
element_typeYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

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

Discloses error types (INVALID_ELEMENT_NAME, InvalidElementTypeError, ModelNotFoundError, ModelOperationError) and explains folder_path normalization. Annotations (readOnlyHint=false, destructiveHint=false) are consistent with a non-destructive write operation.

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

Conciseness5/5

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

Well-structured with clear Args, Returns, and Errors sections. Every sentence adds value without redundancy. Front-loaded with the main action.

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

Completeness5/5

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

Comprehensive for a tool with 6 parameters (2 required) and an output schema. Covers all parameter behavior, return value shape, and possible errors. Leaves no ambiguity for correct invocation.

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

Parameters5/5

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

With 0% schema description coverage, the description fully compensates by detailing each parameter: example element_type values, non-empty name constraint, optional description, folder_path root normalization, properties as string key-value pairs, and element_id as optional stable ID.

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?

Description clearly states 'Add a new ArchiMate element to the active model' with specific verb and resource. It references sibling tool list_supported_types to discover valid element types, distinguishing itself from update, delete, and bulk add tools.

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?

Describes when to use list_supported_types for uncertainty about element_type. Explains how to use the response ID for relationships and view nodes, providing integration guidance. However, it does not explicitly contrast with the sibling add_elements tool for bulk operations.

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

Install Server

Other Tools

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/byrondelgado/mcp-archimate'

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