docs · mcp reference

MCP tools reference.

The MCP server is the primary tool surface of team.management: 42 tools across 8 modules, exposed as native mcp__plugin_team-management_tm__* tools. They exist so workflow operations are first-class typed tools with structured errors and guaranteed discoverability — not shell commands the agent must remember to format.

The 8 modules

ModuleToolsWhat it covers
issue_tracking.py14Import, create, sync, and comment on issues across GitLab / Jira / GitHub / Gitea.
protocol.py11Drive the JSON protocol engine — start, advance, branch, and customize workflows.
code_review.py4Automated review runs, plus reading and commenting on MR / PR reviews.
git_operations.py4Commit, push, and open merge / pull requests linked to the task.
daic.py3Switch DAIC mode manually (the protocol engine does this per step automatically).
notifications.py3Reach the user out-of-band when a step blocks on their input.
config.py2Read and write non-secret settings through the guided config flow.
release.py1Cut a release.
total42across 8 modules

Complete tool reference

Every tool, by module. In a Claude session each is prefixed mcp__plugin_team-management_tm__ — e.g. mcp__plugin_team-management_tm__protocol_start.

issue_tracking.pyPurpose
issue_statusShow the active provider, linked task count, and per-task issue IDs.
config_issue_tracking_statusRead the issue-tracking section of config.json.
config_code_review_enforcementRead the code-review warning-enforcement mode (strict / relaxed).
issue_readImport an issue by ID or URL and write it as a task file.
issue_createCreate a provider issue from an existing task.
issue_updateUpdate title, description, status, or labels on a linked issue.
issue_syncPush the current task status to the linked issue.
issue_pushPush task file content to the linked issue description.
issue_linkAttach an existing issue ID to a task.
issue_unlinkRemove the issue link from a task.
issue_commentPost a comment on the linked issue.
issue_set_statusTransition the issue to a new status, with an optional comment.
issue_apiMake a raw authenticated API call to the active provider.
issue_dependencyDeclare a blocking / blocked-by relationship between issues.
protocol.pyPurpose
protocol_listList all available protocols with their step structures.
protocol_startStart a named protocol — the first step then drives task-file and branch creation.
protocol_currentRead the active protocol name, current step, and DAIC mode.
protocol_advanceComplete the current step with an evidence summary and move forward.
protocol_gotoJump back to a named step — the re-planning anchor.
protocol_logRead the protocol audit log for the current or a named task.
protocol_abortAbort the active protocol with a reason.
protocol_save_noteAppend a note to the protocol audit log.
protocol_available_funcsList the engine functions usable in pre_funcs / post_funcs.
protocol_customizeFork a system protocol into custom/ for editing.
protocol_check_driftCompare custom protocols against the post-upgrade system copies.
code_review.pyPurpose
code_reviewRun an automated review of the diff and post the results to the MR / PR when one exists.
fetch_mr_reviewFetch an existing GitLab MR review by URL or IID.
merge_request_commentPost a comment on a GitLab merge request.
pull_request_commentPost a comment on a GitHub / Gitea pull request.
git_operations.pyPurpose
git_commitStage and commit the working tree with a message.
git_pushPush the current branch to origin.
merge_request_createCreate a GitLab MR linked to the task's issue (GitHub / Gitea PRs open via the completion flow).
merge_request_updateUpdate a GitLab MR's title or description, or close / reopen it.
daic.pyPurpose
daic_mode_switch_discussionSwitch to discussion mode — blocks edit tools.
daic_mode_switch_implementationSwitch to implementation mode — unlocks edit tools.
daic_mode_switch_documentationSwitch to documentation mode — docs-only edits allowed.
notifications.pyPurpose
notify_userSend an out-of-band notification (e.g. Telegram).
notification_statusCheck whether notifications are configured and enabled.
notification_discover_telegram_chatsList the chats the Telegram bot can see, to pick a chat ID.
config.pyPurpose
config_getRead a masked config snapshot plus the schema of every settable key.
config_updateSchema-validated write of non-secret settings — gated to the /team-management:config flow.
release.pyPurpose
release_createCreate a versioned release on GitLab and/or GitHub — whichever are enabled, independent of the issue provider.

Why MCP, and why stateless

Claude agents reliably discover MCP tools in the tool list but often miss slash commands — so exposing the workflow this way makes it dependable. The server is stateless: every tool delegates to the provider utilities and protocol engine in the plugin's hooks/ directory, so the MCP server and the hooks always run byte-identical code — no version skew.

One tool was deliberately not exposed: there’s no way for Claude to disable its own DAIC enforcement. Turning off the framework is a user-only operation.