Skip to main content
Glama
velesnitski

yt-mcp

by velesnitski

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_issuesC

Search YouTrack issues using query syntax. Use named periods in curly braces for relative dates.

Args: query: YouTrack search query max_results: Max results (default: 50) instance: YouTrack instance (optional)

get_issueA

Get full details of a YouTrack issue.

Default returns a markdown render (chat-friendly). format="json" returns a normalized JSON dict — flat keys for id/summary/state/ assignee + assignee_login, a tags list, a custom_fields dict (custom field name → value), and a links list. Matches the JSON shape used by pulse and handoffs so consumers see one consistent structure across tools.

Use fields to override the field selector for power callers who need specific YT response fields. When fields is set and format="json", the raw YT response is returned unaltered (no normalization, full control). When fields is set and format="report", the markdown render may be sparse if the selector is narrower than the default.

Args: issue_id: Issue ID or URL. include_comments: Include comments in default selector (default: True). format: "report" (default markdown) or "json" (normalized dict). fields: Override the YT fields selector. Empty uses a richer default with login on assignee, presentation/text on custom-field values, and tags + created. instance: YouTrack instance (optional). include_bots: Also show workflow-automation nags and service stamps in comments (hidden by default; the hidden count is always reported). comment_chars: Per-comment truncation in compact mode (default: 200; 0 = untruncated).

get_issuesA

Batch-fetch multiple issues in one round-trip.

Composes a single #A or #B or #C query so a 20-issue enrichment pass takes one HTTP request instead of twenty. Useful when you already have a known ID list (active-focus picks, stuck-handoff IDs, daily-summary references).

Reuses get_issue's default field set + normalize_issue for consistent JSON shape across tools. Default include_comments=False because batch mode usually doesn't need them and they're heavy.

Args: ids: Comma-separated issue IDs or URLs (PROJ-1, PROJ-2, ...). Up to ~100 IDs per call — large lists should be split across multiple calls. fields: Override the YT field selector. Empty uses get_issue's expanded default. format: "report" (default compact list) or "json" (array of normalized issue dicts). include_comments: Include comments in the response (default False — batch mode rarely needs them). instance: YouTrack instance (optional).

create_issueA

Create a new issue in a YouTrack project.

Use command to set required custom fields at creation time.

Args: project: Project short name summary: Issue title description: Issue description (markdown) product: Product custom field (optional) command: YouTrack command for custom fields (e.g. 'Type Task Subsystem {Client Panel}') instance: YouTrack instance (optional)

update_issueA

Update fields of a YouTrack issue. Returns previous values for rollback.

Args: issue_id: Issue ID or URL summary: New title (empty = keep) description: New description (empty = keep) state: New state name (empty = keep) assignee: New assignee (empty = keep) product: Product field (empty = keep) add_tag: Tag to add (empty = skip) remove_tag: Tag to remove (empty = skip) command: YouTrack command for any field (e.g. 'Priority High Type Bug') instance: YouTrack instance (optional)

transition_issueA

Change an issue's State, gate-aware: set required fields first, then transition, and report the exact workflow rule if it still blocks.

YouTrack workflow scripts often gate transitions ("set Dev Estimation before To Do"). A raw update fails one opaque 400 at a time; this tool applies set_fields field-by-field first (command syntax, e.g. 'Dev Estimation 2d QA Estimation 1d'), then attempts the state change. If a gate still blocks, the blocking rule's own text is returned so the caller knows exactly what to supply — nothing is ever invented.

Args: issue_id: Issue ID or URL state: Target state name (bare, e.g. 'To Do', 'Ready for QA') set_fields: Fields to set before transitioning (command syntax; optional) instance: YouTrack instance (optional)

delete_issueA

Delete a YouTrack issue. Default: soft delete (state Obsolete). permanent=True is irreversible.

Args: issue_id: Issue ID or URL permanent: Permanently delete (default: False, soft delete) instance: YouTrack instance (optional)

get_issue_linksB

Get all linked issues for an issue.

Args: issue_id: Issue ID or URL instance: YouTrack instance (optional)

add_issue_linkB

Link two issues together.

Args: issue_id: Source issue ID or URL target_id: Target issue ID or URL link_type: Relation type (default: 'Relates') instance: YouTrack instance (optional)

remove_issue_linkA

Remove a link between two issues.

