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 +1 -1
- package/dist/cli.js +63 -62
- package/dist/init.js +63 -62
- package/package.json +1 -1
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
|
-
- **
|
|
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
|
-
|
|
13795
|
+
Start work on a Harmony card. Card reference: $ARGUMENTS
|
|
13796
13796
|
|
|
13797
|
-
##
|
|
13797
|
+
## 1. Find & Fetch Card
|
|
13798
13798
|
|
|
13799
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
13815
|
-
2. Use \`harmony_add_label_to_card\` to add it to the card
|
|
13821
|
+
## 4. Generate Work Prompt
|
|
13816
13822
|
|
|
13817
|
-
|
|
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
|
-
|
|
13820
|
-
|
|
13821
|
-
|
|
13822
|
-
|
|
13823
|
-
|
|
13824
|
-
|
|
13825
|
-
|
|
13826
|
-
|
|
13827
|
-
|
|
13828
|
-
|
|
13829
|
-
|
|
13830
|
-
|
|
13831
|
-
|
|
13832
|
-
|
|
13833
|
-
|
|
13834
|
-
|
|
13835
|
-
|
|
13836
|
-
|
|
13837
|
-
|
|
13838
|
-
|
|
13839
|
-
|
|
13840
|
-
|
|
13841
|
-
|
|
13842
|
-
|
|
13843
|
-
**
|
|
13844
|
-
|
|
13845
|
-
|
|
13846
|
-
|
|
13847
|
-
|
|
13848
|
-
|
|
13849
|
-
|
|
13850
|
-
|
|
13851
|
-
|
|
13852
|
-
|
|
13853
|
-
|
|
13854
|
-
|
|
13855
|
-
|
|
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
|
-
|
|
36
|
+
Start work on a Harmony card. Card reference: $ARGUMENTS
|
|
37
37
|
|
|
38
|
-
##
|
|
38
|
+
## 1. Find & Fetch Card
|
|
39
39
|
|
|
40
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
56
|
-
2. Use \`harmony_add_label_to_card\` to add it to the card
|
|
62
|
+
## 4. Generate Work Prompt
|
|
57
63
|
|
|
58
|
-
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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)) {
|