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.
Files changed (2) hide show
  1. package/README.md +115 -140
  2. 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
- - **One-Command Setup** - auto-configure all supported agents
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. Generate an API Key
19
+ ### 1. Get an API Key
20
20
 
21
21
  1. Log into [Harmony](https://gethmy.com)
22
- 2. Go to **Account → API Keys**
22
+ 2. Go to **Settings → API Keys**
23
23
  3. Click **"Generate New Key"**
24
- 4. Copy the key (it starts with `hmy_`)
24
+ 4. Copy the key (starts with `hmy_`)
25
25
 
26
- ### 2. Run Setup (Recommended)
26
+ ### 2. Run Setup
27
27
 
28
28
  ```bash
29
29
  npx harmony-mcp setup
30
30
  ```
31
31
 
32
- This interactive wizard will:
33
- - Prompt for your API key
34
- - Auto-detect your installed AI agents (Claude Code, Cursor, Windsurf, Codex)
35
- - Configure all detected agents automatically
36
- - Optionally install globally for faster startup
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
- ### Alternative: Global Install
38
+ That's it! You're ready to use Harmony with your AI agent.
39
39
 
40
- If you prefer a global installation:
40
+ ### Adding to a New Project
41
+
42
+ Just run setup again in the new project directory:
41
43
 
42
44
  ```bash
43
- npm install -g harmony-mcp
44
- harmony-mcp setup
45
+ cd my-new-project
46
+ npx harmony-mcp setup
45
47
  ```
46
48
 
47
- ### Manual Setup
49
+ It detects your existing configuration and only asks for the project context.
48
50
 
49
- For manual configuration of Claude Code:
51
+ ## CLI Commands
50
52
 
51
53
  ```bash
52
- claude mcp add harmony -- harmony-mcp serve
53
- ```
54
+ # Setup (recommended)
55
+ npx harmony-mcp setup # Smart setup wizard
54
56
 
55
- Or add to `~/.claude/settings.json`:
57
+ # Setup with flags (non-interactive)
58
+ npx harmony-mcp setup --api-key KEY --global --workspace ID --project ID
56
59
 
57
- ```json
58
- {
59
- "mcpServers": {
60
- "harmony": {
61
- "command": "harmony-mcp",
62
- "args": ["serve"]
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 | MCP Config | Workflow Command |
71
- | ---------------- | ------------------------------------- | ------------------------ |
72
- | **Claude Code** | `~/.claude/settings.json` | `/hmy #42` |
73
- | **OpenAI Codex** | `~/.codex/config.toml` | `/prompts:hmy #42` |
74
- | **Cursor** | `.cursor/mcp.json` | MCP tools auto-available |
75
- | **Windsurf** | `~/.codeium/windsurf/mcp_config.json` | MCP tools auto-available |
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 `userEmail` is configured)
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 | Method | Description |
218
- | ---------------------------- | ------ | -------------------------- |
219
- | `/workspaces` | GET | List workspaces |
220
- | `/workspaces/:id/projects` | GET | List projects in workspace |
221
- | `/workspaces/:id/members` | GET | Get workspace members |
222
- | `/board/:projectId` | GET | Get full board state |
223
- | `/cards` | POST | Create card |
224
- | `/cards/:id` | GET | Get card |
225
- | `/cards/:id` | PATCH | Update card |
226
- | `/cards/:id` | DELETE | Delete card |
227
- | `/cards/:id/move` | POST | Move card |
228
- | `/search?q=query` | GET | Search cards |
229
- | `/columns` | POST | Create column |
230
- | `/columns/:id` | PATCH | Update column |
231
- | `/columns/:id` | DELETE | Delete column |
232
- | `/labels` | POST | Create label |
233
- | `/cards/:id/labels` | POST | Add label to card |
234
- | `/cards/:id/labels/:labelId` | DELETE | Remove label |
235
- | `/subtasks` | POST | Create subtask |
236
- | `/subtasks/:id/toggle` | POST | Toggle subtask |
237
- | `/subtasks/:id` | DELETE | Delete subtask |
238
- | `/cards/:id/links` | GET | Get card links |
239
- | `/cards/:id/links` | POST | Create card link |
240
- | `/links/:id` | DELETE | Delete card link |
241
- | `/cards/:id/prompt` | GET | Generate prompt from card |
242
- | `/nlu` | POST | Process natural language |
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
- Your global configuration is stored in `~/.harmony-mcp/config.json`:
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
- For multi-project workflows, you can set project-specific context using local configuration. This is stored in `.harmony-mcp.json` in your project root:
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
- #### Setting Local Context
260
+ ### Auto-Assignment
292
261
 
293
- ```bash
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
- # Or separately
298
- harmony-mcp set-workspace <id> --local
299
- harmony-mcp set-project <id> --local
264
+ To update your email:
265
+ ```bash
266
+ npx harmony-mcp setup --email you@example.com
300
267
  ```
301
268
 
302
- #### Viewing Configuration
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
- Active (effective):
325
- Workspace: <local-ws-id> ← local
326
- Project: <local-proj-id> ← local
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
- #### Recommended .gitignore
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
- Claude Desktop │ │ (local server) │
343
- Custom Agents │ └────────┬─────────┘
344
- └─────────────────┘
345
- │ API Key Auth
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 Database credentials needed - just a Harmony API key
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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harmony-mcp",
3
- "version": "1.5.0",
3
+ "version": "1.5.1",
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",