MCP Integrations
The devops-plugin communicates with three external systems through MCP (Model Context Protocol) servers. Each server exposes a set of tools that agents call by name. Agents never read, construct, or cache authentication tokens — the MCP server handles auth internally.
YouTrack (mcp__youtrack__*)
YouTrack is the issue-tracking system. All pipeline state (issue stage, assignee, comments) lives in YouTrack.
Configured MCP tools
| Tool | Used by | Purpose |
|---|---|---|
mcp__youtrack__get_issue |
All agents | Fetch full issue details including custom fields |
mcp__youtrack__get_issue_comments |
issue-resolver, issue-clarifier |
Read existing comments for context |
mcp__youtrack__add_issue_comment |
All pipeline agents | Post progress updates and summaries |
mcp__youtrack__update_issue |
issue-resolver, dispatcher, pr-reviewer |
Update Stage, Assignee, and other custom fields |
mcp__youtrack__search_issues |
get-open-issue skill |
Query for issues matching criteria |
mcp__youtrack__link_issues |
feature-designer, tech-leader |
Create subtask and blocked-by relationships |
Custom fields used by the pipeline
| Field | Type | Values |
|---|---|---|
Stage |
enum | To Do, In Progress, Done |
Assignee |
user | Any YouTrack user or Claude_Code |
Git Repo |
text | Repository name (e.g. doc, shop) |
Lane |
enum | frontend, backend, designer, docs |
Gitea (mcp__gitea__*)
Gitea is the self-hosted Git platform and CI/CD system. PRs, branches, and labels are managed through the Gitea MCP server.
Configured MCP tools
| Tool | Used by | Purpose |
|---|---|---|
mcp__gitea__pull_request_write |
issue-resolver, pr-resolver, dispatcher |
Create, update, and merge PRs |
mcp__gitea__pull_request_read |
pr-reviewer, pr-resolver |
Read PR details and diffs |
mcp__gitea__list_pull_requests |
pr-reviewer, get-open-pr skill |
List open PRs for a repository |
mcp__gitea__label_read |
label-pull-request skill |
Resolve label names to IDs |
mcp__gitea__label_write |
label-pull-request skill |
Apply labels to PRs |
mcp__gitea__delete_branch |
pr-reviewer, delete-branch skill |
Delete source branches after merge |
mcp__gitea__search_repos |
dispatcher |
Validate that a repo exists before cloning |
PR label flow
The pipeline uses two Gitea labels as inter-agent signals:
sequenceDiagram
%% PR label flow between agents via Gitea
participant IR as issue-resolver
participant GT as Gitea
participant PRv as pr-reviewer
participant PRr as pr-resolver
IR->>GT: open PR + apply Ready label
PRv->>GT: read PR (Ready label present)
PRv->>GT: approve + merge
GT-->>PRv: merged
PRv->>GT: delete branch
Note over PRv,PRr: If changes needed instead:
PRv->>GT: apply Need Changes label, leave comment
PRr->>GT: read PR (Need Changes label)
PRr->>GT: push fixes + apply Ready label
PRv->>GT: re-review
Discord ($DISCORD_WEBHOOK_URL)
Discord notifications use a webhook URL stored in the $DISCORD_WEBHOOK_URL environment variable. The notify-discord skill invokes the send.sh shell script which calls the webhook via curl and jq.
Notification types
| Status | Colour | When sent |
|---|---|---|
processing |
Blue #3498DB |
Pipeline start and periodic heartbeats |
done |
Green #00FF00 |
Successful completion (PR merged, Stage=Done) |
failure |
Red #FF0000 |
Error, block, or max iterations exceeded |
Embed fields
Every notification embed includes:
- Repo — auto-populated from
git rev-parse --show-toplevel - Branch — auto-populated from
git rev-parse --abbrev-ref HEAD - Task — issue ID + title
- Started — ISO timestamp of when the pipeline started
- Elapsed — human-readable duration (e.g.
3m 12s)
A failed Discord notification must never block the pipeline — agents log the error and continue.
Permission allow-list
All MCP tools used by the plugin are listed in devops-plugin/settings.json. The sync-permissions skill merges these into the workspace's .claude/settings.local.json when the plugin is updated.