Skip to main content
Glama

create_epic

Create an Epic on one project. Epics group related tasks under a business theme. Required: projectId, title (2-200 chars). "name" is accepted as a deprecated alias for title (until 2026-11-27). Optional: description (up to 5000 chars), color (hex like "#6366F1" or CSS name; defaults to indigo). The new epic is appended at the end of the project's epic order. Caller must have project.content.create on the project (default: project MEMBER+).

Input Schema

NameRequiredDescriptionDefault
nameNoDEPRECATED alias for title (accepted until 2026-11-27). Prefer title.
colorNoHex like "#6366F1" or CSS colour name.
titleNoEpic title, 2-200 chars (canonical field name).
projectIdYesProject to attach the epic to.
descriptionNoUp to 5000 chars.
idempotencyKeyNoOptional idempotency key. Pass a stable unique value (e.g. a UUID) to make this create safe to retry: calling again with the same key within 24h - even from a new session after a reconnect - replays the original result and creates no duplicate. Org-scoped; works across conversations.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare this is a non-read-only, non-destructive, non-idempotent write; the description adds material context beyond them: the required auth scope, the positional side effect ('appended at the end of the project's epic order'), and the deprecation window for the 'name' alias. Auth requirements and ordering side effects are exactly the kind of behavior an agent cannot infer from the hints.

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 required fields, then optional fields, then side effect and permission — a logical order with no filler. It is dense but not padded, though the alias/deprecation detail is repeated verbatim from the schema and could be trimmed.

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

Completeness4/5

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

For a 6-param mutation tool with no output schema and full annotation coverage, the description supplies purpose, validation bounds, auth scope, ordering behavior, and deprecation timing. It does not say what the call returns (e.g. the new epic's id) or whether duplicate titles are permitted, which are minor residual gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter including the deprecated alias and idempotencyKey semantics. The description largely restates those constraints (title 2-200, description 5000, color hex/default indigo) rather than adding syntax the schema lacks, so the baseline 3 applies.

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+resource ('Create an Epic on one project') and immediately defines the domain concept ('Epics group related tasks under a business theme'). This clearly separates it from create_task, create_project, and update_epic in the sibling list.

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?

Gives the scoping condition ('on one project'), the required inputs, and the prerequisite permission ('project.content.create, default project MEMBER+'), which tells the agent whether the call will succeed. It does not explicitly name update_epic as the alternative for modification or state when not to use it, so it stops short of full routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.