harmony-mcp 1.5.0 → 1.5.1
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 +115 -140
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,69 +10,83 @@ MCP (Model Context Protocol) server for Harmony Kanban board. Enables AI coding
|
|
|
10
10
|
- **Agent Session Tracking** - track work progress with timer badges
|
|
11
11
|
- **Auto-Assignment** - automatically assign cards to you when starting agent sessions
|
|
12
12
|
- **Multi-Agent Support** - works with Claude Code, Codex, Cursor, Windsurf
|
|
13
|
-
- **
|
|
13
|
+
- **Smart Setup** - one command configures everything
|
|
14
14
|
- **Natural Language Processing** via voice-nlu edge function
|
|
15
15
|
- **API Key Authentication** - no database credentials required
|
|
16
16
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
|
-
### 1.
|
|
19
|
+
### 1. Get an API Key
|
|
20
20
|
|
|
21
21
|
1. Log into [Harmony](https://gethmy.com)
|
|
22
|
-
2. Go to **
|
|
22
|
+
2. Go to **Settings → API Keys**
|
|
23
23
|
3. Click **"Generate New Key"**
|
|
24
|
-
4. Copy the key (
|
|
24
|
+
4. Copy the key (starts with `hmy_`)
|
|
25
25
|
|
|
26
|
-
### 2. Run Setup
|
|
26
|
+
### 2. Run Setup
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
29
|
npx harmony-mcp setup
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
32
|
+
The smart setup wizard will:
|
|
33
|
+
- Validate your API key
|
|
34
|
+
- Detect installed AI agents (Claude Code, Cursor, Windsurf, Codex)
|
|
35
|
+
- Install skills globally (recommended) or locally
|
|
36
|
+
- Let you select your workspace and project
|
|
37
37
|
|
|
38
|
-
|
|
38
|
+
That's it! You're ready to use Harmony with your AI agent.
|
|
39
39
|
|
|
40
|
-
|
|
40
|
+
### Adding to a New Project
|
|
41
|
+
|
|
42
|
+
Just run setup again in the new project directory:
|
|
41
43
|
|
|
42
44
|
```bash
|
|
43
|
-
|
|
44
|
-
harmony-mcp setup
|
|
45
|
+
cd my-new-project
|
|
46
|
+
npx harmony-mcp setup
|
|
45
47
|
```
|
|
46
48
|
|
|
47
|
-
|
|
49
|
+
It detects your existing configuration and only asks for the project context.
|
|
48
50
|
|
|
49
|
-
|
|
51
|
+
## CLI Commands
|
|
50
52
|
|
|
51
53
|
```bash
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
# Setup (recommended)
|
|
55
|
+
npx harmony-mcp setup # Smart setup wizard
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
# Setup with flags (non-interactive)
|
|
58
|
+
npx harmony-mcp setup --api-key KEY --global --workspace ID --project ID
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
60
|
+
# Status and management
|
|
61
|
+
npx harmony-mcp status # Show current configuration
|
|
62
|
+
npx harmony-mcp reset # Clear all configuration
|
|
63
|
+
|
|
64
|
+
# Server (called by agents automatically)
|
|
65
|
+
npx harmony-mcp serve # Start MCP server
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
+
### Setup Options
|
|
69
|
+
|
|
70
|
+
| Flag | Description |
|
|
71
|
+
|------|-------------|
|
|
72
|
+
| `-k, --api-key <key>` | API key (skips prompt) |
|
|
73
|
+
| `-e, --email <email>` | Your email for auto-assignment |
|
|
74
|
+
| `-a, --agents <agents...>` | Agents to configure: claude, codex, cursor, windsurf |
|
|
75
|
+
| `-g, --global` | Install skills globally (recommended) |
|
|
76
|
+
| `-l, --local` | Install skills locally in project directory |
|
|
77
|
+
| `-w, --workspace <id>` | Set workspace context |
|
|
78
|
+
| `-p, --project <id>` | Set project context |
|
|
79
|
+
| `--skip-context` | Skip workspace/project selection |
|
|
80
|
+
| `-f, --force` | Overwrite existing configuration |
|
|
81
|
+
|
|
68
82
|
## Supported AI Agents
|
|
69
83
|
|
|
70
|
-
| Agent
|
|
71
|
-
|
|
72
|
-
| **Claude Code**
|
|
73
|
-
| **OpenAI Codex** |
|
|
74
|
-
| **Cursor**
|
|
75
|
-
| **Windsurf**
|
|
84
|
+
| Agent | Workflow Command | Config Location |
|
|
85
|
+
|-------|------------------|-----------------|
|
|
86
|
+
| **Claude Code** | `/hmy #42` | `~/.claude/settings.json` |
|
|
87
|
+
| **OpenAI Codex** | `/prompts:hmy #42` | `~/.codex/config.toml` |
|
|
88
|
+
| **Cursor** | MCP tools auto-available | `.cursor/mcp.json` |
|
|
89
|
+
| **Windsurf** | MCP tools auto-available | `~/.codeium/windsurf/mcp_config.json` |
|
|
76
90
|
|
|
77
91
|
## Card Workflow
|
|
78
92
|
|
|
@@ -81,40 +95,11 @@ When you start working on a card (e.g., `/hmy #42`):
|
|
|
81
95
|
1. **Find** - Locates the card by short ID, UUID, or name
|
|
82
96
|
2. **Move** - Moves the card to "In Progress" column
|
|
83
97
|
3. **Label** - Adds the "agent" label to indicate AI is working
|
|
84
|
-
4. **Assign** - Auto-assigns the card to you (if
|
|
98
|
+
4. **Assign** - Auto-assigns the card to you (if email is configured)
|
|
85
99
|
5. **Track** - Starts a session timer visible in the UI
|
|
86
100
|
6. **Implement** - Work on the task with progress updates
|
|
87
101
|
7. **Complete** - Move to "Review" when done
|
|
88
102
|
|
|
89
|
-
## CLI Commands
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
# Setup (recommended)
|
|
93
|
-
harmony-mcp setup # Interactive setup wizard (recommended)
|
|
94
|
-
|
|
95
|
-
# Legacy configuration commands
|
|
96
|
-
harmony-mcp configure # Set up API key (interactive)
|
|
97
|
-
harmony-mcp configure -k KEY -e EMAIL # Set up with API key and email
|
|
98
|
-
harmony-mcp init # Initialize for AI agents (interactive)
|
|
99
|
-
harmony-mcp init --all # Configure all supported agents
|
|
100
|
-
harmony-mcp init --detect # Auto-detect and configure installed agents
|
|
101
|
-
harmony-mcp init --agent X Y # Configure specific agents
|
|
102
|
-
harmony-mcp init -w WS -p PROJ # Initialize with local workspace/project context
|
|
103
|
-
|
|
104
|
-
# Status and management
|
|
105
|
-
harmony-mcp status # Show current config (global and local)
|
|
106
|
-
harmony-mcp reset # Clear configuration
|
|
107
|
-
harmony-mcp set-workspace ID # Set active workspace (global)
|
|
108
|
-
harmony-mcp set-workspace ID -l # Set active workspace (local project)
|
|
109
|
-
harmony-mcp set-project ID # Set active project (global)
|
|
110
|
-
harmony-mcp set-project ID -l # Set active project (local project)
|
|
111
|
-
harmony-mcp set-user-email EMAIL # Set email for auto-assignment
|
|
112
|
-
harmony-mcp clear-user-email # Disable auto-assignment
|
|
113
|
-
|
|
114
|
-
# Server
|
|
115
|
-
harmony-mcp serve # Start MCP server
|
|
116
|
-
```
|
|
117
|
-
|
|
118
103
|
## Available Tools
|
|
119
104
|
|
|
120
105
|
### Card Operations
|
|
@@ -208,74 +193,58 @@ The prompt builder automatically infers the agent role based on card labels (bug
|
|
|
208
193
|
You can also call the Harmony API directly from any HTTP client:
|
|
209
194
|
|
|
210
195
|
```bash
|
|
211
|
-
curl -X GET "https://gethmy.com/api/workspaces" \
|
|
196
|
+
curl -X GET "https://gethmy.com/api/v1/workspaces" \
|
|
212
197
|
-H "X-API-Key: hmy_your_key_here"
|
|
213
198
|
```
|
|
214
199
|
|
|
215
200
|
### API Endpoints
|
|
216
201
|
|
|
217
|
-
| Endpoint
|
|
218
|
-
|
|
219
|
-
| `/workspaces`
|
|
220
|
-
| `/workspaces/:id/projects`
|
|
221
|
-
| `/workspaces/:id/members`
|
|
222
|
-
| `/board/:projectId`
|
|
223
|
-
| `/cards`
|
|
224
|
-
| `/cards/:id`
|
|
225
|
-
| `/cards/:id`
|
|
226
|
-
| `/cards/:id`
|
|
227
|
-
| `/cards/:id/move`
|
|
228
|
-
| `/search?q=query`
|
|
229
|
-
| `/columns`
|
|
230
|
-
| `/columns/:id`
|
|
231
|
-
| `/columns/:id`
|
|
232
|
-
| `/labels`
|
|
233
|
-
| `/cards/:id/labels`
|
|
234
|
-
| `/cards/:id/labels/:labelId` | DELETE | Remove label
|
|
235
|
-
| `/subtasks`
|
|
236
|
-
| `/subtasks/:id/toggle`
|
|
237
|
-
| `/subtasks/:id`
|
|
238
|
-
| `/cards/:id/links`
|
|
239
|
-
| `/cards/:id/links`
|
|
240
|
-
| `/links/:id`
|
|
241
|
-
| `/cards/:id/prompt`
|
|
242
|
-
| `/nlu`
|
|
202
|
+
| Endpoint | Method | Description |
|
|
203
|
+
|----------|--------|-------------|
|
|
204
|
+
| `/v1/workspaces` | GET | List workspaces |
|
|
205
|
+
| `/v1/workspaces/:id/projects` | GET | List projects in workspace |
|
|
206
|
+
| `/v1/workspaces/:id/members` | GET | Get workspace members |
|
|
207
|
+
| `/v1/board/:projectId` | GET | Get full board state |
|
|
208
|
+
| `/v1/cards` | POST | Create card |
|
|
209
|
+
| `/v1/cards/:id` | GET | Get card |
|
|
210
|
+
| `/v1/cards/:id` | PATCH | Update card |
|
|
211
|
+
| `/v1/cards/:id` | DELETE | Delete card |
|
|
212
|
+
| `/v1/cards/:id/move` | POST | Move card |
|
|
213
|
+
| `/v1/search?q=query` | GET | Search cards |
|
|
214
|
+
| `/v1/columns` | POST | Create column |
|
|
215
|
+
| `/v1/columns/:id` | PATCH | Update column |
|
|
216
|
+
| `/v1/columns/:id` | DELETE | Delete column |
|
|
217
|
+
| `/v1/labels` | POST | Create label |
|
|
218
|
+
| `/v1/cards/:id/labels` | POST | Add label to card |
|
|
219
|
+
| `/v1/cards/:id/labels/:labelId` | DELETE | Remove label |
|
|
220
|
+
| `/v1/subtasks` | POST | Create subtask |
|
|
221
|
+
| `/v1/subtasks/:id/toggle` | POST | Toggle subtask |
|
|
222
|
+
| `/v1/subtasks/:id` | DELETE | Delete subtask |
|
|
223
|
+
| `/v1/cards/:id/links` | GET | Get card links |
|
|
224
|
+
| `/v1/cards/:id/links` | POST | Create card link |
|
|
225
|
+
| `/v1/links/:id` | DELETE | Delete card link |
|
|
226
|
+
| `/v1/cards/:id/prompt` | GET | Generate prompt from card |
|
|
227
|
+
| `/v1/nlu` | POST | Process natural language |
|
|
243
228
|
|
|
244
229
|
## Configuration
|
|
245
230
|
|
|
246
231
|
### Global Configuration
|
|
247
232
|
|
|
248
|
-
|
|
233
|
+
Stored in `~/.harmony-mcp/config.json`:
|
|
249
234
|
|
|
250
235
|
```json
|
|
251
236
|
{
|
|
252
237
|
"apiKey": "hmy_...",
|
|
253
238
|
"apiUrl": "https://gethmy.com/api",
|
|
239
|
+
"userEmail": "you@example.com",
|
|
254
240
|
"activeWorkspaceId": null,
|
|
255
|
-
"activeProjectId": null
|
|
256
|
-
"userEmail": "you@example.com"
|
|
241
|
+
"activeProjectId": null
|
|
257
242
|
}
|
|
258
243
|
```
|
|
259
244
|
|
|
260
|
-
### Auto-Assignment
|
|
261
|
-
|
|
262
|
-
When `userEmail` is configured, cards are automatically assigned to you when you start an agent session (e.g., via `/hmy #42`). This helps track who is working on what.
|
|
263
|
-
|
|
264
|
-
To enable auto-assignment:
|
|
265
|
-
```bash
|
|
266
|
-
harmony-mcp set-user-email you@example.com
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
To disable auto-assignment:
|
|
270
|
-
```bash
|
|
271
|
-
harmony-mcp clear-user-email
|
|
272
|
-
```
|
|
273
|
-
|
|
274
|
-
The email must match your Harmony account email to work correctly.
|
|
275
|
-
|
|
276
245
|
### Local Project Configuration
|
|
277
246
|
|
|
278
|
-
|
|
247
|
+
Stored in `.harmony-mcp.json` in your project root:
|
|
279
248
|
|
|
280
249
|
```json
|
|
281
250
|
{
|
|
@@ -288,45 +257,51 @@ For multi-project workflows, you can set project-specific context using local co
|
|
|
288
257
|
|
|
289
258
|
**Security**: API key is never stored locally (only in global config) to prevent accidental commits.
|
|
290
259
|
|
|
291
|
-
|
|
260
|
+
### Auto-Assignment
|
|
292
261
|
|
|
293
|
-
|
|
294
|
-
# During initialization
|
|
295
|
-
harmony-mcp init --workspace <ws-id> --project <proj-id>
|
|
262
|
+
When your email is configured during setup, cards are automatically assigned to you when you start an agent session (e.g., via `/hmy #42`). This helps track who is working on what.
|
|
296
263
|
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
harmony-mcp
|
|
264
|
+
To update your email:
|
|
265
|
+
```bash
|
|
266
|
+
npx harmony-mcp setup --email you@example.com
|
|
300
267
|
```
|
|
301
268
|
|
|
302
|
-
|
|
269
|
+
The email must match your Harmony account email to work correctly.
|
|
270
|
+
|
|
271
|
+
### Viewing Configuration
|
|
303
272
|
|
|
304
273
|
```bash
|
|
305
|
-
harmony-mcp status
|
|
274
|
+
npx harmony-mcp status
|
|
306
275
|
```
|
|
307
276
|
|
|
308
277
|
Example output:
|
|
309
278
|
|
|
310
279
|
```
|
|
311
280
|
Status: Configured
|
|
312
|
-
API Key: hmy_abc1...
|
|
313
|
-
API URL: https://gethmy.com/api
|
|
314
|
-
User Email: y***@example.com
|
|
315
|
-
|
|
316
|
-
Global Context:
|
|
317
|
-
Workspace: <global-ws-id>
|
|
318
|
-
Project: <global-proj-id>
|
|
319
|
-
|
|
320
|
-
Local Context (.harmony-mcp.json):
|
|
321
|
-
Workspace: <local-ws-id>
|
|
322
|
-
Project: <local-proj-id>
|
|
323
281
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
282
|
+
API:
|
|
283
|
+
Key: hmy_abc1...
|
|
284
|
+
URL: https://gethmy.com/api
|
|
285
|
+
Email: y***@example.com
|
|
286
|
+
|
|
287
|
+
Skills:
|
|
288
|
+
Installed: Yes (global)
|
|
289
|
+
~/.agents/skills/hmy/SKILL.md
|
|
290
|
+
|
|
291
|
+
Context:
|
|
292
|
+
Local config: .harmony-mcp.json
|
|
293
|
+
Workspace: my-team-id
|
|
294
|
+
Project: my-project-id
|
|
295
|
+
Global config: ~/.harmony-mcp/config.json
|
|
296
|
+
Workspace: (not set)
|
|
297
|
+
Project: (not set)
|
|
298
|
+
|
|
299
|
+
Active (effective):
|
|
300
|
+
Workspace: my-team-id ← local
|
|
301
|
+
Project: my-project-id ← local
|
|
327
302
|
```
|
|
328
303
|
|
|
329
|
-
|
|
304
|
+
### Recommended .gitignore
|
|
330
305
|
|
|
331
306
|
Add this to prevent accidentally committing local config:
|
|
332
307
|
|
|
@@ -339,10 +314,10 @@ Add this to prevent accidentally committing local config:
|
|
|
339
314
|
```
|
|
340
315
|
┌─────────────────┐ MCP Protocol ┌──────────────────┐
|
|
341
316
|
│ Claude Code │ ───────────────────────▶│ harmony-mcp │
|
|
342
|
-
│
|
|
343
|
-
│
|
|
344
|
-
|
|
345
|
-
|
|
317
|
+
│ Cursor │ │ (local server) │
|
|
318
|
+
│ Windsurf │ └────────┬─────────┘
|
|
319
|
+
│ Codex │ │
|
|
320
|
+
└─────────────────┘ │ API Key Auth
|
|
346
321
|
▼
|
|
347
322
|
┌──────────────────┐
|
|
348
323
|
│ Harmony API │
|
|
@@ -358,7 +333,7 @@ Add this to prevent accidentally committing local config:
|
|
|
358
333
|
|
|
359
334
|
**Key Benefits:**
|
|
360
335
|
|
|
361
|
-
- No
|
|
336
|
+
- No database credentials needed - just a Harmony API key
|
|
362
337
|
- Any Harmony user can use it
|
|
363
338
|
- Business logic stays in Harmony
|
|
364
339
|
- Centralized security and rate limiting
|