Skip to main content
Glama
aikts

Yandex Tracker MCP

Create Issue

issue_create

Create a new task in a Yandex Tracker queue. Specify queue key and summary, then set optional fields like type, priority, assignee, components, sprint, and parent to capture full task context.

Instructions

Create an issue (in russian - 'задача') in a Yandex Tracker queue. There is no template argument: read a template with issue_templates_get_all and copy its fieldTemplates values into these arguments field by field. The returned version goes stale at once, as queue triggers bump it - re-read it with issue_get.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagsNoIssue tags as array of strings.
typeNoIssue type: an object with 'id' (type ID) and/or 'key' (e.g., 'bug', 'task'), or the bare key/ID (from get_issue_types tool).
queueYesQueue key where to create the issue (e.g., 'MYQUEUE')
fieldsNoAdditional fields to set, for those without a dedicated parameter above. Field ids come from `queue_get_fields` (schema.required=true marks the mandatory ones) or `get_global_fields`, which also lists system fields such as `parent` or `estimation` that the queue listing may omit. Keys are Tracker's own camelCase ids, e.g. 'storyPoints'. An entry here overrides the dedicated parameter of the same name. Values are sent as-is: reference fields want numeric IDs as numbers or {'id': ...} objects, since a bare string may be read as a name.
parentNoParent issue reference. Object with 'id' (parent issue ID) and/or 'key' (parent issue key like 'QUEUE-123'); when both are given Tracker resolves by 'id', or the bare key.
sprintNoSprint assignments. Array of objects, each with 'id' field containing the sprint ID (integer).
projectNoProject assignment. Object with 'primary' (int, main project shortId) and optional 'secondary' (list of ints, additional project shortIds).
summaryYesIssue title/summary
assigneeNoAssignee login or UID
priorityNoIssue priority: an object with 'id' (priority ID) and/or 'key' (e.g., 'critical', 'normal'), or the bare key/ID (from get_priorities tool).
followersNoIssue followers/watchers. Array of objects, each with an 'id' field holding the user ID (uid) or login.
componentsNoQueue components. Array of objects with either 'id' (numeric component ID, from queue_get_components or queue_get_metadata with expand=['components']) or 'name' (component name). Tracker resolves numbers as IDs and strings as names, so the object form is required to avoid a 422 on a numeric-looking name.
descriptionNoIssue description (use markdown formatting)
markup_typeNoMarkup type for description text. Use 'md' for YFM (markdown) markup.md

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
keyNo
epicNo
tagsNo
typeNo
spentNo
startNo
votesNo
boardsNoAgile boards the issue shows up on. Tracker fills this in from the boards' own filters - an issue is not assigned to a board directly, so this is read-only. Use the board id with `board_get`, `board_get_columns` or `board_get_sprints`.
parentNo
sprintNoSprints the issue is in. Use `board_get_sprints` to look up the sprints of a board, and pass a sprint id to `issue_update` to move the issue between them.
statusNo
uniqueNo
summaryNo
versionNo
assigneeNo
deadlineNo
priorityNo
createdAtNo
createdByNo
updatedAtNo
updatedByNo
componentsNo
estimationNo
descriptionNo
storyPointsNo
previousStatusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.10.0
    • changedInput schema / $defs / IssueComponentRef / properties / id / description
      Previous value: -"Component ID (numeric, as returned by queue_get_metadata with expand=['components']). A numeric string is accepted and sent as a number."New value: +"Component ID (numeric, as returned by queue_get_components or queue_get_metadata with expand=['components']). A numeric string is accepted and sent as a number."
    • changedInput schema / properties / components / description
      Previous value: -"Queue components. Array of objects with either 'id' (numeric component ID, from queue_get_metadata with expand=['components']) or 'name' (component name). Tracker resolves numbers as IDs and strings as names, so the object form is required to avoid a 422 on a numeric-looking name."New value: +"Queue components. Array of objects with either 'id' (numeric component ID, from queue_get_components or queue_get_metadata with expand=['components']) or 'name' (component name). Tracker resolves numbers as IDs and strings as names, so the object form is required to avoid a 422 on a numeric-looking name."
    • changedInput schema / properties / fields / description
      Previous value: -"Additional fields to set during issue creation, for fields without a dedicated parameter above. Call `queue_get_fields` for the fields configured on the queue (schema.required=true marks the mandatory ones) and `get_global_fields` for the whole registry - system fields such as `parent` or `estimation` are settable but may be missing from the queue listing. Keys are Tracker field ids as those tools return them (camelCase, e.g. 'storyPoints'), which is also how they come back in issue responses. An entry here overrides the dedicated parameter of the same name. Values are sent to Tracker as-is: reference fields expect numeric IDs as numbers (or {'id': ...} objects), because a bare string may be resolved as a name."New value: +"Additional fields to set, for those without a dedicated parameter above. Field ids come from `queue_get_fields` (schema.required=true marks the mandatory ones) or `get_global_fields`, which also lists system fields such as `parent` or `estimation` that the queue listing may omit. Keys are Tracker's own camelCase ids, e.g. 'storyPoints'. An entry here overrides the dedicated parameter of the same name. Values are sent as-is: reference fields want numeric IDs as numbers or {'id': ...} objects, since a bare string may be read as a name."
    • addedOutput schema / $defs / IssueBoardReference
      Added value: +{
      +  "description": "A board an issue shows up on, as nested in an issue record.\n\nTracker spells this one differently from its other references: `name`\ninstead of `display`, and a numeric id. That id is what `board_get`,\n`board_get_columns` and `board_get_sprints` take.",
      +  "properties": {
      +    "id": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Board identifier, as taken by the `board_get`, `board_get_columns` and `board_get_sprints` tools",
      +      "title": "Id"
      +    },
      +    "name": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Board name",
      +      "title": "Name"
      +    }
      +  },
      +  "title": "IssueBoardReference",
      +  "type": "object"
      +}
    • addedOutput schema / properties / boards
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/IssueBoardReference"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Agile boards the issue shows up on. Tracker fills this in from the boards' own filters - an issue is not assigned to a board directly, so this is read-only. Use the board id with `board_get`, `board_get_columns` or `board_get_sprints`.",
      +  "title": "Boards"
      +}
    • addedOutput schema / properties / sprint / description
      Added value: +"Sprints the issue is in. Use `board_get_sprints` to look up the sprints of a board, and pass a sprint id to `issue_update` to move the issue between them."
  2. Changed14 schema fields changedv0.8.0
    • addedInput schema / $defs
      Added value: +{
      +  "IssueComponentRef": {
      +    "description": "Queue component reference.\n\nExactly one of `id` / `name` must be set: Tracker treats numbers as\ncomponent ids and strings as component names, so `\"694\"` is a *name*.",
      +    "properties": {
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Component ID (numeric, as returned by queue_get_metadata with expand=['components']). A numeric string is accepted and sent as a number.",
      +        "title": "Id"
      +      },
      +      "name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Component name, used only when the ID is unknown",
      +        "title": "Name"
      +      }
      +    },
      +    "title": "IssueComponentRef",
      +    "type": "object"
      +  },
      +  "IssueFollowerRef": {
      +    "description": "Follower reference.",
      +    "properties": {
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "integer"
      +          }
      +        ],
      +        "description": "User ID (uid, e.g. 8000000000000034) or login (e.g. 'jdoe')",
      +        "title": "Id"
      +      }
      +    },
      +    "required": [
      +      "id"
      +    ],
      +    "title": "IssueFollowerRef",
      +    "type": "object"
      +  },
      +  "IssueParentRef": {
      +    "description": "Parent issue reference.",
      +    "properties": {
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Parent issue ID",
      +        "title": "Id"
      +      },
      +      "key": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Parent issue key (e.g., 'QUEUE-123')",
      +        "title": "Key"
      +      }
      +    },
      +    "title": "IssueParentRef",
      +    "type": "object"
      +  },
      +  "IssuePriorityRef": {
      +    "description": "Priority reference.",
      +    "properties": {
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Priority ID",
      +        "title": "Id"
      +      },
      +      "key": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Priority key (e.g., 'critical', 'normal')",
      +        "title": "Key"
      +      }
      +    },
      +    "title": "IssuePriorityRef",
      +    "type": "object"
      +  },
      +  "IssueProjectRef": {
      +    "description": "Project configuration for an issue.",
      +    "properties": {
      +      "primary": {
      +        "anyOf": [
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Primary project ID (shortId of the project)",
      +        "title": "Primary"
      +      },
      +      "secondary": {
      +        "anyOf": [
      +          {
      +            "items": {
      +              "type": "integer"
      +            },
      +            "type": "array"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Secondary project IDs (shortId of additional projects)",
      +        "title": "Secondary"
      +      }
      +    },
      +    "title": "IssueProjectRef",
      +    "type": "object"
      +  },
      +  "IssueSprintRef": {
      +    "description": "Sprint reference.",
      +    "properties": {
      +      "id": {
      +        "description": "Sprint ID",
      +        "title": "Id",
      +        "type": "integer"
      +      }
      +    },
      +    "required": [
      +      "id"
      +    ],
      +    "title": "IssueSprintRef",
      +    "type": "object"
      +  },
      +  "IssueTypeRef": {
      +    "description": "Issue type reference.",
      +    "properties": {
      +      "id": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Issue type ID",
      +        "title": "Id"
      +      },
      +      "key": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null,
      +        "description": "Issue type key (e.g., 'bug', 'task')",
      +        "title": "Key"
      +      }
      +    },
      +    "title": "IssueTypeRef",
      +    "type": "object"
      +  }
      +}
    • addedInput schema / properties / components
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/IssueComponentRef"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Queue components. Array of objects with either 'id' (numeric component ID, from queue_get_metadata with expand=['components']) or 'name' (component name). Tracker resolves numbers as IDs and strings as names, so the object form is required to avoid a 422 on a numeric-looking name.",
      +  "title": "Components"
      +}
    • changedInput schema / properties / description / description
      Previous value: -"Issue description"New value: +"Issue description (use markdown formatting)"
    • changedInput schema / properties / fields / description
      Previous value: -"Additional fields to set during issue creation. IMPORTANT: Before creating an issue, you MUST call `queue_get_fields` to get available fields (it returns both global and local fields by default). Fields with schema.required=true are mandatory and must be provided. Use the field's `id` property as the key in this map (e.g., {'fieldId': 'value'})."New value: +"Additional fields to set during issue creation, for fields without a dedicated parameter above. Call `queue_get_fields` for the fields configured on the queue (schema.required=true marks the mandatory ones) and `get_global_fields` for the whole registry - system fields such as `parent` or `estimation` are settable but may be missing from the queue listing. Keys are Tracker field ids as those tools return them (camelCase, e.g. 'storyPoints'), which is also how they come back in issue responses. An entry here overrides the dedicated parameter of the same name. Values are sent to Tracker as-is: reference fields expect numeric IDs as numbers (or {'id': ...} objects), because a bare string may be resolved as a name."
    • addedInput schema / properties / followers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/IssueFollowerRef"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Issue followers/watchers. Array of objects, each with an 'id' field holding the user ID (uid) or login.",
      +  "title": "Followers"
      +}
    • addedInput schema / properties / markup_type
      Added value: +{
      +  "default": "md",
      +  "description": "Markup type for description text. Use 'md' for YFM (markdown) markup.",
      +  "title": "Markup Type",
      +  "type": "string"
      +}
    • addedInput schema / properties / parent
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/IssueParentRef"
      +    },
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Parent issue reference. Object with 'id' (parent issue ID) and/or 'key' (parent issue key like 'QUEUE-123'); when both are given Tracker resolves by 'id', or the bare key.",
      +  "title": "Parent"
      +}
    • changedInput schema / properties / priority / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/IssuePriorityRef"
      +  },
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / priority / description
      Previous value: -"Priority key (from get_priorities tool,)"New value: +"Issue priority: an object with 'id' (priority ID) and/or 'key' (e.g., 'critical', 'normal'), or the bare key/ID (from get_priorities tool)."
    • addedInput schema / properties / project
      Added value: +{
      +  "anyOf": [
      +    {
      +      "$ref": "#/$defs/IssueProjectRef"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Project assignment. Object with 'primary' (int, main project shortId) and optional 'secondary' (list of ints, additional project shortIds)."
      +}
    • addedInput schema / properties / sprint
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "$ref": "#/$defs/IssueSprintRef"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Sprint assignments. Array of objects, each with 'id' field containing the sprint ID (integer).",
      +  "title": "Sprint"
      +}
    • addedInput schema / properties / tags
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Issue tags as array of strings.",
      +  "title": "Tags"
      +}
    • changedInput schema / properties / type / anyOf
      Previous value: -[
      -  {
      -    "type": "integer"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "$ref": "#/$defs/IssueTypeRef"
      +  },
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "integer"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / type / description
      Previous value: -"Issue type id (from get_issue_types tool)"New value: +"Issue type: an object with 'id' (type ID) and/or 'key' (e.g., 'bug', 'task'), or the bare key/ID (from get_issue_types tool)."
  3. Addedv0.6.3

TDQS

A4.4/5.0
Behavior4/5

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

readOnlyHint=false already marks this as a write operation, and the description adds genuinely new behavioral context: the returned version goes stale at once because queue triggers bump it, plus a concrete mitigation (re-read with issue_get). This goes beyond what the schema or annotations convey. It could additionally disclose permission requirements or side effects like notifications, which keeps it at a 4 rather than a 5.

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

Conciseness5/5

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

Three sentences, zero filler: the first states purpose, the second covers the template workflow, the third warns about version staleness. The core purpose is front-loaded ahead of the caveats, and every sentence earns its place.

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 14-parameter create tool, the schema documents parameters, the output schema covers return values, and the description covers the workflow gotchas an agent would otherwise trip on. The template-argument absence and stale-version behavior are the critical non-obvious pieces, and both are addressed; no blocking information is missing.

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 description coverage is 100%, so the schema already documents all 14 parameters, putting the baseline at 3. The description adds value by warning that no template parameter exists and instructing the agent to copy fieldTemplates values into the regular arguments field by field — preventing an invocation that passes a nonexistent argument.

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?

The description states a specific verb and resource: 'Create an issue ... in a Yandex Tracker queue,' with the Russian synonym 'задача' added to remove ambiguity for a term that has multiple meanings. The verb clearly separates it from read/update/close siblings like issue_get, issue_update, and issue_close without needing to open any schema.

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?

The description gives explicit guidance for the genuinely non-obvious workflow: there is no template argument, so the agent must read a template via issue_templates_get_all and copy its fieldTemplates values into these arguments field by field. It also routes post-create follow-up to issue_get when the version needs re-reading. It does not enumerate when-not-to-use conditions against mutation siblings, but the template case is the one that would actually cause a failed call.

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