Skip to main content
Glama
useshortcut

Shortcut MCP Server

Official
by useshortcut

Epics: Search

epics-search
Read-onlyIdempotent

Find Shortcut epics using filters for ID, name, description, state, owner, requester, team, dates, and more. Filter by status, deadlines, labels, and comments to locate specific epics.

Instructions

Find Shortcut epics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idNoEpic ID
dueNoDate filter: "YYYY-MM-DD", "today", "yesterday", "tomorrow", or range "YYYY-MM-DD..YYYY-MM-DD" (use * for open bounds)
nameNoName contains
teamNoTeam mention name
ownerNoFilter by owner (use mention name or "me")
stateNoEpic state
isDoneNoFilter by completed status
commentNoComment contains
createdNoDate filter: "YYYY-MM-DD", "today", "yesterday", "tomorrow", or range "YYYY-MM-DD..YYYY-MM-DD" (use * for open bounds)
updatedNoDate filter: "YYYY-MM-DD", "today", "yesterday", "tomorrow", or range "YYYY-MM-DD..YYYY-MM-DD" (use * for open bounds)
hasLabelNoFilter by presence of label
hasOwnerNoFilter by presence of owner
completedNoDate filter: "YYYY-MM-DD", "today", "yesterday", "tomorrow", or range "YYYY-MM-DD..YYYY-MM-DD" (use * for open bounds)
isOverdueNoFilter by overdue status
isStartedNoFilter by started status
objectiveNoObjective ID
requesterNoFilter by requester (use mention name or "me")
hasCommentNoFilter by presence of comment
isArchivedNoFilter by archived status
descriptionNoDescription contains
hasDeadlineNoFilter by presence of deadline
isUnstartedNoFilter by unstarted status
nextPageTokenNoPagination token from previous search

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed23 schema fields changedv0.15.1
    • changedInput schema / properties / comment / description
      Previous value: -"Find only epics matching the specified comment"New value: +"Comment contains"
    • changedInput schema / properties / completed / description
      Previous value: -"The date in \"YYYY-MM-DD\" format, or one of the keywords: \"yesterday\", \"today\", \"tomorrow\", or a date range in the format \"YYYY-MM-DD..YYYY-MM-DD\". The date range can also be open ended by using \"*\" for one of the bounds. Examples: \"2023-01-01\", \"today\", \"2023-01-01..*\" (from Jan 1, 2023 to any future date), \"*.2023-01-31\" (any date up to Jan 31, 2023), \"today..*\" (from today onwards), \"*.yesterday\" (any date up to yesterday). The keywords cannot be used to calculate relative dates (e.g. the following are not valid: \"today-1\" or \"tomorrow+1\")."New value: +"Date filter: \"YYYY-MM-DD\", \"today\", \"yesterday\", \"tomorrow\", or range \"YYYY-MM-DD..YYYY-MM-DD\" (use * for open bounds)"
    • changedInput schema / properties / created / description
      Previous value: -"The date in \"YYYY-MM-DD\" format, or one of the keywords: \"yesterday\", \"today\", \"tomorrow\", or a date range in the format \"YYYY-MM-DD..YYYY-MM-DD\". The date range can also be open ended by using \"*\" for one of the bounds. Examples: \"2023-01-01\", \"today\", \"2023-01-01..*\" (from Jan 1, 2023 to any future date), \"*.2023-01-31\" (any date up to Jan 31, 2023), \"today..*\" (from today onwards), \"*.yesterday\" (any date up to yesterday). The keywords cannot be used to calculate relative dates (e.g. the following are not valid: \"today-1\" or \"tomorrow+1\")."New value: +"Date filter: \"YYYY-MM-DD\", \"today\", \"yesterday\", \"tomorrow\", or range \"YYYY-MM-DD..YYYY-MM-DD\" (use * for open bounds)"
    • changedInput schema / properties / description / description
      Previous value: -"Find only epics matching the specified description"New value: +"Description contains"
    • changedInput schema / properties / due / description
      Previous value: -"The date in \"YYYY-MM-DD\" format, or one of the keywords: \"yesterday\", \"today\", \"tomorrow\", or a date range in the format \"YYYY-MM-DD..YYYY-MM-DD\". The date range can also be open ended by using \"*\" for one of the bounds. Examples: \"2023-01-01\", \"today\", \"2023-01-01..*\" (from Jan 1, 2023 to any future date), \"*.2023-01-31\" (any date up to Jan 31, 2023), \"today..*\" (from today onwards), \"*.yesterday\" (any date up to yesterday). The keywords cannot be used to calculate relative dates (e.g. the following are not valid: \"today-1\" or \"tomorrow+1\")."New value: +"Date filter: \"YYYY-MM-DD\", \"today\", \"yesterday\", \"tomorrow\", or range \"YYYY-MM-DD..YYYY-MM-DD\" (use * for open bounds)"
    • changedInput schema / properties / hasComment / description
      Previous value: -"Find only entities that have a comment when true, or only entities that do not have a comment when false. Example: hasOwner: true will find stories with an owner, hasOwner: false will find stories without an owner."New value: +"Filter by presence of comment"
    • changedInput schema / properties / hasDeadline / description
      Previous value: -"Find only entities that have a deadline when true, or only entities that do not have a deadline when false. Example: hasOwner: true will find stories with an owner, hasOwner: false will find stories without an owner."New value: +"Filter by presence of deadline"
    • changedInput schema / properties / hasLabel / description
      Previous value: -"Find only entities that have a label when true, or only entities that do not have a label when false. Example: hasOwner: true will find stories with an owner, hasOwner: false will find stories without an owner."New value: +"Filter by presence of label"
    • changedInput schema / properties / hasOwner / description
      Previous value: -"Find only entities that have an owner when true, or only entities that do not have an owner when false. Example: hasOwner: true will find stories with an owner, hasOwner: false will find stories without an owner."New value: +"Filter by presence of owner"
    • changedInput schema / properties / id / description
      Previous value: -"Find only epics with the specified public ID"New value: +"Epic ID"
    • changedInput schema / properties / isArchived / description
      Previous value: -"Find only entities that are archived when true, or only entities that are not archived when false."New value: +"Filter by archived status"
    • changedInput schema / properties / isDone / description
      Previous value: -"Find only entities that are completed when true, or only entities that are not completed when false."New value: +"Filter by completed status"
    • changedInput schema / properties / isOverdue / description
      Previous value: -"Find only entities that are overdue when true, or only entities that are not overdue when false."New value: +"Filter by overdue status"
    • changedInput schema / properties / isStarted / description
      Previous value: -"Find only entities that are started when true, or only entities that are not started when false."New value: +"Filter by started status"
    • changedInput schema / properties / isUnstarted / description
      Previous value: -"Find only entities that are unstarted when true, or only entities that are not unstarted when false."New value: +"Filter by unstarted status"
    • changedInput schema / properties / name / description
      Previous value: -"Find only epics matching the specified name"New value: +"Name contains"
    • changedInput schema / properties / nextPageToken / description
      Previous value: -"If a next_page_token was returned from the search result, pass it in to get the next page of results.  Should be combined with the original search parameters."New value: +"Pagination token from previous search"
    • changedInput schema / properties / objective / description
      Previous value: -"Find only epics matching the specified objective"New value: +"Objective ID"
    • changedInput schema / properties / owner / description
      Previous value: -"Find entities where the owner match the specified user. This must either be the user's mention name or the keyword \"me\" for the current user."New value: +"Filter by owner (use mention name or \"me\")"
    • changedInput schema / properties / requester / description
      Previous value: -"Find entities where the requester match the specified user. This must either be the user's mention name or the keyword \"me\" for the current user."New value: +"Filter by requester (use mention name or \"me\")"
    • changedInput schema / properties / state / description
      Previous value: -"Find only epics matching the specified state"New value: +"Epic state"
    • changedInput schema / properties / team / description
      Previous value: -"Find only epics matching the specified team. Should be a team's mention name."New value: +"Team mention name"
    • changedInput schema / properties / updated / description
      Previous value: -"The date in \"YYYY-MM-DD\" format, or one of the keywords: \"yesterday\", \"today\", \"tomorrow\", or a date range in the format \"YYYY-MM-DD..YYYY-MM-DD\". The date range can also be open ended by using \"*\" for one of the bounds. Examples: \"2023-01-01\", \"today\", \"2023-01-01..*\" (from Jan 1, 2023 to any future date), \"*.2023-01-31\" (any date up to Jan 31, 2023), \"today..*\" (from today onwards), \"*.yesterday\" (any date up to yesterday). The keywords cannot be used to calculate relative dates (e.g. the following are not valid: \"today-1\" or \"tomorrow+1\")."New value: +"Date filter: \"YYYY-MM-DD\", \"today\", \"yesterday\", \"tomorrow\", or range \"YYYY-MM-DD..YYYY-MM-DD\" (use * for open bounds)"
  2. Addedv1.0.0

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, fully covering the safety profile. The description adds no behavioral details beyond what annotations provide. There is no contradiction.

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

Conciseness2/5

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

The description is a single three-word sentence, which is too terse for a tool with 23 parameters. Important context about search semantics, pagination, and result behavior is omitted. It sacrifices completeness for brevity.

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

Completeness2/5

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

The tool has 23 parameters, no output schema, and no return value description. The description fails to mention pagination (nextPageToken), result format, or how filters combine. Given the complexity, the description is insufficient for the agent to use the tool confidently.

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 input schema fully documents all 23 parameters. The description adds no additional meaning beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Find Shortcut epics' clearly identifies the verb (Find) and resource (epics). It distinguishes from sibling tools like epics-get-by-id (single retrieval) and epics-create (creation) because it implies searching/filtering. However, it could more explicitly state that it supports complex filtering and pagination.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool vs alternatives. It does not mention when to prefer epics-search over epics-get-by-id for single epic retrieval or stories-search for story-level search. The description is silent on exclusions or best practices.

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

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/useshortcut/mcp-server-shortcut'

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