Skip to main content
Glama
olgasafonova

productplan-mcp-server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PRODUCTPLAN_API_TOKENYesYour ProductPlan API token, obtained from ProductPlan Settings → API.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_roadmapsA

List all roadmaps. START HERE to get roadmap IDs.

USE WHEN: "Show my roadmaps", "What roadmaps do I have?" Returns array of roadmaps with ID, name, and creation date. FAILS WHEN: API token invalid or expired (check PRODUCTPLAN_API_TOKEN env var).

get_roadmapA

Get roadmap settings and metadata.

USE WHEN: "Tell me about roadmap X", "Roadmap settings" For all data in one call (bars, lanes, milestones), use get_roadmap_complete. Returns roadmap name, date range, sharing settings, and metadata. FAILS WHEN: roadmap_id not found (get valid IDs from list_roadmaps first).

get_roadmap_barsA

Get all bars (features/items) on a roadmap.

USE WHEN: "What's on the roadmap?", "Show planned features", "What's in Q2?" Returns array of bars with ID, name, dates, lane, legend, percent_done, and description. FAILS WHEN: roadmap_id not found (use list_roadmaps). Returns empty list if roadmap has no bars.

get_roadmap_lanesA

Get lanes (categories) on a roadmap. Lanes organize bars into rows.

USE WHEN: "What lanes are on the roadmap?", "Show categories" Returns array of lanes with ID, name, and color. FAILS WHEN: roadmap_id not found (use list_roadmaps).

get_roadmap_milestonesA

Get milestones (key dates) on a roadmap.

USE WHEN: "What are the key dates?", "Show milestones" Returns array of milestones with ID, title, and date. FAILS WHEN: roadmap_id not found (use list_roadmaps).

get_roadmap_legendsA

Get legend entries (bar colors) for a roadmap.

USE WHEN: "What colors are available?", "Show the legend" Returns array of legend entries with ID, name, and hex color. Use legend_id when creating/updating bars. FAILS WHEN: roadmap_id not found (use list_roadmaps).

get_roadmap_completeA

Get complete roadmap in one call. Details, bars, lanes, milestones combined.

USE WHEN: "Full roadmap overview", "Summarize roadmap X" For settings/metadata only, use get_roadmap. Returns combined roadmap details, bars, lanes, and milestones in one response. FAILS WHEN: roadmap_id not found (use list_roadmaps).

get_roadmap_commentsA

Get roadmap-level comments (not bar comments).

USE WHEN: "Show roadmap comments", "Roadmap discussion" For bar-level comments, use get_bar_comments instead. Returns array of comments with author, body, and timestamp. FAILS WHEN: roadmap_id not found (use list_roadmaps).

manage_laneA

Create, update, or delete a lane on a roadmap.

USE WHEN: "Add Backend lane", "Rename Mobile lane", "Delete lane" Actions: create (name), update (lane_id), delete (lane_id) Returns the created/updated lane object, or confirmation on delete. FAILS WHEN: create without name, update/delete without lane_id (get IDs from get_roadmap_lanes). WARNING: delete removes the lane and unassigns all bars in it.

manage_milestoneA

Create, update, or delete a milestone on a roadmap.

USE WHEN: "Add launch milestone", "Move demo date", "Delete milestone" Actions: create (title+date), update (milestone_id), delete (milestone_id) Returns the created/updated milestone object, or confirmation on delete. FAILS WHEN: create without title or date, update/delete without milestone_id (get IDs from get_roadmap_milestones), date not in YYYY-MM-DD format.

get_barA

Get bar details including description, links, custom fields.

USE WHEN: "Tell me about this feature", "Bar details" Returns bar name, dates, description, links, custom fields, percent_done, and lane info. FAILS WHEN: bar_id not found (get valid IDs from get_roadmap_bars).

get_bar_childrenA

Get child bars nested under a parent bar.

USE WHEN: "Show sub-tasks", "Child items", "Break down this feature" FAILS WHEN: bar_id not found. Returns empty list if bar has no children (not all bars are containers).

get_bar_commentsA

Get comments on a bar.

USE WHEN: "Show comments", "What's the feedback on this bar?" For roadmap-level comments, use get_roadmap_comments instead. FAILS WHEN: bar_id not found.

get_bar_connectionsA

Get bar dependencies (what blocks what).

USE WHEN: "What depends on this?", "Show dependencies" FAILS WHEN: bar_id not found. Returns empty list if bar has no connections.

get_bar_linksA

Get external links on a bar (Jira, docs, designs).

USE WHEN: "What's linked?", "Show Jira tickets" FAILS WHEN: bar_id not found. Returns empty list if bar has no external links.

manage_barA

Create, update, or delete a bar on a roadmap.

USE WHEN: "Add feature", "Update dates", "Delete item", "Change color" Actions: create (roadmap_id+lane_id+name), update (bar_id), delete (bar_id) Returns the created/updated bar object with all fields, or confirmation on delete. FAILS WHEN: create without roadmap_id, lane_id, or name (all three required). Update/delete without bar_id. Use get_roadmap_legends for valid legend_id values. WARNING: delete is permanent and cannot be undone.

manage_bar_connectionA

Create or delete dependency between bars.

USE WHEN: "Link features", "Add dependency", "Remove dependency" Actions: create (target_bar_id), delete (connection_id) FAILS WHEN: create without target_bar_id, delete without connection_id (get IDs from get_bar_connections).

manage_bar_linkA

Create or delete external link on a bar.

USE WHEN: "Link Jira ticket", "Add design doc", "Remove link" Actions: create (url), delete (link_id) FAILS WHEN: create without url, delete without link_id (get IDs from get_bar_links). Note: update not available via API; delete and re-create instead.

list_objectivesA

List all OKR objectives. START HERE for OKRs.

USE WHEN: "Show OKRs", "What are our objectives?" Returns array of objectives with ID, name, time_frame, and key result count. FAILS WHEN: API token invalid. Returns empty list if no objectives exist.

get_objectiveA

Get objective details with key results.

USE WHEN: "Tell me about objective X", "OKR progress" FAILS WHEN: objective_id not found (get valid IDs from list_objectives).

list_key_resultsA

List key results for an objective.

USE WHEN: "What are the KRs?", "Show metrics" Returns array of key results with ID, name, target_value, and current_value. FAILS WHEN: objective_id not found (use list_objectives).

get_key_resultA

Get key result details.

USE WHEN: "Tell me about this KR", "KR progress" FAILS WHEN: objective_id or key_result_id not found (use list_key_results to get valid KR IDs).

manage_objectiveA

Create, update, or delete an objective.

USE WHEN: "Add Q1 objective", "Update objective", "Delete OKR" Actions: create (name), update (objective_id), delete (objective_id) Returns the created/updated objective, or confirmation on delete. FAILS WHEN: create without name, update/delete without objective_id. WARNING: delete also removes all key results under this objective.

manage_key_resultA

Create, update, or delete a key result.

USE WHEN: "Add KR", "Update progress", "Delete KR" Actions: create (name+target), update (key_result_id), delete (key_result_id) Returns the created/updated key result, or confirmation on delete. FAILS WHEN: create without name or target_value, update/delete without key_result_id (use list_key_results).

list_ideasA

List all ideas in discovery pipeline. START HERE for ideas.

USE WHEN: "Show customer feedback", "What ideas do we have?" Returns array of ideas with ID, title, status, and vote count. FAILS WHEN: API token invalid. Returns empty list if no ideas exist.

get_ideaA

Get idea details including description and metadata.

USE WHEN: "Tell me about this idea", "Full request details" FAILS WHEN: idea_id not found (get valid IDs from list_ideas).

list_opportunitiesA

List all opportunities. START HERE for discovery.

USE WHEN: "Show opportunities", "Discovery pipeline" Returns array of opportunities with ID, problem_statement, workflow_status, and linked idea count. FAILS WHEN: API token invalid. Returns empty list if no opportunities exist.

get_opportunityA

Get opportunity details with linked ideas.

USE WHEN: "Tell me about this opportunity" FAILS WHEN: opportunity_id not found (get valid IDs from list_opportunities).

list_idea_formsA

List idea submission forms.

USE WHEN: "Show feedback forms", "What forms exist?" Returns array of forms with ID and name. FAILS WHEN: API token invalid.

get_idea_formA

Get idea form details with fields.

USE WHEN: "Show form fields", "What does this form collect?" FAILS WHEN: form_id not found (get valid IDs from list_idea_forms).

list_all_customersA

List all customers across ideas. Returns customer names and linked idea counts.

USE WHEN: "Who are our customers?", "All feedback sources" FAILS WHEN: API token invalid.

list_all_tagsA

List all tags used across ideas. Returns tag names and usage counts across ideas.

USE WHEN: "What tags exist?", "Show categories" FAILS WHEN: API token invalid.

manage_ideaA

Create or update an idea. Note: delete not available via API.

USE WHEN: "Add idea", "Update idea status" Actions: create (title), update (idea_id) Returns the created/updated idea object. FAILS WHEN: create without title, update without idea_id. Note: delete is not available via the ProductPlan API; archive ideas by updating status instead.

manage_opportunityA

Create or update an opportunity. Note: delete not available via API.

USE WHEN: "Create opportunity", "Update problem" Actions: create (problem_statement), update (opportunity_id) Returns the created/updated opportunity object. FAILS WHEN: create without problem_statement, update without opportunity_id (get IDs from list_opportunities). Note: delete is not available via the ProductPlan API; archive opportunities by updating workflow_status instead.

list_launchesA

List all launches. START HERE for launches.

USE WHEN: "Show launches", "Release schedule" Returns array of launches with ID, name, date, and description. FAILS WHEN: API token invalid. Returns empty list if no launches exist.

get_launchA

Get launch details with checklist.

USE WHEN: "Tell me about this launch", "Launch readiness" FAILS WHEN: launch_id not found (get valid IDs from list_launches).

manage_launchA

Create, update, or delete a launch.

USE WHEN: "Create launch", "Update date", "Delete launch" Actions: create (name+date), update (launch_id), delete (launch_id) Returns the created/updated launch object, or confirmation on delete. FAILS WHEN: create without name or date, update/delete without launch_id, date not in YYYY-MM-DD format. WARNING: delete removes the launch and all its sections and tasks.

get_launch_sectionsA

Get checklist sections for a launch.

USE WHEN: "Show sections", "Checklist categories" For one specific section, use get_launch_section. FAILS WHEN: launch_id not found.

get_launch_sectionA

Get a specific checklist section by ID.

USE WHEN: "Show one specific checklist section by ID" For all sections, use get_launch_sections. FAILS WHEN: launch_id or section_id not found.

manage_launch_sectionA

Create, update, or delete a checklist section.

USE WHEN: "Add Marketing section", "Rename section", "Delete section" Actions: create (name), update (section_id), delete (section_id) Returns the created/updated section object, or confirmation on delete. FAILS WHEN: create without name, update/delete without section_id (get IDs from get_launch_sections). WARNING: delete removes the section and all tasks in it.

get_launch_tasksA

Get all tasks for a launch.

USE WHEN: "Show tasks", "What needs to be done?" For one specific task, use get_launch_task. FAILS WHEN: launch_id not found.

get_launch_taskA

Get a specific launch task by ID.

USE WHEN: "Show one specific task by ID", "Check task assignment or status" For all tasks, use get_launch_tasks. FAILS WHEN: launch_id or task_id not found.

manage_launch_taskA

Create, update, or delete a launch task.

USE WHEN: "Add task", "Mark complete", "Assign task", "Delete task" Actions: create (name+section_id), update (task_id), delete (task_id) Returns the created/updated task object, or confirmation on delete. FAILS WHEN: create without name or section_id, update/delete without task_id (get IDs from get_launch_tasks). Use list_users to get valid assigned_user_id values.

check_statusA

Check ProductPlan API status and authentication.

USE WHEN: "Is ProductPlan connected?", "Check API" For MCP server internals (cache stats, rate limits), use health_check instead.

health_checkA

Check MCP server health and cache stats.

USE WHEN: "Server status", "Rate limits", "Diagnose issues" For API connectivity only, use check_status instead. FAILS WHEN: deep=true and API is unreachable. Basic health (deep=false) always succeeds if server is running.

list_usersA

List all users in account.

USE WHEN: "Who has access?", "Team members" Returns array of users with ID, name, email, and role. Use user IDs from this tool when assigning launch tasks via manage_launch_task.

list_teamsA

List all teams in account.

USE WHEN: "What teams exist?", "Team structure" For individual user details, use list_users instead.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/olgasafonova/productplan-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server