Skip to content

MCP Tools

The PREQSTATION MCP server exposes read-only tools for discovery and mutation tools for lifecycle work. All mutation tools carry an engine identity.

Tool Categories

Read-only tools

ToolPurpose
preq_list_tasksList tasks by status, label, engine, or project key
preq_get_taskFetch one task by ticket or UUID
preq_get_project_settingsFetch resolved project settings by project key

Mutation tools

ToolPurpose
preq_create_taskCreate a new inbox task
preq_plan_taskUpload a plan and move inbox → todo
preq_start_taskClaim execution and set run_state=working
preq_update_task_statusManually change workflow status only
preq_complete_taskUpload execution result and move todo/hold → ready
preq_review_taskVerify work and move ready → done
preq_block_taskUpload blocking reason and move active work → hold
preq_delete_taskPermanently delete a task

Engine Resolution

Mutation tools resolve engine identity in this order:

  1. Explicit engine argument
  2. Existing task engine when available
  3. MCP client auto-detection from clientInfo.name
  4. PREQSTATION_ENGINE
  5. codex fallback

Valid engine values:

  • claude-code
  • codex
  • gemini-cli

Read-only Tools

preq_list_tasks

Parameters:

  • status (optional): inbox, todo, hold, ready, done, archived
  • label (optional): label name
  • projectKey (optional): project key filter
  • engine (optional): claude-code, codex, gemini-cli
  • limit (optional): max returned items

Example:

{
"status": "todo",
"engine": "claude-code",
"projectKey": "PROJ",
"limit": 20
}

preq_get_task

Parameters:

  • taskId (required): task key such as PROJ-123 or a UUID

Returns the full serialized task payload including status, run_state, deploy_strategy, labels, and acceptance_criteria.

preq_get_project_settings

Parameters:

  • projectKey (required): project key such as PROJ

Returns:

{
"project_key": "PROJ",
"settings": {
"deploy_strategy": "feature_branch",
"deploy_default_branch": "main",
"deploy_auto_pr": "true"
}
}

Mutation Tools

preq_create_task

Creates a new task in inbox.

Parameters:

  • title (required)
  • repo (required): repository URL that matches an existing project
  • description (optional)
  • priority (optional)
  • labels (optional)
  • acceptanceCriteria (optional)
  • branch (optional)
  • assignee (optional)
  • engine (optional)

Example:

{
"title": "Implement rate limiting",
"repo": "https://github.com/acme/my-app",
"engine": "claude-code",
"priority": "high"
}

preq_plan_task

Uploads plan markdown and moves inboxtodo.

Parameters:

  • projectKey (required)
  • taskId (required)
  • planMarkdown (required)
  • acceptanceCriteria (optional)
  • priority (optional)
  • labels (optional)
  • engine (optional)

preq_start_task

Claims execution before substantive work. This does not move the workflow column to in_progress; it only marks run_state=working.

Parameters:

  • taskId (required)
  • engine (optional)

preq_update_task_status

Manual status-only override.

Parameters:

  • taskId (required)
  • status (required): inbox, todo, hold, ready, done, archived
  • engine (optional)

preq_complete_task

Uploads result metadata and moves todo or holdready.

Parameters:

  • taskId (required)
  • summary (required)
  • tests (optional)
  • prUrl (optional)
  • notes (optional)
  • branchName (optional)
  • engine (optional)

Example:

{
"taskId": "PROJ-284",
"summary": "Implemented rate limiting for login endpoint",
"engine": "claude-code",
"branchName": "preqstation/PROJ/rate-limit",
"prUrl": "https://github.com/org/repo/pull/123",
"tests": "npm test"
}

preq_review_task

Moves readydone after verification.

Parameters:

  • taskId (required)
  • summary (optional): defaults to "All checks passed"
  • engine (optional)

preq_block_task

Uploads a blocking reason and moves active work to hold.

Parameters:

  • taskId (required)
  • reason (required)
  • engine (optional)

preq_delete_task

Parameters:

  • taskId (required)

Branch Handling

When a task already has a branch, keep using it as the canonical branch name for deploy steps. preq_complete_task accepts branchName so agents can send the final branch back to PREQSTATION along with the result.