list_milestones
List all milestones in a project by providing the project UUID. Optionally filter results with query parameters.
Instructions
List all milestones in a project.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | UUID of the project | |
| params | No | Optional query parameters as a dictionary |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- plane_mcp/tools/milestones.py:21-40 (handler)Handler function for the 'list_milestones' tool. Calls client.milestones.list() with the workspace slug and project ID, returning the results list from the paginated response.
@mcp.tool() def list_milestones( project_id: str, params: dict[str, Any] | None = None, ) -> list[Milestone]: """ List all milestones in a project. Args: project_id: UUID of the project params: Optional query parameters as a dictionary Returns: List of Milestone objects """ client, workspace_slug = get_plane_client_context() response: PaginatedMilestoneResponse = client.milestones.list( workspace_slug=workspace_slug, project_id=project_id, params=params ) return response.results - plane_mcp/tools/milestones.py:6-13 (schema)Imports the Milestone and PaginatedMilestoneResponse schemas used by list_milestones.
from plane.models.milestones import ( CreateMilestone, Milestone, MilestoneWorkItem, PaginatedMilestoneResponse, PaginatedMilestoneWorkItemResponse, UpdateMilestone, ) - plane_mcp/tools/milestones.py:21-22 (registration)The tool is registered via the @mcp.tool() decorator in register_milestone_tools().
@mcp.tool() def list_milestones( - plane_mcp/tools/__init__.py:10-48 (registration)The register_milestone_tools function is imported and called in the top-level register_tools() to wire up the milestone tools.
from plane_mcp.tools.milestones import register_milestone_tools from plane_mcp.tools.modules import register_module_tools from plane_mcp.tools.pages import register_page_tools from plane_mcp.tools.projects import register_project_tools from plane_mcp.tools.states import register_state_tools from plane_mcp.tools.users import register_user_tools from plane_mcp.tools.work_item_activities import register_work_item_activity_tools from plane_mcp.tools.work_item_comments import register_work_item_comment_tools from plane_mcp.tools.work_item_links import register_work_item_link_tools from plane_mcp.tools.work_item_properties import register_work_item_property_tools from plane_mcp.tools.work_item_relations import register_work_item_relation_tools from plane_mcp.tools.work_item_types import register_work_item_type_tools from plane_mcp.tools.work_items import register_work_item_tools from plane_mcp.tools.work_logs import register_work_log_tools from plane_mcp.tools.workspaces import register_workspace_tools def register_tools(mcp: FastMCP) -> None: """Register all tools with the MCP server.""" register_project_tools(mcp) register_work_item_tools(mcp) register_work_item_activity_tools(mcp) register_work_item_comment_tools(mcp) register_work_item_link_tools(mcp) register_work_item_relation_tools(mcp) register_work_log_tools(mcp) register_cycle_tools(mcp) register_user_tools(mcp) register_module_tools(mcp) register_initiative_tools(mcp) register_intake_tools(mcp) register_label_tools(mcp) register_page_tools(mcp) register_work_item_property_tools(mcp) register_work_item_type_tools(mcp) register_state_tools(mcp) register_workspace_tools(mcp) register_epic_tools(mcp) register_milestone_tools(mcp)