Skip to main content

Droost: Entity Create

droost_entity_create Write (gated)

Module: Droost core

Creates any content entity through the real entity API (validation, hooks, path aliases). Model first with droost_entities; on pathauto sites pin explicit aliases with path.pathauto=0. Config entities have dedicated composers. Gated.

Example call
{
    "tool": "droost_entity_create",
    "arguments": {
        "entity_type": "node",
        "values": {
            "type": "tool",
            "title": "droost_example_tool",
            "field_tool_label": "Example",
            "field_tool_module": "droost",
            "field_tool_tier": "read",
            "field_tool_summary": "An example."
        }
    }
}
Example response — captured live on this site
{
    "success": false,
    "message": "This tool is disabled. Enable it with: drush config:set droost.settings allow_destructive true (or via Admin → Configuration → Development → Droost), then reload the MCP server in your editor — the running server caches this flag at startup and will keep refusing until it is restarted. (To disable later, use --input-format=yaml false so the value is stored as a real boolean.)",
    "data": null
}

Creates and saves a new entity. Provide "entity_type" and "values" (a field => value map, e.g. {"type":"article","title":"Hello"}). Disabled unless droost.settings.allow_destructive is on, and only over the CLI/STDIO transport.

Input schema (JSON Schema)
{
    "type": "object",
    "properties": {
        "entity_type": {
            "type": "string",
            "description": "Entity type machine name, e.g. \"node\", \"user\", \"taxonomy_term\"."
        },
        "values": {
            "type": "object",
            "description": "Field => value map for the new entity (include \"type\"/bundle where required)."
        }
    },
    "required": [
        "entity_type",
        "values"
    ]
}