harmony-mcp 1.0.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.
Files changed (4) hide show
  1. package/README.md +181 -0
  2. package/dist/cli.js +25693 -0
  3. package/dist/index.js +23743 -0
  4. package/package.json +52 -0
package/README.md ADDED
@@ -0,0 +1,181 @@
1
+ # harmony-mcp
2
+
3
+ MCP (Model Context Protocol) server for Harmony Kanban board. Enables Claude Code, Claude Desktop, and other LLMs to interact with your Harmony boards.
4
+
5
+ ## Features
6
+
7
+ - **20+ MCP Tools** for full board control (cards, columns, labels, subtasks)
8
+ - **Natural Language Processing** via voice-nlu edge function
9
+ - **API Key Authentication** - no database credentials required
10
+
11
+ ## Quick Start
12
+
13
+ ### 1. Install
14
+
15
+ ```bash
16
+ npm install -g harmony-mcp
17
+ ```
18
+
19
+ ### 2. Generate an API Key
20
+
21
+ 1. Log into [Harmony](https://gethmy.com)
22
+ 2. Go to **Settings → API Keys**
23
+ 3. Click **"Generate New Key"**
24
+ 4. Copy the key (it starts with `hmy_`)
25
+
26
+ ### 3. Configure
27
+
28
+ ```bash
29
+ harmony-mcp configure --api-key hmy_your_key_here
30
+ ```
31
+
32
+ Or run interactively:
33
+
34
+ ```bash
35
+ harmony-mcp configure
36
+ ```
37
+
38
+ ### 4. Add to Claude Code
39
+
40
+ ```bash
41
+ claude mcp add harmony -- harmony-mcp serve
42
+ ```
43
+
44
+ Or add manually to `~/.claude/settings.json`:
45
+
46
+ ```json
47
+ {
48
+ "mcpServers": {
49
+ "harmony": {
50
+ "command": "harmony-mcp",
51
+ "args": ["serve"]
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ That's it! Your API key is stored securely in `~/.harmony-mcp/config.json`.
58
+
59
+ ## CLI Commands
60
+
61
+ ```bash
62
+ harmony-mcp configure # Set up API key
63
+ harmony-mcp status # Show current config
64
+ harmony-mcp reset # Clear configuration
65
+ harmony-mcp set-workspace ID # Set active workspace
66
+ harmony-mcp set-project ID # Set active project
67
+ harmony-mcp serve # Start MCP server
68
+ ```
69
+
70
+ ## Available Tools
71
+
72
+ ### Card Operations
73
+ - `harmony_create_card` - Create a new card
74
+ - `harmony_update_card` - Update card properties
75
+ - `harmony_move_card` - Move card to different column
76
+ - `harmony_delete_card` - Delete a card
77
+ - `harmony_assign_card` - Assign to team member
78
+ - `harmony_search_cards` - Search by title/description
79
+ - `harmony_get_card` - Get card details
80
+
81
+ ### Column Operations
82
+ - `harmony_create_column` - Create new column
83
+ - `harmony_update_column` - Update column properties
84
+ - `harmony_delete_column` - Delete column
85
+
86
+ ### Label Operations
87
+ - `harmony_create_label` - Create new label
88
+ - `harmony_add_label_to_card` - Add label to card
89
+ - `harmony_remove_label_from_card` - Remove label
90
+
91
+ ### Subtask Operations
92
+ - `harmony_create_subtask` - Create subtask
93
+ - `harmony_toggle_subtask` - Toggle completion
94
+ - `harmony_delete_subtask` - Delete subtask
95
+
96
+ ### Context Operations
97
+ - `harmony_list_workspaces` - List workspaces
98
+ - `harmony_list_projects` - List projects
99
+ - `harmony_get_board` - Get full board state
100
+ - `harmony_get_workspace_members` - Get team members
101
+ - `harmony_set_workspace_context` - Set active workspace
102
+ - `harmony_set_project_context` - Set active project
103
+ - `harmony_get_context` - Get current context
104
+
105
+ ### Natural Language
106
+ - `harmony_process_command` - Process natural language commands
107
+
108
+ ## Direct API Access
109
+
110
+ You can also call the Harmony API directly from any HTTP client:
111
+
112
+ ```bash
113
+ curl -X GET "https://YOUR_PROJECT.supabase.co/functions/v1/harmony-api/workspaces" \
114
+ -H "X-API-Key: hmy_your_key_here"
115
+ ```
116
+
117
+ ### API Endpoints
118
+
119
+ | Endpoint | Method | Description |
120
+ |----------|--------|-------------|
121
+ | `/workspaces` | GET | List workspaces |
122
+ | `/workspaces/:id/projects` | GET | List projects in workspace |
123
+ | `/workspaces/:id/members` | GET | Get workspace members |
124
+ | `/board/:projectId` | GET | Get full board state |
125
+ | `/cards` | POST | Create card |
126
+ | `/cards/:id` | GET | Get card |
127
+ | `/cards/:id` | PATCH | Update card |
128
+ | `/cards/:id` | DELETE | Delete card |
129
+ | `/cards/:id/move` | POST | Move card |
130
+ | `/search?q=query` | GET | Search cards |
131
+ | `/columns` | POST | Create column |
132
+ | `/columns/:id` | PATCH | Update column |
133
+ | `/columns/:id` | DELETE | Delete column |
134
+ | `/labels` | POST | Create label |
135
+ | `/cards/:id/labels` | POST | Add label to card |
136
+ | `/cards/:id/labels/:labelId` | DELETE | Remove label |
137
+ | `/subtasks` | POST | Create subtask |
138
+ | `/subtasks/:id/toggle` | POST | Toggle subtask |
139
+ | `/subtasks/:id` | DELETE | Delete subtask |
140
+ | `/nlu` | POST | Process natural language |
141
+
142
+ ## Configuration
143
+
144
+ Your configuration is stored in `~/.harmony-mcp/config.json`:
145
+
146
+ ```json
147
+ {
148
+ "apiKey": "hmy_...",
149
+ "apiUrl": "https://xxx.supabase.co/functions/v1/harmony-api",
150
+ "activeWorkspaceId": null,
151
+ "activeProjectId": null
152
+ }
153
+ ```
154
+
155
+ ## Architecture
156
+
157
+ ```
158
+ ┌─────────────────┐ MCP Protocol ┌──────────────────┐
159
+ │ Claude Code │ ───────────────────────▶│ harmony-mcp │
160
+ │ Claude Desktop │ │ (local server) │
161
+ │ Custom Agents │ └────────┬─────────┘
162
+ └─────────────────┘ │
163
+ │ API Key Auth
164
+
165
+ ┌──────────────────┐
166
+ │ Harmony API │
167
+ │ (Edge Function) │
168
+ └────────┬─────────┘
169
+
170
+
171
+ ┌──────────────────┐
172
+ │ Supabase │
173
+ │ (Database) │
174
+ └──────────────────┘
175
+ ```
176
+
177
+ **Key Benefits:**
178
+ - No Supabase credentials needed - just a Harmony API key
179
+ - Any Harmony user can use it
180
+ - Business logic stays in Harmony
181
+ - Centralized security and rate limiting