Available MCP Tools Reference

This page documents all MCP tools available in APM, both for external MCP servers connecting to APM and for APM when connecting to external servers.

APM's MCP Server Tools

These tools are available when connecting to APM as an MCP server:

Task Management Tools

createTask

Create a new task in a project

Parameters:
  • project_id - The project to create the task in (required)
  • title - Task title - should be clear and actionable (required)
  • description - Detailed description of what needs to be done
  • assignee_id - ID of user or agent to assign the task to
  • implementation_plan - Step-by-step plan for task completion
  • priority - Task priority: low, medium, high
  • due_date - ISO 8601 date string for deadline

Example usage:

result = mcp_client.call_tool("createTask", {
  project_id: "proj_abc123",
  title: "Implement user authentication",
  description: "Add JWT-based auth to the API endpoints",
  assignee_id: "user_dev456",
  implementation_plan: <<~PLAN
    1. Set up JWT library and middleware
    2. Create login/logout endpoints
    3. Add auth checks to protected routes
    4. Write tests for auth flow
    5. Update API documentation
  PLAN
})

updateTask

Update an existing task's properties

Parameters:
  • task_id - The task to update (required)
  • title - New title for the task
  • description - New description
  • status - New status: unstarted, in_progress, complete
  • assignee_id - Reassign to different user/agent
  • priority - Update priority level
  • implementation_plan - Update or add implementation plan
  • completion_notes - Notes about how the task was completed

Example usage:

# Mark task as complete
result = mcp_client.call_tool("updateTask", {
  task_id: "task_xyz789",
  status: "complete",
  completion_notes: "All endpoints secured with JWT auth"
})

getTasks

Query tasks with flexible filtering

Parameters:
  • project_id - Filter by specific project
  • assignee_id - Filter by who it's assigned to
  • status - Filter by status (can be array): unstarted, in_progress, complete
  • created_after - ISO timestamp - only tasks created after this
  • created_before - ISO timestamp - only tasks created before this
  • title_contains - Search in task titles
  • limit - Maximum number of results (default: 50)
  • offset - Pagination offset

Example usage:

# Get all incomplete tasks for a user
tasks = mcp_client.call_tool("getTasks", {
  assignee_id: "user_123",
  status: ["unstarted", "in_progress"],
  limit: 20
})

Action Management Tools

createAction

Create an action requiring human approval/review

Parameters:
  • type - Action type (e.g., implementation_plan, deployment_approval, data_validation)
  • title - Clear title describing what needs approval (required)
  • priority - Priority level: low, medium, high, critical (required)
  • assignee_id - Who should process this action (required)
  • requester_id - Who/what is requesting the action (required)
  • project_id - Associated project ID
  • payload - JSON object with action-specific data
  • due_date - ISO 8601 date string for deadline
  • auto_approve_after - Hours until auto-approval (if configured)

Example usage:

# Request deployment approval
action = mcp_client.call_tool("createAction", {
  type: "deployment_approval",
  title: "Deploy v2.5.0 to production",
  priority: "high",
  assignee_id: "user_ops_lead",
  requester_id: "deploy_bot",
  project_id: "proj_abc123",
  payload: {
    version: "2.5.0",
    changes: [
      "New payment integration",
      "Performance improvements",
      "Bug fixes"
    ],
    rollback_plan: "Revert to v2.4.8 if issues detected",
    test_results: "All tests passing (847/847)"
  }
})

updateAction

Update an action's status or properties

Parameters:
  • action_id - The action to update (required)
  • status - New status: pending, in_progress, approved, rejected, cancelled
  • assignee_id - Reassign to different person
  • priority - Change priority level
  • resolution_notes - Explanation of approval/rejection decision
  • payload - Update the action's payload data

Example usage:

# Approve with conditions
result = mcp_client.call_tool("updateAction", {
  action_id: "action_def456",
  status: "approved",
  resolution_notes: "Approved for deployment after 5 PM PST"
})

getActions

Query actions with filters

Parameters:
  • assignee_id - Filter by who should process it
  • requester_id - Filter by who requested it
  • project_id - Filter by project
  • status - Filter by status (can be array)
  • priority - Filter by priority level
  • type - Filter by action type
  • created_after - ISO timestamp filter
  • include_resolved - Include completed actions (default: false)
  • limit - Maximum results (default: 50)
  • offset - Pagination offset

Project Tools

getProjects

List projects accessible to the MCP client

Parameters:
  • include_archived - Include archived projects (default: false)
  • name_contains - Search projects by name
  • team_member_id - Filter by team member
  • created_after - ISO timestamp filter
  • limit - Maximum results (default: 50)
  • offset - Pagination offset

Next Steps

Was this page helpful?