harmony-mcp 1.2.4 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -4,7 +4,7 @@ MCP (Model Context Protocol) server for Harmony Kanban board. Enables AI coding
4
4
 
5
5
  ## Features
6
6
 
7
- - **25+ MCP Tools** for full board control (cards, columns, labels, subtasks, links)
7
+ - **29 MCP Tools** for full board control (cards, columns, labels, subtasks, links)
8
8
  - **Card Linking** - create relationships between cards (blocks, relates_to, duplicates, is_part_of)
9
9
  - **Prompt Builder** - generate AI-ready prompts from cards with context
10
10
  - **Agent Session Tracking** - track work progress with timer badges
package/dist/cli.js CHANGED
@@ -13792,77 +13792,78 @@ import { join, dirname } from "node:path";
13792
13792
  import { homedir } from "node:os";
13793
13793
  var HARMONY_WORKFLOW_PROMPT = `# Harmony Card Workflow
13794
13794
 
13795
- You are starting work on a Harmony card. Follow this workflow:
13795
+ Start work on a Harmony card. Card reference: $ARGUMENTS
13796
13796
 
13797
- ## Step 1: Find the Card
13797
+ ## 1. Find & Fetch Card
13798
13798
 
13799
- The user provided: $ARGUMENTS
13799
+ Parse the reference and fetch the card:
13800
+ - \`#42\` or \`42\` → \`harmony_get_card_by_short_id\` with \`shortId: 42\`
13801
+ - UUID → \`harmony_get_card\` with \`cardId\`
13802
+ - Name/text → \`harmony_search_cards\` with \`query\`
13800
13803
 
13801
- Parse the card reference:
13802
- - If it starts with \`#\` followed by numbers (e.g., \`#42\`), use \`harmony_get_card_by_short_id\` with the number
13803
- - If it looks like a UUID, use \`harmony_get_card\` directly
13804
- - Otherwise, use \`harmony_search_cards\` to find by name
13804
+ ## 2. Get Board State
13805
13805
 
13806
- ## Step 2: Move to In Progress
13806
+ Call \`harmony_get_board\` to get columns and labels. From the response:
13807
+ - Find the "In Progress" (or "Progress") column ID
13808
+ - Find the "agent" label ID
13807
13809
 
13808
- Once you have the card:
13809
- 1. Get the board using \`harmony_get_board\` to find the "In Progress" column ID
13810
- 2. Use \`harmony_move_card\` to move the card to "In Progress"
13810
+ ## 3. Setup Card for Work
13811
13811
 
13812
- ## Step 3: Add Agent Label
13812
+ Execute these in sequence:
13813
+ 1. \`harmony_move_card\` → Move to "In Progress" column
13814
+ 2. \`harmony_add_label_to_card\` → Add "agent" label
13815
+ 3. \`harmony_start_agent_session\`:
13816
+ - \`cardId\`: Card UUID
13817
+ - \`agentIdentifier\`: Your agent identifier
13818
+ - \`agentName\`: Your agent name
13819
+ - \`currentTask\`: "Analyzing card requirements"
13813
13820
 
13814
- 1. From the board response, find the label named "agent"
13815
- 2. Use \`harmony_add_label_to_card\` to add it to the card
13821
+ ## 4. Generate Work Prompt
13816
13822
 
13817
- ## Step 4: Start Agent Session
13823
+ Call \`harmony_generate_prompt\` with:
13824
+ - \`cardId\` or \`shortId\` (+ \`projectId\` if using shortId)
13825
+ - \`variant\`: Select based on task:
13826
+ - \`"execute"\` (default) → Clear tasks, bug fixes, well-defined work
13827
+ - \`"analysis"\` → Complex features, unclear requirements
13828
+ - \`"draft"\` → Medium complexity, want feedback first
13818
13829
 
13819
- After adding the agent label, start tracking your work session:
13820
- 1. Use \`harmony_start_agent_session\` with:
13821
- - \`cardId\`: The card ID
13822
- - \`agentIdentifier\`: Your agent identifier
13823
- - \`agentName\`: Your agent name
13824
- - \`currentTask\`: A brief description of what you're about to do
13825
-
13826
- This enables the timer badge on the card to show your progress in real-time.
13827
-
13828
- ## Step 5: Display Card Details
13829
-
13830
- Show the user:
13831
- - Card title and short ID
13832
- - Description (if any)
13833
- - Priority
13834
- - Current labels
13835
- - Due date (if set)
13836
-
13837
- ## Step 6: Implement the Solution
13838
-
13839
- 1. Use \`harmony_generate_prompt\` with the card ID to get role-based guidance
13840
- 2. Follow the generated prompt to implement the solution
13841
- 3. Test the changes
13842
-
13843
- **During implementation, update your progress periodically:**
13844
- - Use \`harmony_update_agent_progress\` to report:
13845
- - \`progressPercent\`: Estimated completion (0-100)
13846
- - \`currentTask\`: What you're currently doing
13847
- - \`blockers\`: Any issues blocking progress (set \`status: "blocked"\` if blocked)
13848
-
13849
- ## Step 7: Complete Work
13850
-
13851
- When implementation is complete:
13852
- 1. Use \`harmony_end_agent_session\` with:
13853
- - \`cardId\`: The card ID
13854
- - \`status\`: "completed"
13855
- - \`progressPercent\`: 100
13856
- 2. Use \`harmony_move_card\` to move the card to the "Review" column
13857
- 3. Summarize what was accomplished
13858
-
13859
- ## Important Notes
13860
- - Always read the card description carefully before starting
13861
- - If the task is unclear, ask for clarification
13862
- - Make commits as appropriate during implementation
13863
- - The "agent" label indicates AI is working on the card
13864
- - Update progress at meaningful milestones, not constantly
13865
- - If you need to pause work, call \`harmony_end_agent_session\` with \`status: "paused"\`
13830
+ The generated prompt provides role framing, focus areas, subtasks, linked cards, and suggested outputs.
13831
+
13832
+ ## 5. Display Card Summary
13833
+
13834
+ Show the user: Card title, short ID, role, priority, labels, due date, description, and subtasks.
13835
+
13836
+ ## 6. Implement Solution
13837
+
13838
+ Work on the card following the generated prompt's guidance. Update progress at milestones:
13839
+ - \`harmony_update_agent_progress\` with \`progressPercent\` (0-100), \`currentTask\`, \`status\`, \`blockers\`
13840
+
13841
+ **Progress checkpoints:** 20% (exploration), 50% (implementation), 80% (testing), 100% (done)
13842
+
13843
+ ## 7. Complete Work
13844
+
13845
+ When finished:
13846
+ 1. \`harmony_end_agent_session\` with \`status: "completed"\`, \`progressPercent: 100\`
13847
+ 2. \`harmony_move_card\` to "Review" column
13848
+ 3. Summarize accomplishments
13849
+
13850
+ If pausing: \`harmony_end_agent_session\` with \`status: "paused"\`
13851
+
13852
+ ## Key Tools Reference
13853
+
13854
+ **Cards:** \`harmony_get_card\`, \`harmony_get_card_by_short_id\`, \`harmony_search_cards\`, \`harmony_create_card\`, \`harmony_update_card\`, \`harmony_move_card\`, \`harmony_delete_card\`, \`harmony_assign_card\`
13855
+
13856
+ **Subtasks:** \`harmony_create_subtask\`, \`harmony_toggle_subtask\`, \`harmony_delete_subtask\`
13857
+
13858
+ **Labels:** \`harmony_add_label_to_card\`, \`harmony_remove_label_from_card\`, \`harmony_create_label\`
13859
+
13860
+ **Links:** \`harmony_add_link_to_card\`, \`harmony_remove_link_from_card\`, \`harmony_get_card_links\`
13861
+
13862
+ **Board:** \`harmony_get_board\`, \`harmony_list_projects\`, \`harmony_get_context\`, \`harmony_set_project_context\`
13863
+
13864
+ **Sessions:** \`harmony_start_agent_session\`, \`harmony_update_agent_progress\`, \`harmony_end_agent_session\`, \`harmony_get_agent_session\`
13865
+
13866
+ **AI:** \`harmony_generate_prompt\`, \`harmony_process_command\`
13866
13867
  `;