Args: issue_id: Source issue ID or URL target_id: Target issue ID or URL link_type: Relation type to remove (default: 'Relates') instance: YouTrack instance (optional)

poll_changesA

Poll for recently changed issues within the last N minutes.

Args: query: YouTrack query filter (optional) since_minutes: Minutes to look back (default: 5) max_results: Max results (default: 50) instance: YouTrack instance (optional)

count_issuesC

Count issues matching a YouTrack query.

Args: query: YouTrack search query instance: YouTrack instance (optional)

add_commentB

Add a comment to a YouTrack issue.

Args: issue_id: Issue ID or URL text: Comment text (markdown) instance: YouTrack instance (optional)

update_commentA

Update an existing comment. Returns previous text for rollback.

Args: issue_id: Issue ID or URL comment_id: Comment ID text: New comment text (markdown) instance: YouTrack instance (optional)

delete_commentA

Delete a comment from a YouTrack issue. Returns deleted text for restoration.

Args: issue_id: Issue ID or URL comment_id: Comment ID instance: YouTrack instance (optional)

find_commentsA

Find issues by what their COMMENTS say.

Answers "the ticket where someone wrote …". Two stages: a YouTrack full-text query narrows candidate issues (pass author — a login — to add the commenter: filter), then comments are matched locally: the whole phrase case-insensitively, falling back to all-words when the phrase doesn't appear verbatim. Workflow-bot nags and service stamps are ignored. Newest matches first.

Args: text: Phrase (or words) to find in comment text — required author: Only comments by this login; also narrows the search project: Limit to one project key (optional) max_results: Max matching comments returned (default: 10) instance: YouTrack instance (optional)

list_attachmentsB

List all attachments on a YouTrack issue.

Args: issue_id: Issue ID or URL instance: YouTrack instance (optional)

get_attachment_urlA

Get the download URL for a specific attachment on an issue.

Args: issue_id: Issue ID or URL attachment_name: Attachment file name (partial match) instance: YouTrack instance (optional)

add_attachmentA

Attach a file to a YouTrack issue.

Two input modes:

  • file_path: upload an existing file from disk (report.html, chart.png, data.xlsx). filename overrides the displayed name. SECURITY: this mode reads a local file whose bytes are then uploaded to a remote issue, so it is confined to an allowlist of directories and is DISABLED unless the operator sets YOUTRACK_ATTACHMENT_ROOTS. Prefer the content mode below.

  • content + filename: upload generated/inline content with no temp file. Text is UTF-8 encoded; set content_base64=True to upload binary you already hold as base64 (e.g. a screenshot).

For plain-text or markdown reports, prefer add_comment — it renders inline, is searchable, and notifies watchers. Reach for this when the artifact is binary (HTML/Excel/PDF/image) or a downloadable file is genuinely wanted.

