@pollychrome/joan-mcp 1.0.0 → 1.0.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 +59 -199
- package/package.json +4 -5
package/README.md
CHANGED
|
@@ -12,212 +12,111 @@ Model Context Protocol (MCP) server for the Joan productivity app. Enables AI as
|
|
|
12
12
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
15
|
-
### Option 1:
|
|
15
|
+
### Option 1: npx (Recommended - No Install Required)
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
|
|
19
|
-
npm install
|
|
20
|
-
npm run build
|
|
21
|
-
npm link
|
|
22
|
-
|
|
23
|
-
# Now available globally:
|
|
24
|
-
joan-mcp init
|
|
18
|
+
npx @pollychrome/joan-mcp init
|
|
25
19
|
```
|
|
26
20
|
|
|
27
|
-
|
|
21
|
+
This single command will:
|
|
22
|
+
1. Open your browser to authenticate with Joan
|
|
23
|
+
2. Store credentials securely on your machine
|
|
24
|
+
3. Configure Claude Code automatically
|
|
25
|
+
|
|
26
|
+
### Option 2: Global Install
|
|
28
27
|
|
|
29
28
|
```bash
|
|
30
|
-
npm install -g @joan
|
|
29
|
+
npm install -g @pollychrome/joan-mcp
|
|
31
30
|
|
|
32
|
-
#
|
|
33
|
-
|
|
31
|
+
# Then run:
|
|
32
|
+
joan-mcp init
|
|
34
33
|
```
|
|
35
34
|
|
|
36
35
|
### Option 3: From Source (Development)
|
|
37
36
|
|
|
38
37
|
```bash
|
|
39
|
-
|
|
38
|
+
git clone https://github.com/pollychrome/joan-mcp.git
|
|
39
|
+
cd joan-mcp
|
|
40
40
|
npm install
|
|
41
|
-
|
|
41
|
+
npm run build
|
|
42
|
+
npm link
|
|
43
|
+
joan-mcp init
|
|
42
44
|
```
|
|
43
45
|
|
|
44
|
-
## Quick Start
|
|
45
|
-
|
|
46
|
-
Run the setup wizard to authenticate and configure Claude Code in one command:
|
|
46
|
+
## Quick Start
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
|
-
|
|
50
|
-
cd /path/to/Joan/mcp-server && npx tsx src/cli.ts init
|
|
51
|
-
|
|
52
|
-
# Or after global install
|
|
53
|
-
joan-mcp init
|
|
49
|
+
npx @pollychrome/joan-mcp init
|
|
54
50
|
```
|
|
55
51
|
|
|
56
|
-
|
|
57
|
-
1. Open your browser to authenticate with Joan
|
|
58
|
-
2. Store the token encrypted in `~/.joan-mcp/credentials.json`
|
|
59
|
-
3. Automatically configure Claude Code to use Joan MCP
|
|
60
|
-
|
|
61
|
-
After setup, restart Claude Code and you're ready to go!
|
|
62
|
-
|
|
63
|
-
## Using Joan MCP in Other Projects
|
|
64
|
-
|
|
65
|
-
Once you've completed the initial setup above, you can use Joan MCP from **any project repository**. This lets you create tasks, track progress, and manage your work directly while coding on other projects.
|
|
66
|
-
|
|
67
|
-
### Option A: Global Configuration (Recommended)
|
|
52
|
+
After setup, **restart Claude Code** and you're ready to go!
|
|
68
53
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
**Location:** `~/.claude/settings.json`
|
|
72
|
-
|
|
73
|
-
```json
|
|
74
|
-
{
|
|
75
|
-
"mcpServers": {
|
|
76
|
-
"joan": {
|
|
77
|
-
"command": "npx",
|
|
78
|
-
"args": ["tsx", "/Users/YOUR_USERNAME/Joan/mcp-server/src/cli.ts", "serve"]
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
```
|
|
54
|
+
## Using Joan MCP in Any Project
|
|
83
55
|
|
|
84
|
-
|
|
56
|
+
Once you run `npx @pollychrome/joan-mcp init`, Joan is automatically configured globally. It works in **any project** without additional setup.
|
|
85
57
|
|
|
86
|
-
###
|
|
58
|
+
### Example Prompts
|
|
87
59
|
|
|
88
|
-
|
|
60
|
+
While working on any codebase, you can say:
|
|
89
61
|
|
|
90
|
-
```json
|
|
91
|
-
{
|
|
92
|
-
"mcpServers": {
|
|
93
|
-
"joan": {
|
|
94
|
-
"command": "npx",
|
|
95
|
-
"args": ["tsx", "/Users/YOUR_USERNAME/Joan/mcp-server/src/cli.ts", "serve"]
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
62
|
```
|
|
63
|
+
"Create a task in Joan for the bug I just found"
|
|
100
64
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
After configuring, restart Claude Code and verify Joan MCP is connected:
|
|
65
|
+
"Show me my Joan projects"
|
|
104
66
|
|
|
105
|
-
|
|
106
|
-
2. Ask: "Show me my Joan projects"
|
|
107
|
-
3. If connected, you'll see your projects list
|
|
67
|
+
"Add a note in Joan about this architecture decision"
|
|
108
68
|
|
|
109
|
-
|
|
69
|
+
"Mark my 'Review PR #42' task as completed"
|
|
110
70
|
|
|
111
|
-
|
|
71
|
+
"What tasks do I have in my Backend project?"
|
|
112
72
|
|
|
73
|
+
"Create a milestone called 'v2.0 Release' in Joan"
|
|
113
74
|
```
|
|
114
|
-
"Create a task in my Joan project for the bug I just found in this codebase"
|
|
115
75
|
|
|
116
|
-
|
|
76
|
+
### How It Works
|
|
117
77
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
"Mark my 'Review PR #42' task as completed in Joan"
|
|
121
|
-
|
|
122
|
-
"Create a milestone in Joan called 'v2.0 Release' for my current sprint"
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### How It Works (Self-Describing Server)
|
|
126
|
-
|
|
127
|
-
Joan MCP uses the MCP protocol's `instructions` field to automatically describe itself to AI assistants. When Claude Code connects to the Joan MCP server, it receives:
|
|
128
|
-
|
|
129
|
-
- A description of what Joan is
|
|
78
|
+
Joan MCP is **self-describing** - it automatically tells Claude Code:
|
|
79
|
+
- What Joan is and what it does
|
|
130
80
|
- All available tools and their parameters
|
|
131
|
-
- All available resources and
|
|
132
|
-
-
|
|
133
|
-
|
|
134
|
-
**This means you don't need to manually document Joan in your CLAUDE.md files** - the server tells Claude Code everything it needs to know during initialization.
|
|
81
|
+
- All available resources and URIs
|
|
82
|
+
- Valid field values (status, priority, etc.)
|
|
135
83
|
|
|
136
|
-
|
|
84
|
+
No manual documentation needed in your CLAUDE.md files.
|
|
137
85
|
|
|
138
|
-
|
|
139
|
-
1. Ensure the path to Joan repository is absolute (starts with `/`)
|
|
140
|
-
2. Verify Joan's mcp-server has dependencies installed: `cd /path/to/Joan/mcp-server && npm install`
|
|
141
|
-
3. Restart Claude Code completely (not just the conversation)
|
|
86
|
+
### Manual Configuration (Optional)
|
|
142
87
|
|
|
143
|
-
|
|
144
|
-
- Credentials are stored globally at `~/.joan-mcp/credentials.json`
|
|
145
|
-
- Re-authenticate from any directory: `cd /path/to/Joan/mcp-server && npx tsx src/cli.ts login`
|
|
146
|
-
|
|
147
|
-
## Manual Setup
|
|
148
|
-
|
|
149
|
-
If you prefer to set up manually, follow these steps:
|
|
150
|
-
|
|
151
|
-
### Step 1: Authenticate
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
# From source
|
|
155
|
-
npx tsx src/cli.ts login
|
|
156
|
-
|
|
157
|
-
# Or after global install
|
|
158
|
-
joan-mcp login
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### Step 2: Configure Claude Code
|
|
162
|
-
|
|
163
|
-
Add the Joan MCP server to your Claude Code configuration:
|
|
164
|
-
|
|
165
|
-
**For development (from source):**
|
|
166
|
-
|
|
167
|
-
Add to `~/.config/claude-code/settings.json` or your project's `.claude/settings.json`:
|
|
88
|
+
The `init` command configures this automatically, but if needed, add to `~/.claude/settings.json`:
|
|
168
89
|
|
|
169
90
|
```json
|
|
170
91
|
{
|
|
171
92
|
"mcpServers": {
|
|
172
93
|
"joan": {
|
|
173
94
|
"command": "npx",
|
|
174
|
-
"args": ["
|
|
95
|
+
"args": ["@pollychrome/joan-mcp", "serve"]
|
|
175
96
|
}
|
|
176
97
|
}
|
|
177
98
|
}
|
|
178
99
|
```
|
|
179
100
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
```json
|
|
183
|
-
{
|
|
184
|
-
"mcpServers": {
|
|
185
|
-
"joan": {
|
|
186
|
-
"command": "joan-mcp",
|
|
187
|
-
"args": ["serve"]
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
```
|
|
101
|
+
### Troubleshooting
|
|
192
102
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
```json
|
|
198
|
-
{
|
|
199
|
-
"mcpServers": {
|
|
200
|
-
"joan": {
|
|
201
|
-
"command": "joan-mcp",
|
|
202
|
-
"args": ["serve"],
|
|
203
|
-
"env": {
|
|
204
|
-
"JOAN_AUTH_TOKEN": "your-jwt-token-here"
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
```
|
|
103
|
+
**Joan MCP not working:**
|
|
104
|
+
1. Restart Claude Code completely
|
|
105
|
+
2. Run `npx @pollychrome/joan-mcp status` to check auth
|
|
106
|
+
3. Run `npx @pollychrome/joan-mcp login` to re-authenticate
|
|
210
107
|
|
|
211
108
|
## CLI Commands
|
|
212
109
|
|
|
110
|
+
All commands can be run with `npx @pollychrome/joan-mcp <command>`:
|
|
111
|
+
|
|
213
112
|
| Command | Description |
|
|
214
113
|
|---------|-------------|
|
|
215
|
-
| `
|
|
216
|
-
| `
|
|
217
|
-
| `
|
|
218
|
-
| `
|
|
219
|
-
| `
|
|
220
|
-
| `
|
|
114
|
+
| `init` | Full setup wizard (login + configure Claude Code) |
|
|
115
|
+
| `login` | Authenticate with Joan (opens browser) |
|
|
116
|
+
| `logout` | Clear stored credentials |
|
|
117
|
+
| `status` | Show authentication status |
|
|
118
|
+
| `serve` | Start the MCP server (default) |
|
|
119
|
+
| `help` | Show help message |
|
|
221
120
|
|
|
222
121
|
## Available Tools
|
|
223
122
|
|
|
@@ -287,46 +186,6 @@ These resources provide read-only access to Joan data:
|
|
|
287
186
|
| `joan://notes` | All notes |
|
|
288
187
|
| `joan://notes/{id}` | Note details |
|
|
289
188
|
|
|
290
|
-
## Usage Examples
|
|
291
|
-
|
|
292
|
-
Once configured, you can interact with Joan through Claude Code:
|
|
293
|
-
|
|
294
|
-
### View Projects
|
|
295
|
-
|
|
296
|
-
```
|
|
297
|
-
"Show me all my projects in Joan"
|
|
298
|
-
```
|
|
299
|
-
|
|
300
|
-
### Create Tasks
|
|
301
|
-
|
|
302
|
-
```
|
|
303
|
-
"Create a task in my 'Website Redesign' project for implementing the new header component"
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
### Update Task Status
|
|
307
|
-
|
|
308
|
-
```
|
|
309
|
-
"Mark task ABC-123 as completed"
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
### Create Milestones
|
|
313
|
-
|
|
314
|
-
```
|
|
315
|
-
"Create a milestone called 'Beta Release' in my project with a target date of next Friday"
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
### Link Tasks to Milestones
|
|
319
|
-
|
|
320
|
-
```
|
|
321
|
-
"Link these 3 tasks to the Beta Release milestone"
|
|
322
|
-
```
|
|
323
|
-
|
|
324
|
-
### Check Progress
|
|
325
|
-
|
|
326
|
-
```
|
|
327
|
-
"What's the progress on my Q4 Goals?"
|
|
328
|
-
```
|
|
329
|
-
|
|
330
189
|
## Development
|
|
331
190
|
|
|
332
191
|
### Run in Development Mode
|
|
@@ -366,19 +225,20 @@ npm run build
|
|
|
366
225
|
|
|
367
226
|
### "Authentication failed"
|
|
368
227
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
228
|
+
```bash
|
|
229
|
+
npx @pollychrome/joan-mcp logout
|
|
230
|
+
npx @pollychrome/joan-mcp login
|
|
231
|
+
```
|
|
372
232
|
|
|
373
233
|
### "Token expired"
|
|
374
234
|
|
|
375
|
-
Tokens expire after 7 days.
|
|
235
|
+
Tokens expire after 7 days. Run `npx @pollychrome/joan-mcp login` to re-authenticate.
|
|
376
236
|
|
|
377
237
|
### MCP server not connecting
|
|
378
238
|
|
|
379
|
-
1.
|
|
380
|
-
2.
|
|
381
|
-
3.
|
|
239
|
+
1. Restart Claude Code completely
|
|
240
|
+
2. Check status: `npx @pollychrome/joan-mcp status`
|
|
241
|
+
3. Re-run setup: `npx @pollychrome/joan-mcp init`
|
|
382
242
|
|
|
383
243
|
## License
|
|
384
244
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pollychrome/joan-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "MCP server for Joan productivity app - enables AI assistants to manage projects, tasks, goals, milestones, and notes",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,12 +27,11 @@
|
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"repository": {
|
|
29
29
|
"type": "git",
|
|
30
|
-
"url": "git+https://github.com/pollychrome/
|
|
31
|
-
"directory": "mcp-server"
|
|
30
|
+
"url": "git+https://github.com/pollychrome/joan-mcp.git"
|
|
32
31
|
},
|
|
33
|
-
"homepage": "https://github.com/pollychrome/
|
|
32
|
+
"homepage": "https://github.com/pollychrome/joan-mcp#readme",
|
|
34
33
|
"bugs": {
|
|
35
|
-
"url": "https://github.com/pollychrome/
|
|
34
|
+
"url": "https://github.com/pollychrome/joan-mcp/issues"
|
|
36
35
|
},
|
|
37
36
|
"dependencies": {
|
|
38
37
|
"@modelcontextprotocol/sdk": "^1.0.0",
|