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.
- package/README.md +181 -0
- package/dist/cli.js +25693 -0
- package/dist/index.js +23743 -0
- 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
|