Skip to main content
Glama
Capacities MCP Server

Capacities MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
LOG_LEVELNoLogging level (default: info)info
CAPACITIES_API_TOKENYesYour Capacities API token
CAPACITIES_API_BASE_URLNoBase URL for the Capacities API (default: https://api.capacities.io)https://api.capacities.io

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
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_contentA

Search Capacities objects in your space by title. When Capacities has semantic search enabled for the account, it also returns objects related by meaning; those are listed after the title matches under a "Related by meaning" label. limit caps the combined list. Optionally scope by structureIds (from get_space_info).

list_spacesB

Get a list of all your Capacities spaces

get_space_infoB

Get the structures (object types), their writable properties, and collections for your Capacities space.

add_to_daily_noteA

Add content to today's daily note in Capacities. Supports markdown. Each call appends to the existing daily note.

save_weblinkA

Save a URL as a weblink object. Optional title/description override the auto-fetched page metadata (these are the ONLY fields settable on a weblink, and only at save time — weblinks are create-only in the API). To tag or annotate a weblink, put #tag, () tasks, or [[links]] in notes; Category/Topic and other properties cannot be set via the API yet.

create_objectA

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.

update_objectA

Replace typed properties of an existing object (PATCH /object). Only the properties you name are changed; unnamed properties are left intact. WARNING: for a named property this REPLACES its value — it does NOT append. Naming a multi-value relation/label drops the prior list and sets exactly what you pass. To ADD to a relation, first read the current values (this tool reports them) and pass the full desired list. The optional body param is a convenience: after the PATCH, it also appends markdown to the object's body (POST /blocks/append) — the same additive write append_to_object performs on its own. Labels and relations are set by NAME and resolved strictly — an unknown name is an error. properties/labels/relations map keys accept a property NAME or id. Pass create_missing_relations: true to auto-create unmatched relation targets.

append_to_objectA

Append markdown to the END of an existing object's body (POST /blocks/append) — additive, never removes, and never touches typed properties. This is the body counterpart to update_object, which replaces typed properties (scalars/labels/relations) via PATCH /object. Use update_object to change properties; use this to add notes/body.

get_objectA

Read an object rendered as Markdown (YAML frontmatter of its properties + body). A Labels: line before the markdown lists every label property (e.g. Status, Priority) read from the STRUCTURED object, as <propertyId>: <Option>[, <Option>] entries separated by ; ((none) when empty). Where it disagrees with the frontmatter, the Labels line is authoritative: Capacities' markdown render omits some statuses (e.g. Open Question, Backlog, On Hold) and shows Complete as Done.

delete_objectA

Delete an object. By default (hard_delete=false) it moves to trash and is recoverable in Capacities. Pass hard_delete=true to permanently delete — this cannot be undone.

find_objectsA

Locate objects of one structure (NAME or id from get_space_info), then filter and sort client-side on properties the API cannot search. Seed by title_hint, by tag (a tag NAME), both, or neither — omit title_hint to list by tag or list the whole type. Results are limited to objects whose title contains title_hint (case, accents and punctuation ignored; it needs a letter or digit); short numeric hints also match dates ("1:1" matches 2024-11-12). A title search that returns 50 results lists the whole type instead. A listing reads up to page_budget pages of 100 (default 12, max 25) and orders candidates by the date in their title, newest first (oldest first for an ascending date sort; undated titles last), before fetch_cap (default 30, max 50) cuts them. With no filters and no sort, matches are listed without fetching each object (up to limit, default 30). Per call: at most 5 relation filters, and a call that lists makes at most 45 requests. filters are keyed by property NAME or id: a date is an absolute ISO string (a date-only value matches that day, a full timestamp that exact instant) or {after,before}; a label is an option NAME; a relation/tag is an object NAME; text/number/boolean are equals. sort is {by, order}; missing values sort last. A line starting "Note:" means the result may be incomplete; seed_complete and candidates_complete (in the result's second text block, a JSON object) say which part, and it is the full answer only when both are true and matched equals returned. Returns ids + titles + filtered/sorted values, NO bodies (use get_object); cannot follow backlinks.

link_to_contextA

Add a task to another object's Context. A task's Context in Capacities is derived, not a property: it is the set of objects (people, projects, meetings, ...) whose body embeds the task as an EntityBlock. This appends an EntityBlock embedding the task to the END of the target object's body (POST /blocks/append). Idempotent: if the target already embeds the task anywhere in its body, nothing is written and the existing block id(s) are reported. task_id must be a Task (RootTask).

unlink_from_contextA

Remove a task from another object's Context. A task's Context in Capacities is derived, not a property: it is the set of objects (people, projects, meetings, ...) whose body embeds the task as an EntityBlock. This deletes EVERY EntityBlock on the target object that embeds the task (at any depth, in any block field), one DELETE /block each; nested content inside a removed block goes with it. If the target does not embed the task, nothing is removed.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
Capacities SpacesList of all your Capacities spaces

TDQS

A3.9/5.0

Scored across 13 tools

Disambiguation4/5

Most tools are clearly distinct: create/update/append/delete act on different object aspects, and link/unlink are paired opposites. The main overlap is search_content versus find_objects, both used to locate objects; the descriptions distinguish global title/semantic search from structure-scoped filtering, but an agent may still hesitate between them.

Naming Consistency4/5

Names are consistently snake_case and verb-led (list_, get_, create_, update_, append_, delete_, search_, find_, link_/unlink_). A few use prepositions such as add_to_daily_note and link_to_context rather than strict verb_noun, but the overall pattern remains predictable.

Tool Count5/5

13 tools is well within the ideal range and each maps to a distinct capability: space discovery, object CRUD/append, search/listing, daily notes, weblinks, and task context linking. The set does not feel padded or thin.

Completeness4/5

Core lifecycle coverage is strong: spaces/info, object read/create/update/delete/append, search/find, daily note appends, weblinks, and context link/unlink. Gaps are minor and partly API-imposed: weblinks are create-only, and there is no full-text body search or bulk operation, but agents can work around these with existing tools.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues