hacknplan-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HACKNPLAN_GROUPS | No | JSON map of group label to project names for portfolio grouping. | |
| HACKNPLAN_API_KEY | Yes | Authorization: ApiKey <key> for the HacknPlan API. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| hacknplan_whoamiA | Return the authenticated HacknPlan user (id, username, email, name). Use first to confirm the API key works. |
| list_workspacesA | List HacknPlan workspaces visible to the API key. NOTE: Personal/Personal-Plus accounts return an empty list even though a 'Personal workspace' exists in the web UI — projects still work and are auto-assigned to it. Only Studio workspaces appear here. |
| list_projectsB | List all HacknPlan projects. |
| get_projectA | Get one project with its stages, categories, importance levels and boards rolled up — the structural overview you need before creating work items. |
| list_stagesC | List a project's stages (kanban columns). status is created|started|completed. |
| list_categoriesB | List a project's work-item categories. |
| list_tagsB | List a project's tags. |
| list_boardsA | List a project's boards (sprints/kanban boards). The default is 'Sprint 1'. Closed boards are hidden unless include_closed=true. |
| list_milestonesA | List a project's milestones (release/epic groupings). Closed milestones are hidden unless include_closed=true. |
| list_work_itemsA | List/search a project's work items with server-side filters. All filters are optional and AND-combined: board_id, stage_id, category_id, milestone_id, importance_level_id, tag_id, design_element_id, assigned_user_id, is_story, status ('open'|'closed'), text (free-text match). Paginated via limit/offset. For a forgiving name-based search that also works if a filter is unsupported, use find_work_items. |
| get_work_itemA | Get one work item with its sub-tasks (checklist) and comments. |
| create_projectA | Create a project. cost_metric is the STRING "Hours" or "Points" (capitalized). workspaceId is auto-assigned to your personal workspace (echoed back as 0). Returns the new project. |
| create_stageA | Create a kanban stage. status must be one of (lowercase): created | started | completed. Both color AND icon are required by the API (omitting icon returns HTTP 500); icon is a HacknPlan icon name (e.g. inbox, wrench, check, rocket, eye, ban). |
| create_categoryC | Create a work-item category. |
| create_tagC | Create a tag (label). |
| create_milestoneC | Create a milestone. due_date is ISO 8601 (e.g. '2026-06-30T00:00:00Z'). |
| create_work_itemA | Create a work item (task or user story). Required: title + importance_level_id (get it from get_project/list_*). category_id is required for tasks (not user stories). parent_id nests this item under a user story (the story→task hierarchy). assigned_user_ids assigns members; dependency_ids makes it blocked-by those items. sub_tasks is a list of checklist item titles. due_date/start_date are ISO 8601. If stage_id is given, the item is moved to that stage after creation (the API always creates new items in the default/first stage). |
| update_work_itemA | Partially update a work item: move stage, retitle, edit description, set start/due date, block/unblock, retag, re-prioritize (importance_level_id), recategorize (category_id), re-estimate (estimated_cost), move board/milestone, re-parent, or reassign (assigned_user_ids replaces the whole assignee set). Provide only the fields you want to change. |
| add_subtaskB | Add one sub-task (checklist item) to a work item. |
| add_commentA | Add a comment to a work item (markdown supported, max 5000 chars). |
| delete_work_itemA | Delete a work item. Destructive — set confirm=true to proceed. |
| delete_projectA | Delete an ENTIRE project and everything in it. Destructive — set confirm=true. |
| update_stageA | Update a kanban stage (re-name / re-color / re-icon / change status). status: created | started | closed (lowercase). color is hex; icon is a HacknPlan icon name (e.g. inbox, wrench, check, rocket, eye, ban). |
| delete_stageA | Delete a stage. Destructive (a project needs >=3 stages, one per status). confirm=true required. |
| update_categoryC | Update a work-item category (re-name / re-color / re-icon). |
| delete_categoryA | Delete a work-item category. Destructive. confirm=true required. (Useful to remove the game-dev defaults — Audio, Narrative, etc.) |
| update_tagA | Update a tag (re-name / re-color / re-icon / toggle icon-only display). |
| delete_tagA | Delete a tag. Destructive (removes it from all work items). confirm=true required. |
| list_importance_levelsA | List a project's importance/priority levels (Urgent/High/Normal/Low by default). |
| create_importance_levelC | Create an importance/priority level (color+icon). |
| update_importance_levelB | Update an importance level (re-name / re-color / re-icon / set default). |
| attach_tagC | Attach an existing tag to a work item. |
| detach_tagA | Remove a tag from a work item. |
| assign_userC | Assign a project user to a work item. |
| unassign_userB | Remove a user assignment from a work item. |
| list_project_usersA | List the members of a project (id, username). |
| list_subtasksA | List a work item's sub-tasks (its checklist), with completion state. |
| update_subtaskB | Update a sub-task (rename and/or mark complete/incomplete). |
| delete_subtaskC | Delete a sub-task. confirm=true required. |
| list_dependenciesB | List a work item's dependencies (the predecessors that block it). |
| add_dependencyA | Make work_item_id depend on (be blocked by) predecessor_id. The successor can't be completed until the predecessor is done. |
| remove_dependencyA | Remove a dependency from a work item. confirm=true required. |
| list_work_logsA | List the work logs (time entries) on a work item. |
| log_workA | Log time/effort on a work item. value = amount worked, in the project's costMetric unit (hours or points). comment is an optional note. Logs can only be edited within ~1 hour of creation. |
| list_design_element_typesB | List the design-element TYPES (node categories of the design model, e.g. System / Module / Feature). Repurpose as a feature-tree taxonomy. |
| create_design_element_typeB | Create a design-element type (a node category for the design/feature tree). |
| list_design_elementsB | List design elements (nodes of the design/feature/knowledge tree). Optionally filter by type_id. |
| get_design_elementB | Get one design element (with its documentation/description). |
| create_design_elementA | Create a design element (a node in the design/feature tree). type_id is a design-element type id; parent_id nests it under another element (omit for a root). Link work items to it so progress rolls up the tree. |
| update_design_elementA | Update a design element (rename, edit documentation, re-parent, change type). type_id and name are required by the API; pass the element's current values to keep them. Use get_design_element first to read them. |
| delete_design_elementA | Delete a design element (and its sub-tree). Destructive. confirm=true required. |
| create_boardA | Create a board (sprint/iteration). Optionally nest under a milestone and set start/due dates (ISO 8601). |
| close_boardC | Close (end) a board/sprint. |
| update_projectA | Update a project's name / description / cost metric ("Hours" or "Points"). |
| get_project_metricsB | Get a project's metrics (completion %, totals) — analytics Trello lacks. |
| get_milestone_metricsB | Get a milestone's metrics (burndown / completion). |
| list_attachmentsB | List the attachments on a work item. |
| portfolio_overviewA | ALL-PROJECTS birds-eye view — the cross-project portfolio dashboard HacknPlan has no native equivalent for. Rolls up every project: completion %, open/closed counts, and urgent / blocked / due-soon / overdue flags, grouped via HACKNPLAN_GROUPS. Use for 'how's everything doing', 'what's on fire across all projects', 'portfolio status'. |
| schedule_overviewA | ALL-PROJECTS deadline countdown — every work item that has a due date, across every project, bucketed by time horizon (Overdue / This week ≤7d / Next 2 weeks 8-14d / This month 15-30d / Later) with a live days-left countdown. Use for 'what's due soon', 'what's overdue', 'deadlines', 'what should I do this week'. |
| find_work_itemsA | Search a project's work items by free text and/or facets — the name-based lookup that saves chaining list→scan→act. query matches title or description (case-insensitive). Optional facet filters: importance (level name e.g. 'Urgent'), tag (name), stage (name). status: open|closed|all (default open). Use this to resolve a task you only know by name into its id before update_work_item / move / etc. |
| my_workA | List work items assigned to the authenticated user (from /users/me), optionally scoped to one project — the 'what am I working on' / standup view. By default only open items; set include_closed=true to see finished ones too. Relies on the assignee data the list endpoint returns inline. |
| plan_featureA | Break a feature down in ONE call: create a user story, then create its child tasks (parented to the story) — optionally each with its own checklist (sub_tasks). Tasks inherit importance_level_id, default_category_id, board_id and milestone_id unless overridden per task. This is the fast path for 'turn this feature into a story with tasks'. Returns the created story and tasks. |
| update_milestoneB | Update a milestone (rename, change due/start date, edit general info). Dates are ISO 8601. |
| delete_milestoneA | Delete a milestone. Destructive (work items are un-grouped, not deleted). confirm=true required. |
| update_boardA | Update a board/sprint (rename, change start/due date, description, or re-nest under a milestone). Dates are ISO 8601. |
| close_projectA | Close (archive) a project without deleting it — its work items and history are preserved. Reverse with reopen_project. |
| reopen_projectA | Reopen a previously closed/archived project. |
| close_milestoneA | Close (release) a milestone — marks it done without deleting it. Reverse with reopen_milestone. |
| reopen_milestoneB | Reopen a previously closed milestone. |
| reopen_boardA | Reopen a previously closed board/sprint (counterpart to close_board). |
| recent_activityA | Project activity/event feed — the 'what changed' / standup view. Returns events between |
| get_board_metricsA | Get a board's (sprint's) metrics — burndown / velocity / completion. Optionally scope to one user via user_id. |
| get_design_element_metricsA | Get a design element's metrics (work rolled up from items linked to it). include_children rolls up its whole sub-tree. |
| list_design_element_commentsA | List the comments/notes on a design element (design-doc discussion thread). |
| add_design_element_commentA | Add a comment/note to a design element (markdown supported, max 5000 chars). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mtuska/hacknplan-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server