Skip to main content
Glama
Capacities MCP Server

Capacities MCP Server

Create Capacities Object

create_object

Create a new object of any structure in your Capacities space, setting scalar properties, labels, relations, and Markdown body content.

Instructions

Create a new object of any structure in your Capacities space. Call get_space_info first to get structure_id, property ids, label options, and relation target types. Scalar properties (text/url/number/boolean/date) go in properties keyed by property NAME or id; dates are ISO-8601 strings. Labels go in labels (keyed by property NAME or id, values are option NAMES) and relations go in relations (keyed by property NAME or id, values are entity NAMES). Relations and labels are set by NAME and resolved strictly — an unknown name is an error, never a guess. Pass create_missing_relations: true to auto-create unmatched relation targets. update_object (not this tool) replaces; this creates.

Input Schema

NameRequiredDescriptionDefault
bodyNoMarkdown body appended to the object after creation. Capacities markdown conventions apply in the body: `() text` creates and links a new Task; `#tag` creates or links a Tag; `[[Name]]` links an EXISTING object by title (renders as plain text if no such object exists — it does NOT create one). Note `() ` and `#` create objects as a side effect.
titleYesTitle of the new object
labelsNoLabel props keyed by property NAME or id; value(s) are option NAME(s)
relationsNoEntity (relation) props keyed by property NAME or id; value(s) are entity NAME(s), resolved strictly
propertiesNoScalar props keyed by property NAME or id: text/url/number/boolean/date. Date = ISO-8601 string.
collectionsNoCollection ids to add the object to
structure_idYesStructure id (UUID or built-in id like RootTask) from get_space_info
create_missing_relationsNoAuto-create relation targets that don't already exist

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.3.1

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does disclose real behavior: name resolution is strict ('an unknown name is an error, never a guess'), `create_missing_relations` is an explicit opt-in, and body markdown has side effects that create objects. However, it never says what the tool returns or how to obtain the new object's id, and says nothing about permission/auth or duplicate-title handling.

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?

Front-loaded with purpose, then prerequisite, then parameter grouping, then the mutation caveat—so the most important routing information arrives early. It is dense and backtick-heavy, with some overlap against the schema's parameter descriptions, but no sentence is purely filler.

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

Completeness3/5

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

For an 8-parameter nested-object mutation tool with no output schema, the definition covers inputs well but omits the return shape entirely—an agent does not learn whether the created object's id is returned or whether a follow-up `get_object`/search is needed to link it. That is a real gap for a create tool whose typical next step is linking.

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 coverage is 100%, so the baseline is 3; the description still adds meaning by splitting parameters into semantic groups (scalar → `properties`, options → `labels`, entities → `relations`), stating that dates are ISO-8601, and clarifying that names resolve strictly rather than fuzzily. That strictness contract is the key addition beyond the schema's generic 'resolved strictly' phrasing.

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?

States a specific verb and resource ('Create a new object') and scopes it ('of any structure in your Capacities space'). It also explicitly separates itself from sibling `update_object` ('not this tool... replaces; this creates'), so an agent can route without opening schemas.

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

Usage Guidelines5/5

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

Gives an explicit prerequisite workflow: 'Call `get_space_info` first to get structure_id, property ids, label options, and relation target types.' It also names the alternative for the adjacent case (`update_object` for replacement), covering both when-to-use and when-not.

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