@nestr/mcp 0.1.8 → 0.1.10
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 +35 -89
- package/package.json +1 -1
- package/web/index.html +45 -83
package/README.md
CHANGED
|
@@ -14,39 +14,31 @@ This MCP server allows AI assistants to interact with your Nestr workspace:
|
|
|
14
14
|
|
|
15
15
|
## Quick Start
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
**Visit [mcp.nestr.io](https://mcp.nestr.io)** for the easiest setup with step-by-step instructions for Claude Desktop, Claude Code, and Cursor.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
2. Click **Settings** (gear icon) in the top right
|
|
21
|
-
3. Go to the **Integrations** tab
|
|
22
|
-
4. Find **"Workspace API access"** and click **Configure**
|
|
23
|
-
5. Click **"New API key"** and copy it
|
|
24
|
-
|
|
25
|
-
### 2. Configure Your AI Client
|
|
19
|
+
### Claude Desktop
|
|
26
20
|
|
|
27
|
-
|
|
21
|
+
1. Go to **Settings → Connectors → Add custom connector**
|
|
22
|
+
2. Set **Name** to `Nestr` and **Remote MCP URL** to `https://mcp.nestr.io/mcp`
|
|
23
|
+
3. Click "Add" then "Authenticate" to log in with Nestr
|
|
28
24
|
|
|
29
|
-
|
|
25
|
+
### Claude Code
|
|
30
26
|
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
"mcpServers": {
|
|
34
|
-
"nestr": {
|
|
35
|
-
"command": "npx",
|
|
36
|
-
"args": ["-y", "@nestr/mcp"],
|
|
37
|
-
"env": {
|
|
38
|
-
"NESTR_API_KEY": "your-api-key-here"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
}
|
|
27
|
+
```bash
|
|
28
|
+
claude mcp add nestr --transport http https://mcp.nestr.io/mcp
|
|
43
29
|
```
|
|
44
30
|
|
|
45
|
-
|
|
31
|
+
Then run `/mcp` in Claude Code and click "Authenticate" to log in.
|
|
46
32
|
|
|
47
|
-
|
|
33
|
+
### Using the npm Package (Local)
|
|
34
|
+
|
|
35
|
+
If you prefer to run the MCP server locally:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
npx @nestr/mcp
|
|
39
|
+
```
|
|
48
40
|
|
|
49
|
-
|
|
41
|
+
Configure your AI client with:
|
|
50
42
|
|
|
51
43
|
```json
|
|
52
44
|
{
|
|
@@ -62,11 +54,12 @@ Add to your Claude Code MCP settings:
|
|
|
62
54
|
}
|
|
63
55
|
```
|
|
64
56
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
57
|
+
To get an API key:
|
|
58
|
+
1. Go to your [Nestr workspace](https://app.nestr.io)
|
|
59
|
+
2. Click **Settings** → **Integrations** → **Workspace API access** → **Configure**
|
|
60
|
+
3. Click **"New API key"** and copy it
|
|
68
61
|
|
|
69
|
-
|
|
62
|
+
## Start Using It
|
|
70
63
|
|
|
71
64
|
Ask your AI assistant things like:
|
|
72
65
|
|
|
@@ -75,7 +68,6 @@ Ask your AI assistant things like:
|
|
|
75
68
|
- "Create a new project called 'Q1 Planning'"
|
|
76
69
|
- "What are my current projects and their status?"
|
|
77
70
|
- "Who is responsible for customer support?"
|
|
78
|
-
- "Show me the structure of the Product circle"
|
|
79
71
|
|
|
80
72
|
## Available Tools
|
|
81
73
|
|
|
@@ -100,9 +92,9 @@ Ask your AI assistant things like:
|
|
|
100
92
|
| `nestr_list_labels` | List available labels |
|
|
101
93
|
| `nestr_get_label` | Get label details |
|
|
102
94
|
| `nestr_get_projects` | List projects with status |
|
|
103
|
-
| `nestr_get_insights` | Get
|
|
95
|
+
| `nestr_get_insights` | Get workspace metrics |
|
|
104
96
|
| `nestr_get_insight_history` | Get historical trend data for a metric |
|
|
105
|
-
| `nestr_get_workspace_apps` | List enabled apps/features
|
|
97
|
+
| `nestr_get_workspace_apps` | List enabled apps/features |
|
|
106
98
|
| `nestr_list_inbox` | List items in user's inbox (OAuth only) |
|
|
107
99
|
| `nestr_create_inbox_item` | Quick capture to inbox (OAuth only) |
|
|
108
100
|
| `nestr_get_inbox_item` | Get inbox item details (OAuth only) |
|
|
@@ -110,56 +102,17 @@ Ask your AI assistant things like:
|
|
|
110
102
|
|
|
111
103
|
## Authentication
|
|
112
104
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
### Option 1: API Key (Simple)
|
|
116
|
-
|
|
117
|
-
API keys provide full workspace access and are the easiest way to get started. See [Quick Start](#quick-start) above.
|
|
118
|
-
|
|
119
|
-
**Note:** API keys have full workspace access regardless of user permissions.
|
|
120
|
-
|
|
121
|
-
### Option 2: OAuth (Recommended for Hosted Service)
|
|
122
|
-
|
|
123
|
-
OAuth authentication respects user-specific permissions - the AI assistant can only access what the authenticated user can access.
|
|
124
|
-
|
|
125
|
-
#### Using the Hosted Service (mcp.nestr.io)
|
|
126
|
-
|
|
127
|
-
The hosted service at [mcp.nestr.io](https://mcp.nestr.io) supports OAuth out of the box:
|
|
128
|
-
|
|
129
|
-
1. Visit [mcp.nestr.io/oauth/authorize](https://mcp.nestr.io/oauth/authorize)
|
|
130
|
-
2. Log in with your Nestr account and authorize access
|
|
131
|
-
3. Copy the access token from the success page
|
|
132
|
-
4. Use the token in your MCP client configuration:
|
|
133
|
-
|
|
134
|
-
```json
|
|
135
|
-
{
|
|
136
|
-
"mcpServers": {
|
|
137
|
-
"nestr": {
|
|
138
|
-
"command": "npx",
|
|
139
|
-
"args": ["-y", "@nestr/mcp"],
|
|
140
|
-
"env": {
|
|
141
|
-
"NESTR_OAUTH_TOKEN": "your-oauth-token-here"
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
```
|
|
105
|
+
### OAuth (Recommended)
|
|
147
106
|
|
|
148
|
-
|
|
107
|
+
The hosted service at [mcp.nestr.io](https://mcp.nestr.io) handles OAuth automatically. Just add the server and authenticate through your browser.
|
|
149
108
|
|
|
150
|
-
|
|
109
|
+
OAuth respects user-specific permissions - the AI assistant can only access what the authenticated user can access.
|
|
151
110
|
|
|
152
|
-
|
|
153
|
-
2. Provide your callback URL (e.g., `https://your-domain.com/oauth/callback`)
|
|
154
|
-
3. Nestr will provide you with a `client_id` and `client_secret`
|
|
155
|
-
4. Set the following environment variables:
|
|
111
|
+
### API Key
|
|
156
112
|
|
|
157
|
-
|
|
158
|
-
NESTR_OAUTH_CLIENT_ID=your-client-id
|
|
159
|
-
NESTR_OAUTH_CLIENT_SECRET=your-client-secret
|
|
160
|
-
```
|
|
113
|
+
API keys provide full workspace access and work with the local npm package. See [Quick Start](#using-the-npm-package-local) above.
|
|
161
114
|
|
|
162
|
-
|
|
115
|
+
**Note:** API keys have full workspace access regardless of user permissions.
|
|
163
116
|
|
|
164
117
|
## Environment Variables
|
|
165
118
|
|
|
@@ -168,10 +121,8 @@ Once configured, users can authenticate via `/oauth/authorize` on your server.
|
|
|
168
121
|
| `NESTR_API_KEY` | Nestr API key (full workspace access) | Yes* |
|
|
169
122
|
| `NESTR_OAUTH_TOKEN` | OAuth token (respects user permissions) | Yes* |
|
|
170
123
|
| `NESTR_API_BASE` | API base URL (default: `https://app.nestr.io/api`) | No |
|
|
171
|
-
| `NESTR_OAUTH_CLIENT_ID` | OAuth client ID (for self-hosted OAuth) | No |
|
|
172
|
-
| `NESTR_OAUTH_CLIENT_SECRET` | OAuth client secret (for self-hosted OAuth) | No |
|
|
173
124
|
|
|
174
|
-
\* Either `NESTR_API_KEY` or `NESTR_OAUTH_TOKEN` is required.
|
|
125
|
+
\* Either `NESTR_API_KEY` or `NESTR_OAUTH_TOKEN` is required for local usage.
|
|
175
126
|
|
|
176
127
|
## Development
|
|
177
128
|
|
|
@@ -199,24 +150,19 @@ npm run build
|
|
|
199
150
|
npm run inspect
|
|
200
151
|
```
|
|
201
152
|
|
|
202
|
-
## Hosted Service
|
|
203
|
-
|
|
204
|
-
A hosted version is available at [mcp.nestr.io](https://mcp.nestr.io) for users who prefer not to run the server locally.
|
|
205
|
-
|
|
206
153
|
## Security
|
|
207
154
|
|
|
208
155
|
- Never commit your API key or OAuth token to version control
|
|
209
|
-
-
|
|
210
|
-
-
|
|
211
|
-
-
|
|
212
|
-
- Rotate keys/tokens if you suspect they've been compromised
|
|
156
|
+
- OAuth tokens respect user permissions and are recommended
|
|
157
|
+
- API keys provide full workspace access - use OAuth for granular permissions
|
|
158
|
+
- Rotate credentials if you suspect they've been compromised
|
|
213
159
|
|
|
214
160
|
## Resources
|
|
215
161
|
|
|
162
|
+
- [Setup Guide](https://mcp.nestr.io) - Step-by-step setup instructions
|
|
216
163
|
- [Nestr Help Center](https://help.nestr.io)
|
|
217
164
|
- [Nestr API Documentation](https://app.nestr.io/api/docs)
|
|
218
165
|
- [Model Context Protocol](https://modelcontextprotocol.io)
|
|
219
|
-
- [MCP Specification](https://modelcontextprotocol.io/specification/2025-11-25)
|
|
220
166
|
|
|
221
167
|
## License
|
|
222
168
|
|
package/package.json
CHANGED
package/web/index.html
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
6
|
<title>Nestr MCP Server - Connect AI to Your Workspace</title>
|
|
7
|
-
<meta name="description" content="Connect Claude, Cursor,
|
|
7
|
+
<meta name="description" content="Connect Claude, Cursor, and other AI assistants to your Nestr workspace using the Model Context Protocol (MCP).">
|
|
8
8
|
<link rel="stylesheet" href="styles.css">
|
|
9
9
|
<link rel="icon" href="https://app.nestr.io/favicon.ico">
|
|
10
10
|
</head>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
<div class="container">
|
|
32
32
|
<h1>Connect AI to Your Nestr Workspace</h1>
|
|
33
33
|
<p class="subtitle">
|
|
34
|
-
Use the Model Context Protocol (MCP) to let Claude, Cursor,
|
|
34
|
+
Use the Model Context Protocol (MCP) to let Claude, Cursor, and other AI assistants
|
|
35
35
|
interact with your tasks, projects, circles, and roles.
|
|
36
36
|
</p>
|
|
37
37
|
<div class="cta-buttons">
|
|
@@ -174,40 +174,39 @@
|
|
|
174
174
|
<button class="tab active" data-tab="claude-desktop">Claude Desktop</button>
|
|
175
175
|
<button class="tab" data-tab="claude-code">Claude Code</button>
|
|
176
176
|
<button class="tab" data-tab="cursor">Cursor</button>
|
|
177
|
-
<button class="tab" data-tab="raycast">Raycast</button>
|
|
178
177
|
</div>
|
|
179
178
|
|
|
180
179
|
<div class="tab-content active" id="claude-desktop">
|
|
181
|
-
<
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
}</code></pre>
|
|
180
|
+
<div class="config-block hosted oauth active">
|
|
181
|
+
<div class="quickstart-box">
|
|
182
|
+
<h4>Quickstart (Recommended)</h4>
|
|
183
|
+
<p><strong>Step 1:</strong> In Claude Desktop, go to <strong>Settings → Connectors → Add custom connector</strong></p>
|
|
184
|
+
<p><strong>Step 2:</strong> Fill in the following:</p>
|
|
185
|
+
<table class="field-table">
|
|
186
|
+
<tr><td><strong>Name</strong></td><td><code>Nestr</code></td></tr>
|
|
187
|
+
<tr><td><strong>Remote MCP URL</strong></td><td><code>https://mcp.nestr.io/mcp</code></td></tr>
|
|
188
|
+
</table>
|
|
189
|
+
<p><strong>Step 3:</strong> Click "Add" and then "Authenticate" to log in with your Nestr account.</p>
|
|
190
|
+
<p class="quickstart-note">That's it! Claude Desktop will handle the OAuth flow automatically.</p>
|
|
191
|
+
</div>
|
|
192
|
+
</div>
|
|
198
193
|
|
|
199
|
-
<
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
208
|
-
}</code></pre>
|
|
194
|
+
<div class="config-block hosted apikey">
|
|
195
|
+
<p>Go to <strong>Settings → Connectors → Add custom connector</strong> and fill in:</p>
|
|
196
|
+
<table class="field-table">
|
|
197
|
+
<tr><td><strong>Name</strong></td><td><code>Nestr</code></td></tr>
|
|
198
|
+
<tr><td><strong>Remote MCP URL</strong></td><td><code>https://mcp.nestr.io/mcp</code></td></tr>
|
|
199
|
+
<tr><td><strong>Headers</strong></td><td><code>X-Nestr-API-Key: your-api-key-here</code></td></tr>
|
|
200
|
+
</table>
|
|
201
|
+
</div>
|
|
209
202
|
|
|
210
|
-
<
|
|
203
|
+
<div class="config-block local oauth">
|
|
204
|
+
<p>For local setup, edit your config file:</p>
|
|
205
|
+
<ul>
|
|
206
|
+
<li><strong>macOS:</strong> <code>~/Library/Application Support/Claude/claude_desktop_config.json</code></li>
|
|
207
|
+
<li><strong>Windows:</strong> <code>%APPDATA%\Claude\claude_desktop_config.json</code></li>
|
|
208
|
+
</ul>
|
|
209
|
+
<pre><code>{
|
|
211
210
|
"mcpServers": {
|
|
212
211
|
"nestr": {
|
|
213
212
|
"command": "npx",
|
|
@@ -218,8 +217,16 @@
|
|
|
218
217
|
}
|
|
219
218
|
}
|
|
220
219
|
}</code></pre>
|
|
220
|
+
<p>Restart Claude Desktop after saving.</p>
|
|
221
|
+
</div>
|
|
221
222
|
|
|
222
|
-
<
|
|
223
|
+
<div class="config-block local apikey">
|
|
224
|
+
<p>For local setup, edit your config file:</p>
|
|
225
|
+
<ul>
|
|
226
|
+
<li><strong>macOS:</strong> <code>~/Library/Application Support/Claude/claude_desktop_config.json</code></li>
|
|
227
|
+
<li><strong>Windows:</strong> <code>%APPDATA%\Claude\claude_desktop_config.json</code></li>
|
|
228
|
+
</ul>
|
|
229
|
+
<pre><code>{
|
|
223
230
|
"mcpServers": {
|
|
224
231
|
"nestr": {
|
|
225
232
|
"command": "npx",
|
|
@@ -230,16 +237,18 @@
|
|
|
230
237
|
}
|
|
231
238
|
}
|
|
232
239
|
}</code></pre>
|
|
233
|
-
|
|
240
|
+
<p>Restart Claude Desktop after saving.</p>
|
|
241
|
+
</div>
|
|
234
242
|
</div>
|
|
235
243
|
|
|
236
244
|
<div class="tab-content" id="claude-code">
|
|
237
245
|
<div class="config-block hosted oauth active">
|
|
238
246
|
<div class="quickstart-box">
|
|
239
247
|
<h4>Quickstart (Recommended)</h4>
|
|
240
|
-
<p>
|
|
248
|
+
<p><strong>Step 1:</strong> Add the Nestr MCP server:</p>
|
|
241
249
|
<pre><code>claude mcp add nestr --transport http https://mcp.nestr.io/mcp</code></pre>
|
|
242
|
-
<p
|
|
250
|
+
<p><strong>Step 2:</strong> In Claude Code, run <code>/mcp</code> and click "Authenticate" next to Nestr. This will open your browser to log in with Nestr.</p>
|
|
251
|
+
<p class="quickstart-note">That's it! Once authenticated, Claude Code can access your Nestr workspace.</p>
|
|
243
252
|
</div>
|
|
244
253
|
<p>Or, if you already have a token, add it manually:</p>
|
|
245
254
|
<pre><code>claude mcp add nestr --transport http https://mcp.nestr.io/mcp \
|
|
@@ -264,7 +273,7 @@
|
|
|
264
273
|
--env NESTR_API_KEY=your-api-key-here</code></pre>
|
|
265
274
|
</div>
|
|
266
275
|
|
|
267
|
-
<p>
|
|
276
|
+
<p>Run <code>/mcp</code> anytime to check connection status or re-authenticate.</p>
|
|
268
277
|
</div>
|
|
269
278
|
|
|
270
279
|
<div class="tab-content" id="cursor">
|
|
@@ -323,53 +332,6 @@
|
|
|
323
332
|
<p>Restart Cursor after saving.</p>
|
|
324
333
|
</div>
|
|
325
334
|
|
|
326
|
-
<div class="tab-content" id="raycast">
|
|
327
|
-
<p>In Raycast, go to <strong>Settings → Extensions → AI → MCP Servers</strong>, then press <kbd>⌘N</kbd> to add a new server.</p>
|
|
328
|
-
|
|
329
|
-
<div class="config-block hosted oauth active">
|
|
330
|
-
<p>Fill in the following fields:</p>
|
|
331
|
-
<table class="field-table">
|
|
332
|
-
<tr><td><strong>Name</strong></td><td><code>Nestr</code></td></tr>
|
|
333
|
-
<tr><td><strong>Transport</strong></td><td>HTTP</td></tr>
|
|
334
|
-
<tr><td><strong>URL</strong></td><td><code>https://mcp.nestr.io/mcp</code></td></tr>
|
|
335
|
-
<tr><td><strong>HTTP Headers</strong></td><td>Click "Add Item" and add:<br><code>Authorization</code> = <code>Bearer your-oauth-token</code></td></tr>
|
|
336
|
-
</table>
|
|
337
|
-
</div>
|
|
338
|
-
|
|
339
|
-
<div class="config-block hosted apikey">
|
|
340
|
-
<p>Fill in the following fields:</p>
|
|
341
|
-
<table class="field-table">
|
|
342
|
-
<tr><td><strong>Name</strong></td><td><code>Nestr</code></td></tr>
|
|
343
|
-
<tr><td><strong>Transport</strong></td><td>HTTP</td></tr>
|
|
344
|
-
<tr><td><strong>URL</strong></td><td><code>https://mcp.nestr.io/mcp</code></td></tr>
|
|
345
|
-
<tr><td><strong>HTTP Headers</strong></td><td>Click "Add Item" and add:<br><code>X-Nestr-API-Key</code> = <code>your-api-key</code></td></tr>
|
|
346
|
-
</table>
|
|
347
|
-
</div>
|
|
348
|
-
|
|
349
|
-
<div class="config-block local oauth">
|
|
350
|
-
<p>Fill in the following fields:</p>
|
|
351
|
-
<table class="field-table">
|
|
352
|
-
<tr><td><strong>Name</strong></td><td><code>Nestr</code></td></tr>
|
|
353
|
-
<tr><td><strong>Transport</strong></td><td>Standard Input/Output</td></tr>
|
|
354
|
-
<tr><td><strong>Command</strong></td><td><code>npx</code></td></tr>
|
|
355
|
-
<tr><td><strong>Arguments</strong></td><td><code>-y @nestr/mcp</code></td></tr>
|
|
356
|
-
<tr><td><strong>Environment</strong></td><td>Click "Add Item" and add:<br><code>NESTR_OAUTH_TOKEN</code> = <code>your-oauth-token</code></td></tr>
|
|
357
|
-
</table>
|
|
358
|
-
</div>
|
|
359
|
-
|
|
360
|
-
<div class="config-block local apikey">
|
|
361
|
-
<p>Fill in the following fields:</p>
|
|
362
|
-
<table class="field-table">
|
|
363
|
-
<tr><td><strong>Name</strong></td><td><code>Nestr</code></td></tr>
|
|
364
|
-
<tr><td><strong>Transport</strong></td><td>Standard Input/Output</td></tr>
|
|
365
|
-
<tr><td><strong>Command</strong></td><td><code>npx</code></td></tr>
|
|
366
|
-
<tr><td><strong>Arguments</strong></td><td><code>-y @nestr/mcp</code></td></tr>
|
|
367
|
-
<tr><td><strong>Environment</strong></td><td>Click "Add Item" and add:<br><code>NESTR_API_KEY</code> = <code>your-api-key</code></td></tr>
|
|
368
|
-
</table>
|
|
369
|
-
</div>
|
|
370
|
-
|
|
371
|
-
<p>Save the server and it will be available in Raycast AI.</p>
|
|
372
|
-
</div>
|
|
373
335
|
</div>
|
|
374
336
|
</div>
|
|
375
337
|
|