13867
13868
  function ensureDir(dirPath) {
13868
13869
  if (!existsSync(dirPath)) {
package/dist/init.js CHANGED
@@ -33,77 +33,78 @@ import { join, dirname } from "node:path";
33
33
  import { homedir } from "node:os";
34
34
  var HARMONY_WORKFLOW_PROMPT = `# Harmony Card Workflow
35
35
 
36
- You are starting work on a Harmony card. Follow this workflow:
36
+ Start work on a Harmony card. Card reference: $ARGUMENTS
37
37
 
38
- ## Step 1: Find the Card
38
+ ## 1. Find & Fetch Card
39
39
 
40
- The user provided: $ARGUMENTS
40
+ Parse the reference and fetch the card:
41
+ - \`#42\` or \`42\` → \`harmony_get_card_by_short_id\` with \`shortId: 42\`
42
+ - UUID → \`harmony_get_card\` with \`cardId\`
43
+ - Name/text → \`harmony_search_cards\` with \`query\`
41
44
 
42
- Parse the card reference:
43
- - If it starts with \`#\` followed by numbers (e.g., \`#42\`), use \`harmony_get_card_by_short_id\` with the number
44
- - If it looks like a UUID, use \`harmony_get_card\` directly
45
- - Otherwise, use \`harmony_search_cards\` to find by name
45
+ ## 2. Get Board State
46
46
 
47
- ## Step 2: Move to In Progress
47
+ Call \`harmony_get_board\` to get columns and labels. From the response:
48
+ - Find the "In Progress" (or "Progress") column ID
49
+ - Find the "agent" label ID
48
50
 
49
- Once you have the card:
50
- 1. Get the board using \`harmony_get_board\` to find the "In Progress" column ID
51
- 2. Use \`harmony_move_card\` to move the card to "In Progress"
51
+ ## 3. Setup Card for Work
52
52
 
53
- ## Step 3: Add Agent Label
53
+ Execute these in sequence:
54
+ 1. \`harmony_move_card\` → Move to "In Progress" column
55
+ 2. \`harmony_add_label_to_card\` → Add "agent" label
56
+ 3. \`harmony_start_agent_session\`:
57
+ - \`cardId\`: Card UUID
58
+ - \`agentIdentifier\`: Your agent identifier
59
+ - \`agentName\`: Your agent name
60
+ - \`currentTask\`: "Analyzing card requirements"
54
61
 
55
- 1. From the board response, find the label named "agent"
56
- 2. Use \`harmony_add_label_to_card\` to add it to the card
62
+ ## 4. Generate Work Prompt
57
63
 
58
- ## Step 4: Start Agent Session
64
+ Call \`harmony_generate_prompt\` with:
65
+ - \`cardId\` or \`shortId\` (+ \`projectId\` if using shortId)
66
+ - \`variant\`: Select based on task:
67
+ - \`"execute"\` (default) → Clear tasks, bug fixes, well-defined work
68
+ - \`"analysis"\` → Complex features, unclear requirements
69
+ - \`"draft"\` → Medium complexity, want feedback first
59
70
 
60
- After adding the agent label, start tracking your work session:
61
- 1. Use \`harmony_start_agent_session\` with:
62
- - \`cardId\`: The card ID
63
- - \`agentIdentifier\`: Your agent identifier
64
- - \`agentName\`: Your agent name
65
- - \`currentTask\`: A brief description of what you're about to do
66
-
67
- This enables the timer badge on the card to show your progress in real-time.
68
-
69
- ## Step 5: Display Card Details
70
-
71
- Show the user:
72
- - Card title and short ID
73
- - Description (if any)
74
- - Priority
75
- - Current labels
76
- - Due date (if set)
77
-
78
- ## Step 6: Implement the Solution
79
-
80
- 1. Use \`harmony_generate_prompt\` with the card ID to get role-based guidance
81
- 2. Follow the generated prompt to implement the solution
82
- 3. Test the changes
83
-
84
- **During implementation, update your progress periodically:**
85
- - Use \`harmony_update_agent_progress\` to report:
86
- - \`progressPercent\`: Estimated completion (0-100)
87
- - \`currentTask\`: What you're currently doing
88
- - \`blockers\`: Any issues blocking progress (set \`status: "blocked"\` if blocked)
89
-
90
- ## Step 7: Complete Work
91
-
92
- When implementation is complete:
93
- 1. Use \`harmony_end_agent_session\` with:
94
- - \`cardId\`: The card ID
95
- - \`status\`: "completed"
96
- - \`progressPercent\`: 100
97
- 2. Use \`harmony_move_card\` to move the card to the "Review" column
98
- 3. Summarize what was accomplished
99
-
100
- ## Important Notes
101
- - Always read the card description carefully before starting
102
- - If the task is unclear, ask for clarification
103
- - Make commits as appropriate during implementation
104
- - The "agent" label indicates AI is working on the card
105
- - Update progress at meaningful milestones, not constantly
106
- - If you need to pause work, call \`harmony_end_agent_session\` with \`status: "paused"\`
71
+ The generated prompt provides role framing, focus areas, subtasks, linked cards, and suggested outputs.
72
+
73
+ ## 5. Display Card Summary
74
+
75
+ Show the user: Card title, short ID, role, priority, labels, due date, description, and subtasks.
76
+
77
+ ## 6. Implement Solution
78
+
79
+ Work on the card following the generated prompt's guidance. Update progress at milestones:
80
+ - \`harmony_update_agent_progress\` with \`progressPercent\` (0-100), \`currentTask\`, \`status\`, \`blockers\`
81
+
82
+ **Progress checkpoints:** 20% (exploration), 50% (implementation), 80% (testing), 100% (done)
83
+
84
+ ## 7. Complete Work
85
+
86
+ When finished:
87
+ 1. \`harmony_end_agent_session\` with \`status: "completed"\`, \`progressPercent: 100\`
88
+ 2. \`harmony_move_card\` to "Review" column
89
+ 3. Summarize accomplishments
90
+
91
+ If pausing: \`harmony_end_agent_session\` with \`status: "paused"\`
92
+
93
+ ## Key Tools Reference
94
+
95
+ **Cards:** \`harmony_get_card\`, \`harmony_get_card_by_short_id\`, \`harmony_search_cards\`, \`harmony_create_card\`, \`harmony_update_card\`, \`harmony_move_card\`, \`harmony_delete_card\`, \`harmony_assign_card\`
96
+
97
+ **Subtasks:** \`harmony_create_subtask\`, \`harmony_toggle_subtask\`, \`harmony_delete_subtask\`
98
+
99
+ **Labels:** \`harmony_add_label_to_card\`, \`harmony_remove_label_from_card\`, \`harmony_create_label\`
100
+
101
+ **Links:** \`harmony_add_link_to_card\`, \`harmony_remove_link_from_card\`, \`harmony_get_card_links\`
102
+
103
+ **Board:** \`harmony_get_board\`, \`harmony_list_projects\`, \`harmony_get_context\`, \`harmony_set_project_context\`
104
+
105
+ **Sessions:** \`harmony_start_agent_session\`, \`harmony_update_agent_progress\`, \`harmony_end_agent_session\`, \`harmony_get_agent_session\`
106
+
107
+ **AI:** \`harmony_generate_prompt\`, \`harmony_process_command\`
107
108
  `;
108
109
  function ensureDir(dirPath) {
109
110
  if (!existsSync(dirPath)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harmony-mcp",
3
- "version": "1.2.4",
3
+ "version": "1.3.0",
4
4
  "description": "MCP server for Harmony Kanban board - enables AI coding agents to manage your boards",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",