Args: issue_id: Issue ID or URL. file_path: Path to a local file to upload (mode A). content: Inline content to upload (mode B; requires filename). filename: Display name. Required for content; optional override for file_path (defaults to the file's basename). content_base64: Treat content as base64-encoded binary. mime_type: Override the auto-detected MIME type. instance: YouTrack instance (optional).

list_templatesA

List all available issue templates with their sections.

create_issue_from_templateA

Create a YouTrack issue using a predefined template.

Args: project: Project short name template: Template name (bug, feature, task, daily, spike, release, devops) summary: Issue title fields: Section values as 'Section: value' separated by '|||' product: Product field (optional) instance: YouTrack instance (optional)

get_issue_historyA

Get the change history of a YouTrack issue.

Args: issue_id: Issue ID or URL max_results: Max activities (default: 20) instance: YouTrack instance (optional)

rollback_issueC

Rollback a specific change by restoring the previous value.

Args: issue_id: Issue ID or URL activity_id: Activity ID from get_issue_history instance: YouTrack instance (optional)

get_work_itemsA

Get time tracking work items for an issue.

Work-item text is truncated by default — entries often carry multi-paragraph work journals, which once cost ~4K tokens for a single issue. Pass include_text=True for the full notes.

Args: issue_id: Issue ID or URL instance: YouTrack instance (optional) since: Only work items dated on/after this day, YYYY-MM-DD (optional) until: Only work items dated on/before this day, YYYY-MM-DD (optional) include_text: Full work-item notes instead of a 200-char preview

add_work_itemA

Log time on a YouTrack issue.

Args: issue_id: Issue ID or URL duration_minutes: Time spent in minutes date: Date YYYY-MM-DD (default: today) description: Work description (optional) work_type: Work type (optional) instance: YouTrack instance (optional)

update_work_itemA

Update a work item. Returns previous values for rollback.

Args: issue_id: Issue ID or URL work_item_id: Work item ID duration_minutes: New duration in minutes (0 = keep) date: New date YYYY-MM-DD (empty = keep) description: New description (empty = keep) instance: YouTrack instance (optional)

delete_work_itemB

Delete a work item. Returns deleted details for restoration.

Args: issue_id: Issue ID or URL work_item_id: Work item ID instance: YouTrack instance (optional)

get_issue_changes_summaryA

Get a compact summary of issue changes: state transitions, comments, time logged.

Args: issue_id: Issue ID or URL since: ISO date filter (optional, e.g. '2026-03-01') instance: YouTrack instance (optional)

bulk_update_previewA

Preview which issues would be affected by a bulk update (dry run). Call before bulk_update_execute.

Args: query: YouTrack search query command: YouTrack command to apply max_results: Max issues to preview (default: 50, max: 100) instance: YouTrack instance (optional)

bulk_update_executeA

Execute a bulk update. DESTRUCTIVE -- call bulk_update_preview first. Tags batch for rollback.

Args: query: YouTrack search query command: YouTrack command to apply max_results: Max issues to update (default: 50, max: 100) instance: YouTrack instance (optional)

bulk_rollbackA

Rollback all changes from a bulk update batch.

Args: batch_tag: Batch tag from bulk_update_execute instance: YouTrack instance (optional)

list_projectsC

List all accessible YouTrack projects.

Args: instance: YouTrack instance (optional)

get_agilesC

List all agile boards.

Args: instance: YouTrack instance (optional)

get_agile_boardA

Get agile board details by name, ID, or URL.

Args: name: Board name, ID, or URL instance: YouTrack instance (optional)

get_project_fieldsA

List custom fields for a project with required status and available values.

Use this before create_issue to discover required fields and valid values.

Args: project: Project short name instance: YouTrack instance (optional)

create_agile_boardB

Create a new agile board.

Args: name: Board name projects: Comma-separated project short names column_field: Column field (default: 'State') instance: YouTrack instance (optional)

delete_agile_boardA

Delete an agile board (issues are not deleted).

Args: board_name: Board name (partial match) instance: YouTrack instance (optional)

get_sprint_boardC

Get issues on an agile board grouped by column.

Args: board_name: Board name, ID, or URL sprint: Sprint name or 'current' (default: 'current') instance: YouTrack instance (optional)

create_sprintB

Create a new sprint on an agile board.

Args: board_name: Board name (partial match) sprint_name: Name for the new sprint start: Start date ISO 8601 (optional, e.g. '2025-01-01') finish: End date ISO 8601 (optional, e.g. '2025-01-14') instance: YouTrack instance (optional)

update_sprintA

Update an existing sprint on an agile board.

Args: board_name: Board name (partial match) sprint_name: Current sprint name (partial match) new_name: New sprint name (empty = keep) start: New start date ISO 8601 (empty = keep) finish: New end date ISO 8601 (empty = keep) archived: Set archived status (None = keep) instance: YouTrack instance (optional)

add_issues_to_sprintB

Add issues to a sprint using YouTrack commands.

Args: board_name: Board name (partial match) sprint_name: Sprint name (partial match) issue_ids: Comma-separated issue IDs (e.g. 'PROJ-1,PROJ-2') instance: YouTrack instance (optional)

get_active_sprint_issuesA

Collect issue IDs across current sprints of all boards (parallel fetch).

Use for "what's actually in flight" across the org — sprint-based truth, not state guessing. Feeds into translation/audit/digest flows.

Args: boards: Comma-separated board names (partial match). Empty = all boards. exclude_states: Comma-separated states to skip (e.g. 'Closed,Done'). ids_only: If True, return just a comma-separated ID list (for piping into id-based queries like translation). If False, return grouped markdown. instance: YouTrack instance (optional)

list_tagsC

List all issue tags with issue counts.

Args: instance: YouTrack instance (optional)

list_saved_searchesB

List all saved searches (queries).

Args: instance: YouTrack instance (optional)

run_saved_searchB

Run a saved search by name and return matching issues.

Args: name: Saved search name (partial match) max_results: Max results (default: 50) instance: YouTrack instance (optional)

audit_issue_listA

Get current status, assignee, and last update for a list of issues.

Useful for validating a list (e.g. roadmap, priorities) against current state.

Args: issue_ids: Comma-separated issue IDs or URLs (e.g. 'PROJ-1,PROJ-2,PROJ-3') instance: YouTrack instance (optional)

compare_issue_listsA

Diff a known issue list against a YouTrack query.

Returns: matched (in both), missing-from-list (in query, not your list), no-longer-matching (in your list, not in query). Useful for finding tasks you're not tracking, or items in your list that are stale.

Args: known_ids: Comma-separated issue IDs you already know (e.g. 'PROJ-1,PROJ-2') query: YouTrack query to compare against (e.g. 'project: PROJ #Unresolved') instance: YouTrack instance (optional)

get_roadmapA

Cross-project roadmap view filtered by type and state.

Args: projects: Comma-separated project shortnames (empty = all accessible) types: Comma-separated Type values (e.g. 'Epic,Product Task') (empty = all) states: Comma-separated states (empty = all unresolved) max_per_project: Max issues per project (default: 50) instance: YouTrack instance (optional)

get_issues_for_translationA

Fetch issues with non-ASCII text for translation. Call apply_translations with results.

Args: query: YouTrack search query include_comments: Include comments (default: True) max_results: Batch size (default: 10) exclude_translated: Auto-exclude issues already tagged from prior runs (any yt-translate-* tag) and issues whose description already has the EN + delimiter + original-language bilingual structure. Default True. Set False to force re-translation. delimiter: Bilingual delimiter to detect already-translated state (default: '----'). Must match what apply_translations uses. instance: YouTrack instance (optional)

apply_translationsA

Apply translated text to YouTrack issues. Tags for rollback. Format: ISSUE/SUMMARY/DESCRIPTION/COMMENT blocks separated by ---.

Args: translations: Structured translation block batch_tag: Batch tag for rollback (auto-generated if empty) preserve_original: If True, append the current original description below a delimiter so both languages remain visible. Summary is still replaced. Comments use the same bilingual format. delimiter: Separator line between English and original (default: '----') instance: YouTrack instance (optional)

get_impact_mapA

Build a cross-product dependency graph from an issue via links, product overlap, and mentions.

Args: issue_id: Root issue ID or URL depth: Link levels to follow (default: 2) instance: YouTrack instance (optional)

get_deadline_impactB

Analyze what breaks if an issue slips past a deadline. Categorizes as BLOCKED, AT RISK, or DONE.

Args: issue_id: Root issue ID or URL deadline: Deadline date for context (optional) instance: YouTrack instance (optional)

get_current_userA

Get the currently authenticated YouTrack user.

format="json" returns a structured dict including instance_url for downstream consumers building issue hyperlinks (e.g. email reports). format="report" (default) preserves the chat-friendly markdown view.

Args: format: "report" (default, markdown) or "json" (structured). instance: YouTrack instance (optional)

get_instance_urlA

Return the base URL of the configured YouTrack instance.

Cheap, no-auth-state probe — useful for downstream renderers (email templates, dashboards) that need <base>/issue/<ID> links without making a who-am-I call.

Args: format: "report" (default plain text) or "json" ({"base_url": "..."}). instance: YouTrack instance (optional).

search_usersA

Search YouTrack users by name or login.

Args: query: Search string max_results: Max results (default: 20) instance: YouTrack instance (optional)

search_articlesB

Search Knowledge Base articles.

Args: query: Search string max_results: Max results (default: 20) instance: YouTrack instance (optional)

get_articleB

Get a Knowledge Base article with full content.

Args: article_id: Article ID or database ID include_comments: Include comments (default: True) instance: YouTrack instance (optional)

create_articleA

Create a new Knowledge Base article.

Args: project: Project short name summary: Article title content: Article body (markdown) parent_article_id: Parent article ID for nesting (optional) instance: YouTrack instance (optional)

update_articleA

Update a Knowledge Base article. Returns previous values for rollback.

Args: article_id: Article ID or database ID summary: New title (empty = keep) content: New content (empty = keep) instance: YouTrack instance (optional)

delete_articleA

Delete a Knowledge Base article. Returns details for restoration.

Args: article_id: Article ID or database ID instance: YouTrack instance (optional)

add_article_commentB

Add a comment to a Knowledge Base article.

Args: article_id: Article ID or database ID text: Comment text (markdown) instance: YouTrack instance (optional)

update_article_commentB

Update an article comment. Returns previous text for rollback.

Args: article_id: Article ID or database ID comment_id: Comment ID text: New comment text (markdown) instance: YouTrack instance (optional)

delete_article_commentA

Delete an article comment. Returns text for restoration.

Args: article_id: Article ID or database ID comment_id: Comment ID instance: YouTrack instance (optional)

get_top_active_issuesA

Get top active issues ranked by priority score.

Args: project: Project short name limit: Top N results (default: 3), per product when grouped states: Comma-separated active states group_by_product: Group by Product field (default: false) exclude_patterns: Comma-separated regex to exclude instance: YouTrack instance (optional)

get_top_blocked_issuesB

Get top blocked issues ranked by priority score.

Args: project: Project short name limit: Top N results (default: 3), per product when grouped group_by_product: Group by Product field (default: false) exclude_patterns: Comma-separated regex to exclude instance: YouTrack instance (optional)

get_team_dashboardA

Combined dashboard: top active, top blocked, and summary stats for a project.

Args: project: Project short name active_limit: Top N active (default: 3) blocked_limit: Top N blocked (default: 3) group_by_product: Group by Product field (default: false) exclude_patterns: Comma-separated regex to exclude instance: YouTrack instance (optional)

get_multi_team_dashboardA

Combined dashboard for multiple projects in one call.

Args: projects: Comma-separated project short names active_limit: Top N active per project (default: 5) blocked_limit: Top N blocked per project (default: 3) group_by_product: Group by Product field (default: false) exclude_patterns: Comma-separated regex to exclude instance: YouTrack instance (optional)

get_issues_digestA

Get a digest of recent changes for issues matching a query.

Args: query: YouTrack search query since: Duration ('24h', '7d') or date ('2026-03-18'). Default: 24h limit: Max issues (default: 10) instance: YouTrack instance (optional)

get_at_risk_issuesA

Find at-risk issues: overdue, qa_skipped, stalled, forgotten, unestimated, over estimate, ancient.

Deadline / estimate / spent-time / QA-required fields are matched by name pattern, so decorated field names (Deadline ☠️, Evaluation time 🕙, Spent time 🚴🏻‍♂️, Dev Estimate, QA Required) are recognized — not just bare literals.

QA-skip: when a project has a QA-gating field (e.g. QA Required: Yes), an issue that reached a release/done state while QA was required is confirmed against its state history — flagged only if it NEVER passed a QA state (true skip, not merely "QA pending"). Projects without such a field produce no QA-skip candidates (zero added cost). The per-issue history walk runs only when this category is in scope.

Args: project: Project short name stale_days: Days idle for In Progress (default: 7) forgotten_days: Days idle for Submitted/Pause (default: 30) ancient_days: Days open to flag (default: 200) limit_per_category: Max per category in report mode (default: 10). Ignored when format="json" — JSON returns the full set. deadline_warning_days: Days before deadline warning (default: 7) exclude_patterns: Comma-separated regex to exclude category: Restrict to one bucket — overdue, qa_skipped, approaching, stalled, over_estimate, unestimated, ancient, forgotten (aliases accepted). Empty = all categories. format: "report" (default markdown) or "json" (structured payload with per-category counts + full issue lists, for programmatic consumers like a daily deadline bot). instance: YouTrack instance (optional)

check_task_creationA

Check if a task matching keywords was created and assess its quality.

Args: keywords: Search keywords project: Project short name (optional) created_since: Duration ('7d', '24h') or date. Default: 7d expected_priority: Priority to verify (optional) instance: YouTrack instance (optional)

get_creation_activityB

Report of recently created issues with quality indicators.

Args: project: Project short name since: Duration ('7d', '24h') or date. Default: 7d creator: Filter by creator name (optional) limit: Max issues (default: 20) instance: YouTrack instance (optional)

get_project_healthB

Project health report: state distribution, health metrics, and recently resolved issues.

Args: project: Project short name since: Period for resolved issues (default: '24h') exclude_patterns: Comma-separated regex to exclude instance: YouTrack instance (optional)

get_handoff_snapshotA

Snapshot of all tickets currently in handoff states (waiting on another team).

Fast single-query view (1 API call) — complements track_cross_dept_journey which is richer but per-issue. Groups results by state (which dept holds it).

Args: projects: Comma-separated project shortnames (empty = all accessible) states: Comma-separated handoff states (empty = use defaults: For Review, Dev QA/Staging QA/Prod QA, Ready for Stage/Prod/Release, Blocked) stale_days: Highlight tickets idle > N days (default: 5) active_within_days: Only show tickets updated in last N days (default: 0 = all). Use 14 for "currently in flight" view. instance: YouTrack instance (optional)

track_cross_dept_journeyA

Track cross-department handoffs: bottlenecks, dept load, avg transit times.

Builds a chronological journey of dept changes (state + project transitions) for each issue. Departments are auto-detected from project shortnames using generic role-based patterns (Backend/Frontend/DevOps/QA/Mobile/etc).

Args: query: YouTrack query selecting issues (e.g. 'project: PROJ #Unresolved') stale_days: Flag current station if held >N days (default: 5) avg_window_days: Rolling window for transit time averages (default: 14) follow_subtasks: Include subtask journeys in parent's chain (default: True) max_issues: Cap on issues fetched (default: 50) instance: YouTrack instance (optional)

audit_deadline_changesA

Audit Due-Date shifts in a period; classify each as compliant/unauthorized.

Reads ~/.yt-mcp/managers.json for approver mapping. Each shift is bucketed: compliant_strict, compliant_loose, unauthorized, approver_unknown, pre_policy, or informational (first-time set / earlier date).

Args: period_start: ISO date (YYYY-MM-DD); defaults to current quarter start period_finish: ISO date; defaults to current quarter end projects: Comma-separated project shortnames; empty = all accessible strict: If True, only keyword+date comments count as approval exclude_standups: Skip recurring daily/standup tickets (default: True) instance: YouTrack instance (optional)

deadline_scorecardA

Per-assignee deadline compliance rollup for a calendar quarter.

Tracks per-issue compliance (not cumulative): a missed deadline is only missed_after_extension if THIS specific issue had an approved shift earlier in the quarter.

Args: quarter: 'YYYYQN' (e.g. '2026Q2'); empty = current calendar quarter user: Filter to a single assignee login; empty = all projects: Comma-separated project shortnames; empty = all accessible strict: If True, only keyword+date comments count as approval exclude_standups: Skip recurring daily/standup tickets instance: YouTrack instance (optional)

suggest_managersA

Bootstrap a manager mapping from recent YouTrack activity.

Detects PMs by reporter fan-out (auto-exclude), then scores remaining candidates by who edits non-trivial fields on each user's tasks and who moves their tasks to terminal states. Writes managers.suggested.json.

Args: lookback_days: Activity window (default: 90) projects: Comma-separated project shortnames; empty = all accessible write: If False, just print the suggestion without saving (default: True) instance: YouTrack instance (optional)

get_team_pulseA

Team pulse for a board: what shipped in the last {lookback_days}d and what's coming in the next {horizon_days}d, with velocity-aware insight flags and a team-balanced per-dev view.

Reads the board's column structure, classifies columns by role (triaged/incoming/re_entry/in_progress/done), then fetches:

  • Lookback: closed, released, reopened, new incoming

  • Forward: ready-to-pull, pipeline-unblockers, recent incoming

Scope: project + board-column-scoped. Issues are queried by project: <PROJ> State: {<board state>, ...} — so any State enum value on the project that the board does NOT render as a column is invisible. Newly-created tickets in unmapped states won't surface until they're moved to a state that has a column. This is by design (the board defines what "matters" for the team's workflow) but can surprise consumers expecting a full project scan — use search_issues with a project filter if you want everything.

Heuristic flags surface "should I act?" signals: backlog growth, reopen rate, WIP overload (concurrent dev work), pipeline overload (downstream-of-dev clog), bottlenecks, deadline cliff, stale queue.

Args: board_name: Board name (partial match), ID, or URL. horizon_days: Forward planning window (default 14). lookback_days: Backward velocity window (default 30 — smooths weekly variance). limit: Max items per section (default 10). format: "report" (default, markdown) or "json" (JSON-stringified payload for programmatic consumption — board, metrics, pipeline_counts, ranked section lists, team_balanced, insights). max_idle_days: Drop pipeline + re_entry items not updated within this many days (default 60). Pass 0 to disable. Justified by real-data measurement showing 50%+ noise from abandoned tickets that still technically sit in In Progress/For review states. max_overdue_days: Drop forward items whose deadline is past by more than this many days (default 30). Pass 0 to disable. Deeply overdue items need a different conversation than "next up". instance: YouTrack instance (optional).

get_multi_team_pulseA

Parallel pulse across multiple boards with aggregated org-wide view.

Same per-board logic as get_team_pulse, fanned out via asyncio.gather so 7 boards take ~one board's worth of time instead of seven. Failed boards (no projects, unresolvable name) are listed in the output but don't kill the rest.

Output adds an org-wide aggregate (summed metrics + pipeline counts + flag counts across boards) above per-board summaries.

Args: boards: Comma-separated board names (partial match each). horizon_days: Forward planning window (default 14). lookback_days: Backward velocity window (default 30). limit: Max items per section per board (default 5 — multi-board view defaults lower than single-board to keep output compact). format: "report" (default, markdown) or "json" (parseable payload with aggregate + boards keys). max_idle_days: Drop pipeline + re_entry items not updated within this many days (default 60). Pass 0 to disable. max_overdue_days: Drop forward items past their deadline by more than this many days (default 30). Pass 0 to disable. instance: YouTrack instance (optional).

get_stuck_handoffsA

Tasks that crossed a team boundary and haven't moved since.

Distinct from get_handoff_snapshot (sorts by updated, polluted by comments) and track_cross_dept_journey (forensic per-issue deep-dive). This walks state-change activities specifically, so an item in Ready for test with fresh comments but no state change in 14 days IS surfaced as stuck.

Algorithm:

  1. Find issues currently in handoff-receiving states (qa, release, rework, dev) on the board.

  2. For each, fetch state-change activities.

  3. Find the latest state change. If it happened ≥ stuck_days ago AND that transition crossed a team-ownership role boundary (dev→qa, qa→release, etc.) → STUCK.

Output is grouped by transition pattern (Dev→QA stalls, QA→Release stalls, etc.) so you see which handoff most often gets dropped.

Args: board_name: Board name (partial match), ID, or URL. stuck_days: Days without a state change to count as stuck (default 4). lookback_days: Velocity-window framing in the header (default 30). limit: Max items shown per transition section (default 10). format: "report" (markdown) or "json" (structured payload). instance: YouTrack instance (optional).

monthly_time_report_by_userA

Monthly time report aggregated by the user who logged the time.

Sums work-item durations for the calendar month, grouped by work-item author — not issue assignee, so time on shared issues is credited to whoever actually logged it. Users are keyed by login (display names can collide or change mid-month).

Args: instance: YouTrack instance name/URL (auto-detected if blank) projects: Comma-separated project keys (all projects if blank) year: Report year (default: current UTC year) month: Report month 1-12 (default: current UTC month) group_by: "user" (default) or "project"

user_time_summaryA

Time summary for one user: total logged plus per-issue breakdown.

Matches by work-item author and work-item date. When neither since nor until is given, defaults to the current calendar month — an unbounded scan of a user's whole history was rarely what callers meant and is capped anyway. Pass an explicit early since (e.g. "1970-01-01") for all-time. Unknown users surface YouTrack's own error message.

Args: user: YouTrack login (or user id) — required instance: YouTrack instance name/URL (auto-detected if blank) since: Start date YYYY-MM-DD (default: 1st of current UTC month) until: End date YYYY-MM-DD (optional) top_issues: How many top issues to list (default: 10)

get_release_calendarA

Release calendar: in-flight releases, recent ships, cadence ETAs.

Scans release/RC-titled tickets across projects. Per project: in-flight releases ordered closest-to-the-door first, ships within the lookback, the median gap between ships (cadence), and — for projects whose releases carry no deadlines — a cadence-based ETA for the next ship. Flags parked store queues (3+ releases sitting in ready/review states).

Args: projects: Comma-separated project keys to include (all if blank) lookback_days: Shipped-release window for cadence (default: 30) instance: YouTrack instance (optional)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/velesnitski/yt-mcp'

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