devto-mcp 0.2.0 → 0.2.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 CHANGED
@@ -10,6 +10,8 @@ npm install -g devto-mcp
10
10
 
11
11
  Requires Node.js >= 18 and [Claude Code](https://claude.ai/claude-code).
12
12
 
13
+ This is a one-time global install. Each project is linked individually via `devto init` — uninstalling from one project does not affect others.
14
+
13
15
  ## Setup
14
16
 
15
17
  1. Create an account and get an API key at [devto.ai](https://devto.ai)
@@ -21,12 +23,38 @@ devto login
21
23
  devto config set anthropic-key sk-ant-xxxx
22
24
  ```
23
25
 
24
- 3. Connect to Claude Code:
26
+ 3. In your project directory, link to DevTo:
25
27
 
26
28
  ```bash
29
+ cd your-project
27
30
  devto init
28
31
  ```
29
32
 
33
+ This creates:
34
+ - `.devto.json` — project config (workspace URL, project key, provider)
35
+ - `.devto/config.json` — credentials (API key, scoped to this project)
36
+ - `.mcp.json` — Claude Code MCP server config
37
+
38
+ Both `.devto.json` and `.devto/` are added to `.gitignore` automatically.
39
+
40
+ 4. Restart Claude Code to pick up the MCP config.
41
+
42
+ ## Per-project configuration
43
+
44
+ Each project gets its own `.devto.json` in the project root:
45
+
46
+ ```json
47
+ {
48
+ "workspaceUrl": "https://yourcompany.atlassian.net",
49
+ "projectKey": "ENG",
50
+ "provider": "jira"
51
+ }
52
+ ```
53
+
54
+ When the MCP server starts, it walks up the directory tree from the current working directory looking for `.devto.json`. If found, that workspace and project are used for all API calls. If not found, it falls back to the tenant's default workspace.
55
+
56
+ **Add `.devto.json` to your `.gitignore`.** It may contain a workspace ID. `devto init` does this automatically.
57
+
30
58
  ## Usage
31
59
 
32
60
  In Claude Code:
@@ -41,17 +69,29 @@ DevTo generates a structured plan. Run `confirm_plan` to push it to your project
41
69
 
42
70
  | Command | Description |
43
71
  |---|---|
44
- | `devto login` | Authenticate with your API key |
45
- | `devto status` | Show connection and usage info |
46
- | `devto init` | Auto-configure MCP in Claude Code |
72
+ | `devto login` | Authenticate with your API key (global) |
73
+ | `devto init` | Link this project to DevTo |
74
+ | `devto unlink` | Unlink this project (removes .devto.json, .devto/, registry entry) |
75
+ | `devto status` | Show connection and active project config |
47
76
  | `devto doctor` | Run diagnostics |
48
77
  | `devto sync` | Re-sync workspace config |
49
78
  | `devto config set anthropic-key` | Store your Anthropic key locally |
50
79
 
80
+ ### Unlinking a project
81
+
82
+ ```bash
83
+ devto unlink
84
+ ```
85
+
86
+ This removes `.devto.json`, `.devto/`, the devto entry from `.mcp.json`, and the project from `~/.devto/projects.json`. It does **not** uninstall the global package.
87
+
88
+ To fully remove DevTo: `npm uninstall -g devto-mcp`.
89
+
51
90
  ## MCP tools
52
91
 
53
92
  | Tool | Description |
54
93
  |---|---|
94
+ | `get_project_summary` | Lightweight snapshot of active work |
55
95
  | `create_plan` | Generate a plan from a feature description |
56
96
  | `confirm_plan` | Execute a plan and create all work items |
57
97
  | `create_epic` | Create an epic |
@@ -61,6 +101,10 @@ DevTo generates a structured plan. Run `confirm_plan` to push it to your project
61
101
  | `update_task` | Update a task's status |
62
102
  | `get_status` | Get project summary |
63
103
 
104
+ ## Project registry
105
+
106
+ DevTo keeps a registry of linked projects at `~/.devto/projects.json`. This is used internally to track which directories are linked. You don't need to edit it manually.
107
+
64
108
  ## Dashboard
65
109
 
66
110
  Manage your workspace, API keys, and billing at [devto.ai/dashboard](https://devto.ai/dashboard).
package/bin/devto-mcp.js CHANGED
File without changes
package/bin/devto.js CHANGED
File without changes
package/dist/cli.d.ts CHANGED
@@ -6,13 +6,12 @@
6
6
  * devto login Authenticate with your DevTo API key
7
7
  * devto logout Clear global credentials
8
8
  * devto status Show current connection status
9
- * devto init Auto-configure Claude Code MCP config
9
+ * devto init Link this project to DevTo
10
+ * devto unlink Unlink this project from DevTo
10
11
  * devto doctor Test full connection chain
11
12
  * devto sync Re-sync workspace configuration
12
13
  * devto verbose Toggle verbose mode
13
14
  * devto config set anthropic-key <key> Store Anthropic API key
14
- * devto uninstall Remove DevTo from this project
15
- * devto uninstall --purge Remove DevTo from this project + global config
16
15
  */
17
16
  export {};
18
17
  //# sourceMappingURL=cli.d.ts.map
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
package/dist/cli.js CHANGED
@@ -7,13 +7,12 @@
7
7
  * devto login Authenticate with your DevTo API key
8
8
  * devto logout Clear global credentials
9
9
  * devto status Show current connection status
10
- * devto init Auto-configure Claude Code MCP config
10
+ * devto init Link this project to DevTo
11
+ * devto unlink Unlink this project from DevTo
11
12
  * devto doctor Test full connection chain
12
13
  * devto sync Re-sync workspace configuration
13
14
  * devto verbose Toggle verbose mode
14
15
  * devto config set anthropic-key <key> Store Anthropic API key
15
- * devto uninstall Remove DevTo from this project
16
- * devto uninstall --purge Remove DevTo from this project + global config
17
16
  */
18
17
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
18
  if (k2 === undefined) k2 = k;
@@ -55,6 +54,19 @@ const path = __importStar(require("path"));
55
54
  const os = __importStar(require("os"));
56
55
  const config_1 = require("./config");
57
56
  const command = process.argv[2];
57
+ const NO_PROJECT_MESSAGE = `\nNo project linked in this directory.\nRun \`devto init\` to link this project to a DevTo workspace.\n`;
58
+ /**
59
+ * Require .devto.json in the directory tree.
60
+ * If not found, print message and exit. Used by status, doctor, sync.
61
+ */
62
+ function requireProjectJson() {
63
+ const projectJson = (0, config_1.findProjectJson)();
64
+ if (!projectJson) {
65
+ console.log(NO_PROJECT_MESSAGE);
66
+ process.exit(1);
67
+ }
68
+ return projectJson;
69
+ }
58
70
  async function prompt(question, hidden = false) {
59
71
  return new Promise((resolve) => {
60
72
  const rl = readline.createInterface({
@@ -99,7 +111,7 @@ async function validateKey(apiKey) {
99
111
  const res = await fetch(`${apiUrl}/api/v1/status`, {
100
112
  headers: {
101
113
  Authorization: `Bearer ${apiKey}`,
102
- "X-DevTo-Version": "0.1.9",
114
+ "X-DevTo-Version": config_1.VERSION,
103
115
  },
104
116
  });
105
117
  // 200 = valid key, 401 = invalid
@@ -110,6 +122,34 @@ async function validateKey(apiKey) {
110
122
  return true;
111
123
  }
112
124
  }
125
+ /**
126
+ * Fetch workspaces for a given API key.
127
+ * Returns array of { id, name, workspaceUrl, projectKey, providerType }.
128
+ */
129
+ async function fetchWorkspaces(apiKey) {
130
+ const apiUrl = process.env.DEVTO_API_URL ?? "https://api.devto.ai";
131
+ try {
132
+ const res = await fetch(`${apiUrl}/api/v1/workspaces`, {
133
+ headers: {
134
+ Authorization: `Bearer ${apiKey}`,
135
+ "X-DevTo-Version": config_1.VERSION,
136
+ },
137
+ });
138
+ if (!res.ok)
139
+ return [];
140
+ const data = (await res.json());
141
+ return (data.workspaces ?? []).map((w) => ({
142
+ id: w.id,
143
+ name: w.name,
144
+ workspaceUrl: w.workspace_url,
145
+ projectKey: w.workspace_project_key,
146
+ providerType: w.provider_type,
147
+ }));
148
+ }
149
+ catch {
150
+ return [];
151
+ }
152
+ }
113
153
  async function login() {
114
154
  console.log("\nDevTo Login (global)\n");
115
155
  console.log("Note: For per-project isolation, use `devto init` instead.");
@@ -150,7 +190,7 @@ async function login() {
150
190
  else {
151
191
  console.log("\nSkipped. You can set it later: devto config set anthropic-key sk-ant-xxxx\n");
152
192
  }
153
- console.log("Next step: run `devto init` to configure Claude Code MCP.");
193
+ console.log("Next step: run `devto init` in your project directory.");
154
194
  console.log("Run `devto status` to verify your connection.\n");
155
195
  }
156
196
  async function logout() {
@@ -158,15 +198,14 @@ async function logout() {
158
198
  if (fs.existsSync(configDir)) {
159
199
  fs.rmSync(configDir, { recursive: true, force: true });
160
200
  console.log("\nLogged out. Removed ~/.devto credentials.");
161
- console.log("Note: Project .mcp.json files still have embedded keys MCP servers will keep working.");
162
- console.log("Run `devto uninstall` in a project to remove it from that project.\n");
201
+ console.log("Note: Project .devto.json files are untouched run `devto unlink` per project to remove them.\n");
163
202
  }
164
203
  else {
165
204
  console.log("\nNo credentials found. Already logged out.\n");
166
205
  }
167
206
  }
168
207
  async function status() {
169
- // Only show project-local config — each project is isolated
208
+ const projectJson = requireProjectJson();
170
209
  const projectConfig = (0, config_1.readProjectConfig)();
171
210
  const globalConfig = (0, config_1.readConfig)();
172
211
  const resolved = projectConfig
@@ -174,24 +213,27 @@ async function status() {
174
213
  : globalConfig
175
214
  ? { config: globalConfig, source: "global" }
176
215
  : null;
216
+ console.log("\nDevTo Status");
217
+ console.log("────────────");
218
+ console.log(`Project config: ${path.join(projectJson.dir, ".devto.json")}`);
219
+ console.log(` Workspace: ${projectJson.config.workspaceUrl}`);
220
+ console.log(` Project: ${projectJson.config.projectKey}`);
221
+ console.log(` Provider: ${projectJson.config.provider}`);
222
+ console.log();
177
223
  if (!resolved) {
178
- console.log("\nNo API key found for this project.");
179
- console.log(" Run `devto init` in this project directory to set it up.\n");
224
+ console.log("Auth: No API key found.");
225
+ console.log(" Run `devto init` to set up credentials for this project.\n");
180
226
  process.exit(1);
181
227
  }
182
228
  const { config, source } = resolved;
183
229
  if (source === "global") {
184
- console.log("\nNote: Using global config (~/.devto/config.json).");
185
- console.log(" Run `devto init` in this project for per-project isolation.\n");
230
+ console.log("Auth source: global (~/.devto/config.json)");
231
+ }
232
+ else {
233
+ console.log("Auth source: project (.devto/config.json)");
186
234
  }
187
- console.log("\nDevTo Status");
188
- console.log("────────────");
189
- console.log(`Source: ${source === "project" ? "project (.devto/config.json)" : "global (~/.devto/config.json)"}`);
190
235
  console.log(`API URL: ${config.api_url}`);
191
236
  console.log(`API Key: ${config.api_key.slice(0, 12)}...`);
192
- if (config.workspace_id) {
193
- console.log(`Workspace ID: ${config.workspace_id.slice(0, 8)}...`);
194
- }
195
237
  // Anthropic key status
196
238
  const hasAnthropic = config.anthropic_key || (() => { try {
197
239
  (0, config_1.getAnthropicKey)();
@@ -205,10 +247,11 @@ async function status() {
205
247
  try {
206
248
  const headers = {
207
249
  Authorization: `Bearer ${config.api_key}`,
208
- "X-DevTo-Version": "0.1.9",
250
+ "X-DevTo-Version": config_1.VERSION,
209
251
  };
210
- if (config.workspace_id)
211
- headers["X-DevTo-Workspace"] = config.workspace_id;
252
+ if (projectJson.config.workspaceId) {
253
+ headers["X-DevTo-Workspace"] = projectJson.config.workspaceId;
254
+ }
212
255
  const res = await fetch(`${config.api_url}/api/v1/status`, { headers });
213
256
  if (res.ok) {
214
257
  const data = (await res.json());
@@ -234,11 +277,12 @@ async function status() {
234
277
  console.log();
235
278
  }
236
279
  async function init() {
237
- console.log("\nDevTo Init — Set up DevTo for this project\n");
280
+ console.log("\nDevTo Init — Link this project to DevTo\n");
238
281
  const globalConfig = (0, config_1.readConfig)();
239
282
  const existingProject = (0, config_1.readProjectConfig)();
283
+ const existingJson = (0, config_1.findProjectJson)(process.cwd());
240
284
  const apiUrl = process.env.DEVTO_API_URL ?? globalConfig?.api_url ?? "https://api.devto.ai";
241
- // Always prompt for API key — each project gets its own
285
+ // ── Step 1: Get API key ──────────────────────────────────────────────
242
286
  let apiKey;
243
287
  if (existingProject?.api_key) {
244
288
  const reuse = await prompt(`This project already has an API key (${existingProject.api_key.slice(0, 12)}...). Use it? (y/n): `);
@@ -270,7 +314,58 @@ async function init() {
270
314
  process.exit(1);
271
315
  }
272
316
  console.log("OK");
273
- // Check for Anthropic key
317
+ // ── Step 2: Select workspace/project ─────────────────────────────────
318
+ let workspaceUrl;
319
+ let projectKey;
320
+ let provider;
321
+ let workspaceId;
322
+ // Try to fetch workspaces from the API
323
+ console.log("\nFetching your workspaces...");
324
+ const workspaces = await fetchWorkspaces(apiKey);
325
+ if (workspaces.length > 0) {
326
+ console.log(`\nFound ${workspaces.length} workspace(s):\n`);
327
+ workspaces.forEach((ws, i) => {
328
+ console.log(` ${i + 1}. ${ws.name || ws.workspaceUrl} — ${ws.projectKey} (${ws.providerType})`);
329
+ });
330
+ let selected;
331
+ if (workspaces.length === 1) {
332
+ const confirm = await prompt(`\nUse this workspace? (y/n): `);
333
+ if (confirm.toLowerCase() !== "y" && confirm.toLowerCase() !== "yes") {
334
+ console.log("\nYou can connect a different workspace at https://devto.ai/dashboard/settings\n");
335
+ process.exit(0);
336
+ }
337
+ selected = workspaces[0];
338
+ }
339
+ else {
340
+ const choice = await prompt(`\nSelect workspace (1-${workspaces.length}): `);
341
+ const idx = parseInt(choice, 10) - 1;
342
+ if (isNaN(idx) || idx < 0 || idx >= workspaces.length) {
343
+ console.error("\nInvalid selection.\n");
344
+ process.exit(1);
345
+ }
346
+ selected = workspaces[idx];
347
+ }
348
+ workspaceUrl = selected.workspaceUrl;
349
+ projectKey = selected.projectKey;
350
+ provider = selected.providerType;
351
+ workspaceId = selected.id;
352
+ }
353
+ else {
354
+ // No workspaces found — prompt manually
355
+ console.log("\nNo workspaces found. Enter workspace details manually.\n");
356
+ workspaceUrl = await prompt("Workspace URL (e.g. https://yourcompany.atlassian.net): ");
357
+ if (!workspaceUrl) {
358
+ console.error("\nWorkspace URL is required.\n");
359
+ process.exit(1);
360
+ }
361
+ projectKey = await prompt("Project key (e.g. ENG): ");
362
+ if (!projectKey) {
363
+ console.error("\nProject key is required.\n");
364
+ process.exit(1);
365
+ }
366
+ provider = await prompt("Provider (jira/linear/github/shortcut) [jira]: ") || "jira";
367
+ }
368
+ // ── Step 3: Check for Anthropic key ──────────────────────────────────
274
369
  let anthropicKey = existingProject?.anthropic_key;
275
370
  if (!anthropicKey) {
276
371
  try {
@@ -280,23 +375,41 @@ async function init() {
280
375
  // No Anthropic key yet — skip
281
376
  }
282
377
  }
283
- // Save per-project config
378
+ // ── Step 4: Write .devto.json (project config) ──────────────────────
379
+ (0, config_1.writeProjectJson)({
380
+ workspaceUrl,
381
+ projectKey,
382
+ provider,
383
+ workspaceId,
384
+ });
385
+ console.log("\nCreated .devto.json");
386
+ // Ensure .devto.json is gitignored
387
+ ensureGitignore(".devto.json");
388
+ // ── Step 5: Write .devto/config.json (credentials) ──────────────────
284
389
  (0, config_1.writeProjectConfig)({
285
390
  api_key: apiKey,
286
391
  api_url: apiUrl,
287
392
  anthropic_key: anthropicKey,
288
- workspace_id: existingProject?.workspace_id,
393
+ workspace_id: workspaceId,
289
394
  });
290
395
  // Ensure .devto/ is gitignored
291
- ensureGitignore();
292
- console.log("\nProject config saved to .devto/config.json");
293
- // Write MCP config directly to project .mcp.json (per-project isolation)
396
+ ensureGitignore(".devto/");
397
+ console.log("Created .devto/config.json");
398
+ // ── Step 6: Register in ~/.devto/projects.json ──────────────────────
399
+ (0, config_1.registerProject)({
400
+ path: process.cwd(),
401
+ workspaceUrl,
402
+ projectKey,
403
+ provider,
404
+ });
405
+ console.log("Registered in ~/.devto/projects.json");
406
+ // ── Step 7: Write .mcp.json (Claude Code config) ────────────────────
294
407
  const isWindows = process.platform === "win32";
295
408
  const envObj = { DEVTO_API_KEY: apiKey };
296
409
  if (anthropicKey)
297
410
  envObj.DEVTO_ANTHROPIC_KEY = anthropicKey;
298
- if (existingProject?.workspace_id)
299
- envObj.DEVTO_WORKSPACE_ID = existingProject.workspace_id;
411
+ if (workspaceId)
412
+ envObj.DEVTO_WORKSPACE_ID = workspaceId;
300
413
  const mcpServerConfig = {
301
414
  command: isWindows ? "cmd" : "npx",
302
415
  args: isWindows ? ["/c", "npx", "-y", "devto-mcp"] : ["-y", "devto-mcp"],
@@ -304,7 +417,6 @@ async function init() {
304
417
  };
305
418
  const mcpJsonPath = path.join(process.cwd(), ".mcp.json");
306
419
  let mcpConfig = {};
307
- // Read existing .mcp.json if present
308
420
  if (fs.existsSync(mcpJsonPath)) {
309
421
  try {
310
422
  mcpConfig = JSON.parse(fs.readFileSync(mcpJsonPath, "utf-8"));
@@ -317,7 +429,7 @@ async function init() {
317
429
  mcpConfig.mcpServers = {};
318
430
  mcpConfig.mcpServers.devto = mcpServerConfig;
319
431
  fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2));
320
- console.log("MCP config written to .mcp.json (project-scoped)");
432
+ console.log("MCP config written to .mcp.json");
321
433
  // Also remove any user-level devto MCP config to avoid conflicts
322
434
  try {
323
435
  const { execSync } = require("child_process");
@@ -326,8 +438,11 @@ async function init() {
326
438
  catch {
327
439
  // Not registered at user level — fine
328
440
  }
329
- console.log(`\nDevTo configured for this project.`);
330
- console.log(`API key: ${apiKey.slice(0, 12)}...`);
441
+ console.log(`\n── Project linked ──────────────────────────────`);
442
+ console.log(`Workspace: ${workspaceUrl}`);
443
+ console.log(`Project: ${projectKey}`);
444
+ console.log(`Provider: ${provider}`);
445
+ console.log(`API key: ${apiKey.slice(0, 12)}...`);
331
446
  if (!anthropicKey) {
332
447
  console.log("\nNote: Anthropic API key not configured.");
333
448
  console.log(" AI plan generation (create_plan) requires an Anthropic key.");
@@ -337,6 +452,54 @@ async function init() {
337
452
  }
338
453
  console.log("\nRestart Claude Code to pick up the changes.\n");
339
454
  }
455
+ async function unlink() {
456
+ console.log("\nDevTo Unlink — Remove this project from DevTo\n");
457
+ const projectJson = (0, config_1.findProjectJson)(process.cwd());
458
+ const devtoJsonPath = path.join(process.cwd(), ".devto.json");
459
+ const devtoConfigDir = path.join(process.cwd(), ".devto");
460
+ if (!projectJson && !fs.existsSync(devtoJsonPath) && !fs.existsSync(devtoConfigDir)) {
461
+ console.log("This project is not linked to DevTo.\n");
462
+ return;
463
+ }
464
+ const confirm = await prompt("Remove DevTo configuration from this project? (y/n): ");
465
+ if (confirm.toLowerCase() !== "y" && confirm.toLowerCase() !== "yes") {
466
+ console.log("Cancelled.\n");
467
+ return;
468
+ }
469
+ // Remove .devto.json
470
+ if (fs.existsSync(devtoJsonPath)) {
471
+ fs.unlinkSync(devtoJsonPath);
472
+ console.log("Removed .devto.json");
473
+ }
474
+ // Remove .devto/ directory
475
+ if (fs.existsSync(devtoConfigDir)) {
476
+ fs.rmSync(devtoConfigDir, { recursive: true, force: true });
477
+ console.log("Removed .devto/");
478
+ }
479
+ // Remove devto entry from .mcp.json
480
+ const mcpJsonPath = path.join(process.cwd(), ".mcp.json");
481
+ if (fs.existsSync(mcpJsonPath)) {
482
+ try {
483
+ const raw = fs.readFileSync(mcpJsonPath, "utf-8");
484
+ const mcpConfig = JSON.parse(raw);
485
+ if (mcpConfig.mcpServers?.devto) {
486
+ delete mcpConfig.mcpServers.devto;
487
+ fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2));
488
+ console.log("Removed devto from .mcp.json");
489
+ }
490
+ }
491
+ catch {
492
+ // Skip corrupt config
493
+ }
494
+ }
495
+ // Unregister from ~/.devto/projects.json
496
+ const removed = (0, config_1.unregisterProject)(process.cwd());
497
+ if (removed) {
498
+ console.log("Removed from ~/.devto/projects.json");
499
+ }
500
+ console.log("\nProject unlinked. Global credentials (~/.devto/config.json) are untouched.");
501
+ console.log("Restart Claude Code to apply changes.\n");
502
+ }
340
503
  async function promptForApiKey() {
341
504
  const apiKey = await prompt("Paste your API key: ", true);
342
505
  if (!apiKey || !apiKey.startsWith("devto_")) {
@@ -345,28 +508,34 @@ async function promptForApiKey() {
345
508
  }
346
509
  return apiKey;
347
510
  }
348
- function ensureGitignore() {
511
+ function ensureGitignore(entry) {
349
512
  const gitignorePath = path.join(process.cwd(), ".gitignore");
350
- const entry = ".devto/";
351
513
  try {
352
514
  if (fs.existsSync(gitignorePath)) {
353
515
  const content = fs.readFileSync(gitignorePath, "utf-8");
354
516
  if (!content.includes(entry)) {
355
- fs.appendFileSync(gitignorePath, `\n# DevTo project config (contains API keys)\n${entry}\n`);
517
+ const label = entry === ".devto.json" ? "DevTo project config" : "DevTo credentials (contains API keys)";
518
+ fs.appendFileSync(gitignorePath, `\n# ${label}\n${entry}\n`);
356
519
  }
357
520
  }
358
521
  else {
359
- fs.writeFileSync(gitignorePath, `# DevTo project config (contains API keys)\n${entry}\n`);
522
+ const label = entry === ".devto.json" ? "DevTo project config" : "DevTo credentials (contains API keys)";
523
+ fs.writeFileSync(gitignorePath, `# ${label}\n${entry}\n`);
360
524
  }
361
525
  }
362
526
  catch {
363
- console.log(" Warning: Could not update .gitignore — make sure .devto/ is not committed.");
527
+ console.log(` Warning: Could not update .gitignore — make sure ${entry} is not committed.`);
364
528
  }
365
529
  }
366
530
  async function doctor() {
367
531
  console.log("\nDevTo Doctor — Connection Diagnostics\n");
532
+ const projectJson = requireProjectJson();
368
533
  const resolved = (0, config_1.resolveConfig)();
369
534
  const config = resolved?.config ?? null;
535
+ process.stdout.write("Project config (.devto.json) ... ");
536
+ console.log(`OK (${path.join(projectJson.dir, ".devto.json")})`);
537
+ console.log(` Workspace: ${projectJson.config.workspaceUrl}`);
538
+ console.log(` Project: ${projectJson.config.projectKey} (${projectJson.config.provider})`);
370
539
  // 1. Check DevTo API reachable
371
540
  process.stdout.write("DevTo API reachable ... ");
372
541
  const apiUrl = config?.api_url ?? (0, config_1.getApiUrl)();
@@ -374,7 +543,7 @@ async function doctor() {
374
543
  const res = await fetch(`${apiUrl}/api/v1/status`, {
375
544
  headers: {
376
545
  ...(config?.api_key ? { Authorization: `Bearer ${config.api_key}` } : {}),
377
- "X-DevTo-Version": "0.1.9",
546
+ "X-DevTo-Version": config_1.VERSION,
378
547
  },
379
548
  });
380
549
  if (res.ok) {
@@ -400,7 +569,7 @@ async function doctor() {
400
569
  const res = await fetch(`${apiUrl}/api/v1/status`, {
401
570
  headers: {
402
571
  Authorization: `Bearer ${config.api_key}`,
403
- "X-DevTo-Version": "0.1.9",
572
+ "X-DevTo-Version": config_1.VERSION,
404
573
  },
405
574
  });
406
575
  if (res.status === 401) {
@@ -428,7 +597,7 @@ async function doctor() {
428
597
  const res = await fetch(`${apiUrl}/api/v1/status`, {
429
598
  headers: {
430
599
  Authorization: `Bearer ${config.api_key}`,
431
- "X-DevTo-Version": "0.1.9",
600
+ "X-DevTo-Version": config_1.VERSION,
432
601
  },
433
602
  });
434
603
  if (res.ok) {
@@ -486,6 +655,7 @@ async function doctor() {
486
655
  }
487
656
  async function sync() {
488
657
  console.log("\nDevTo Sync — Workspace Configuration Discovery\n");
658
+ requireProjectJson();
489
659
  const config = (0, config_1.readConfig)();
490
660
  if (!config?.api_key) {
491
661
  console.log("Not logged in. Run `devto login` first.\n");
@@ -499,7 +669,7 @@ async function sync() {
499
669
  headers: {
500
670
  "Content-Type": "application/json",
501
671
  Authorization: `Bearer ${config.api_key}`,
502
- "X-DevTo-Version": "0.1.9",
672
+ "X-DevTo-Version": config_1.VERSION,
503
673
  },
504
674
  });
505
675
  if (!res.ok) {
@@ -548,64 +718,6 @@ async function configSet() {
548
718
  console.log(`Key: ${value.slice(0, 12)}...`);
549
719
  console.log("Run `devto init` to embed it in your project's MCP config.\n");
550
720
  }
551
- async function uninstall() {
552
- const purge = process.argv[3] === "--purge";
553
- if (purge) {
554
- console.log("\nDevTo Uninstall (full purge)\n");
555
- const confirm = await prompt("This will remove DevTo MCP server AND delete global credentials (~/.devto). Continue? (y/n): ");
556
- if (confirm.toLowerCase() !== "y" && confirm.toLowerCase() !== "yes") {
557
- console.log("Cancelled.\n");
558
- return;
559
- }
560
- }
561
- else {
562
- console.log("\nDevTo Uninstall\n");
563
- const confirm = await prompt("Remove DevTo MCP server from Claude Code? (y/n): ");
564
- if (confirm.toLowerCase() !== "y" && confirm.toLowerCase() !== "yes") {
565
- console.log("Cancelled.\n");
566
- return;
567
- }
568
- }
569
- // Remove via Claude CLI
570
- const { spawnSync } = require("child_process");
571
- try {
572
- spawnSync("claude", ["mcp", "remove", "devto"], { stdio: "inherit", shell: true });
573
- console.log("Removed DevTo MCP server from Claude Code.");
574
- }
575
- catch {
576
- console.log("Could not remove via Claude CLI (may not be registered).");
577
- }
578
- // Also clean up .mcp.json if it has a devto entry (legacy)
579
- const mcpJsonPath = path.join(process.cwd(), ".mcp.json");
580
- if (fs.existsSync(mcpJsonPath)) {
581
- try {
582
- const raw = fs.readFileSync(mcpJsonPath, "utf-8");
583
- const mcpConfig = JSON.parse(raw);
584
- if (mcpConfig.mcpServers?.devto) {
585
- delete mcpConfig.mcpServers.devto;
586
- fs.writeFileSync(mcpJsonPath, JSON.stringify(mcpConfig, null, 2));
587
- console.log(`Also removed devto from: ${mcpJsonPath}`);
588
- }
589
- }
590
- catch {
591
- // Skip corrupt config
592
- }
593
- }
594
- // Only with --purge: remove global ~/.devto config
595
- if (purge) {
596
- const configDir = path.join(os.homedir(), ".devto");
597
- if (fs.existsSync(configDir)) {
598
- fs.rmSync(configDir, { recursive: true, force: true });
599
- console.log("Removed ~/.devto global credentials.");
600
- }
601
- console.log("\nFull purge complete. To finish, run: npm uninstall -g devto-mcp\n");
602
- }
603
- else {
604
- console.log("\nDevTo removed from this project.");
605
- console.log("Your global credentials (~/.devto) are untouched — other projects still work.");
606
- console.log("Restart Claude Code to apply changes.\n");
607
- }
608
- }
609
721
  function printHelp() {
610
722
  console.log(`
611
723
  DevTo CLI — AI-powered work management
@@ -613,26 +725,26 @@ DevTo CLI — AI-powered work management
613
725
  Usage:
614
726
  devto login Authenticate with your DevTo API key
615
727
  devto logout Clear global credentials (~/.devto)
616
- devto status Show connection status
617
- devto init Auto-configure Claude Code MCP config
728
+ devto status Show connection status and active project
729
+ devto init Link this project to DevTo
730
+ devto unlink Unlink this project from DevTo
618
731
  devto doctor Test full connection chain
619
732
  devto sync Re-sync workspace configuration
620
733
  devto verbose Toggle verbose mode
621
734
  devto config set anthropic-key <key> Store Anthropic API key
622
- devto uninstall Remove DevTo from this project
623
- devto uninstall --purge Remove from project + delete global credentials
624
735
  devto help Show this help message
625
736
  devto --version Show installed version
626
737
 
627
- After logging in, run \`devto init\` in your project to add DevTo to .mcp.json.
628
-
629
- Manual setup (add to your project's .mcp.json):
630
-
631
- Windows:
632
- { "mcpServers": { "devto": { "command": "cmd", "args": ["/c", "npx", "-y", "devto-mcp"], "env": { "DEVTO_API_KEY": "your-key" } } } }
738
+ Setup:
739
+ 1. npm install -g devto-mcp Install globally (once)
740
+ 2. devto login Save your API key
741
+ 3. devto init Link project, create .devto.json + .mcp.json
742
+ 4. Restart Claude Code
633
743
 
634
- macOS/Linux:
635
- { "mcpServers": { "devto": { "command": "npx", "args": ["-y", "devto-mcp"], "env": { "DEVTO_API_KEY": "your-key" } } } }
744
+ Per-project config (.devto.json):
745
+ Created by \`devto init\`. Contains workspace URL, project key, and provider.
746
+ Add .devto.json to .gitignore (devto init does this automatically).
747
+ To disconnect a project: \`devto unlink\`
636
748
  `);
637
749
  }
638
750
  async function main() {
@@ -653,6 +765,10 @@ async function main() {
653
765
  case "--init":
654
766
  await init();
655
767
  break;
768
+ case "unlink":
769
+ case "--unlink":
770
+ await unlink();
771
+ break;
656
772
  case "doctor":
657
773
  case "--doctor":
658
774
  await doctor();
@@ -669,13 +785,9 @@ async function main() {
669
785
  case "--config":
670
786
  await configSet();
671
787
  break;
672
- case "uninstall":
673
- case "--uninstall":
674
- await uninstall();
675
- break;
676
788
  case "--version":
677
789
  case "-v":
678
- console.log(`devto-mcp v${require("../package.json").version}`);
790
+ console.log(`devto-mcp v${config_1.VERSION}`);
679
791
  break;
680
792
  case "help":
681
793
  case "--help":
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAIA,qBAAa,aAAc,SAAQ,KAAK;IAG7B,IAAI,CAAC,EAAE,MAAM;IACb,MAAM,CAAC,EAAE,MAAM;gBAFtB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,MAAM,CAAC,EAAE,MAAM,YAAA;CAKzB;AAED,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC,CAgCZ"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAc,SAAQ,KAAK;IAG7B,IAAI,CAAC,EAAE,MAAM;IACb,MAAM,CAAC,EAAE,MAAM;gBAFtB,OAAO,EAAE,MAAM,EACR,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,MAAM,CAAC,EAAE,MAAM,YAAA;CAKzB;AAED,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC,CAwCZ"}
package/dist/client.js CHANGED
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DevToApiError = void 0;
4
4
  exports.callApi = callApi;
5
5
  const config_1 = require("./config");
6
- const DEVTO_VERSION = "0.1.0";
7
6
  class DevToApiError extends Error {
8
7
  code;
9
8
  status;
@@ -18,14 +17,18 @@ exports.DevToApiError = DevToApiError;
18
17
  async function callApi(method, path, body) {
19
18
  const apiKey = (0, config_1.getApiKey)();
20
19
  const apiUrl = (0, config_1.getApiUrl)();
21
- const workspaceId = (0, config_1.getWorkspaceId)();
20
+ // Strict: workspace comes from .devto.json only — no tenant-default fallback
21
+ const projectJson = (0, config_1.findProjectJson)();
22
+ if (!projectJson) {
23
+ throw new DevToApiError("No DevTo project linked in this directory. Run `devto init` in your project root to get started.", "NO_PROJECT_LINKED");
24
+ }
22
25
  const headers = {
23
26
  "Content-Type": "application/json",
24
27
  Authorization: `Bearer ${apiKey}`,
25
- "X-DevTo-Version": DEVTO_VERSION,
28
+ "X-DevTo-Version": config_1.VERSION,
26
29
  };
27
- if (workspaceId) {
28
- headers["X-DevTo-Workspace"] = workspaceId;
30
+ if (projectJson.config.workspaceId) {
31
+ headers["X-DevTo-Workspace"] = projectJson.config.workspaceId;
29
32
  }
30
33
  const res = await fetch(`${apiUrl}${path}`, {
31
34
  method,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAeA,0BAoCC;AAnDD,qCAAgE;AAEhE,MAAM,aAAa,GAAG,OAAO,CAAC;AAE9B,MAAa,aAAc,SAAQ,KAAK;IAG7B;IACA;IAHT,YACE,OAAe,EACR,IAAa,EACb,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAS;QACb,WAAM,GAAN,MAAM,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AATD,sCASC;AAEM,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,IAAY,EACZ,IAAc;IAEd,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,WAAW,GAAG,IAAA,uBAAc,GAAE,CAAC;IAErC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,UAAU,MAAM,EAAE;QACjC,iBAAiB,EAAE,aAAa;KACjC,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC;IAC7C,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,aAAa,CACpB,IAA6B,CAAC,OAAO,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,EACxE,IAA0B,CAAC,IAAI,EAChC,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IAED,OAAO,IAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAaA,0BA4CC;AAzDD,qCAA0E;AAE1E,MAAa,aAAc,SAAQ,KAAK;IAG7B;IACA;IAHT,YACE,OAAe,EACR,IAAa,EACb,MAAe;QAEtB,KAAK,CAAC,OAAO,CAAC,CAAC;QAHR,SAAI,GAAJ,IAAI,CAAS;QACb,WAAM,GAAN,MAAM,CAAS;QAGtB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AATD,sCASC;AAEM,KAAK,UAAU,OAAO,CAC3B,MAAc,EACd,IAAY,EACZ,IAAc;IAEd,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAE3B,6EAA6E;IAC7E,MAAM,WAAW,GAAG,IAAA,wBAAe,GAAE,CAAC;IACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,aAAa,CACrB,kGAAkG,EAClG,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,UAAU,MAAM,EAAE;QACjC,iBAAiB,EAAE,gBAAO;KAC3B,CAAC;IAEF,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC;IAChE,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,GAAG,IAAI,EAAE,EAAE;QAC1C,MAAM;QACN,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,aAAa,CACpB,IAA6B,CAAC,OAAO,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,EACxE,IAA0B,CAAC,IAAI,EAChC,GAAG,CAAC,MAAM,CACX,CAAC;IACJ,CAAC;IAED,OAAO,IAAS,CAAC;AACnB,CAAC"}
package/dist/config.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export declare const VERSION: string;
1
2
  export type DevToConfig = {
2
3
  api_key: string;
3
4
  api_url: string;
@@ -5,6 +6,48 @@ export type DevToConfig = {
5
6
  workspace_id?: string;
6
7
  verbose?: boolean;
7
8
  };
9
+ /**
10
+ * Per-project config stored as .devto.json in the project root.
11
+ * Contains workspace binding — NOT auth credentials.
12
+ */
13
+ export type ProjectJsonConfig = {
14
+ workspaceUrl: string;
15
+ projectKey: string;
16
+ provider: string;
17
+ workspaceId?: string;
18
+ };
19
+ /**
20
+ * Entry in ~/.devto/projects.json registry.
21
+ */
22
+ export type ProjectRegistryEntry = {
23
+ path: string;
24
+ workspaceUrl: string;
25
+ projectKey: string;
26
+ provider: string;
27
+ linkedAt: string;
28
+ };
29
+ /**
30
+ * Walk up the directory tree from startDir looking for .devto.json.
31
+ * Returns the parsed config and the directory where it was found, or null.
32
+ */
33
+ export declare function findProjectJson(startDir?: string): {
34
+ config: ProjectJsonConfig;
35
+ dir: string;
36
+ } | null;
37
+ /**
38
+ * Write .devto.json to the given directory (defaults to cwd).
39
+ */
40
+ export declare function writeProjectJson(config: ProjectJsonConfig, dir?: string): void;
41
+ export declare function readProjectsRegistry(): ProjectRegistryEntry[];
42
+ /**
43
+ * Register a project directory in ~/.devto/projects.json.
44
+ * Updates existing entry if the path already exists.
45
+ */
46
+ export declare function registerProject(entry: Omit<ProjectRegistryEntry, "linkedAt">): void;
47
+ /**
48
+ * Remove a project directory from ~/.devto/projects.json.
49
+ */
50
+ export declare function unregisterProject(dir?: string): boolean;
8
51
  export declare function readProjectConfig(): DevToConfig | null;
9
52
  export declare function writeProjectConfig(config: DevToConfig): void;
10
53
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAaF,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAgBtD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAK5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,GAAG,IAAI,CAM5F;AAID,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAe/C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAKrD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAYlC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAUxC;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIjD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIjD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,OAAO,EAAE,MAA2C,CAAC;AAElE,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAWF;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgCpG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAa9E;AAID,wBAAgB,oBAAoB,IAAI,oBAAoB,EAAE,CAS7D;AASD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,GAAG,IAAI,CAkBnF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CASvD;AASD,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAgBtD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAK5D;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAA;CAAE,GAAG,IAAI,CAM5F;AAID,wBAAgB,UAAU,IAAI,WAAW,GAAG,IAAI,CAe/C;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,CAKrD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAYlC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAElC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAUxC;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,SAAS,IAAI,OAAO,CAGnC;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAIjD;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAIjD"}
package/dist/config.js CHANGED
@@ -33,6 +33,12 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.VERSION = void 0;
37
+ exports.findProjectJson = findProjectJson;
38
+ exports.writeProjectJson = writeProjectJson;
39
+ exports.readProjectsRegistry = readProjectsRegistry;
40
+ exports.registerProject = registerProject;
41
+ exports.unregisterProject = unregisterProject;
36
42
  exports.readProjectConfig = readProjectConfig;
37
43
  exports.writeProjectConfig = writeProjectConfig;
38
44
  exports.resolveConfig = resolveConfig;
@@ -48,12 +54,123 @@ exports.setAnthropicKey = setAnthropicKey;
48
54
  const fs = __importStar(require("fs"));
49
55
  const path = __importStar(require("path"));
50
56
  const os = __importStar(require("os"));
57
+ // Single source of truth — read from package.json at build time
58
+ exports.VERSION = require("../package.json").version;
51
59
  const CONFIG_DIR = path.join(os.homedir(), ".devto");
52
60
  const CONFIG_FILE = path.join(CONFIG_DIR, "config.json");
61
+ const PROJECTS_FILE = path.join(CONFIG_DIR, "projects.json");
53
62
  const DEFAULT_API_URL = "https://api.devto.ai";
54
- // ─── Per-project config ──────────────────────────────────────────────────────
63
+ // ─── Per-project .devto.json (workspace binding) ────────────────────────────
64
+ // Walk up from cwd() looking for .devto.json.
65
+ // Contains workspaceUrl, projectKey, provider — not credentials.
66
+ /**
67
+ * Walk up the directory tree from startDir looking for .devto.json.
68
+ * Returns the parsed config and the directory where it was found, or null.
69
+ */
70
+ function findProjectJson(startDir) {
71
+ let dir = startDir ?? process.cwd();
72
+ // Safety: limit traversal depth
73
+ for (let i = 0; i < 50; i++) {
74
+ const candidate = path.join(dir, ".devto.json");
75
+ try {
76
+ if (fs.existsSync(candidate)) {
77
+ const raw = fs.readFileSync(candidate, "utf-8");
78
+ const parsed = JSON.parse(raw);
79
+ if (parsed.workspaceUrl && parsed.projectKey && parsed.provider) {
80
+ return {
81
+ config: {
82
+ workspaceUrl: parsed.workspaceUrl,
83
+ projectKey: parsed.projectKey,
84
+ provider: parsed.provider,
85
+ workspaceId: parsed.workspaceId,
86
+ },
87
+ dir,
88
+ };
89
+ }
90
+ }
91
+ }
92
+ catch {
93
+ // Skip unreadable files
94
+ }
95
+ const parent = path.dirname(dir);
96
+ if (parent === dir)
97
+ break; // reached filesystem root
98
+ dir = parent;
99
+ }
100
+ return null;
101
+ }
102
+ /**
103
+ * Write .devto.json to the given directory (defaults to cwd).
104
+ */
105
+ function writeProjectJson(config, dir) {
106
+ const targetDir = dir ?? process.cwd();
107
+ const filePath = path.join(targetDir, ".devto.json");
108
+ // Write only the user-facing fields + internal workspaceId
109
+ const data = {
110
+ workspaceUrl: config.workspaceUrl,
111
+ projectKey: config.projectKey,
112
+ provider: config.provider,
113
+ };
114
+ if (config.workspaceId) {
115
+ data.workspaceId = config.workspaceId;
116
+ }
117
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2));
118
+ }
119
+ // ─── Projects registry (~/.devto/projects.json) ────────────────────────────
120
+ function readProjectsRegistry() {
121
+ try {
122
+ if (!fs.existsSync(PROJECTS_FILE))
123
+ return [];
124
+ const raw = fs.readFileSync(PROJECTS_FILE, "utf-8");
125
+ const parsed = JSON.parse(raw);
126
+ return Array.isArray(parsed.projects) ? parsed.projects : [];
127
+ }
128
+ catch {
129
+ return [];
130
+ }
131
+ }
132
+ function writeProjectsRegistry(projects) {
133
+ if (!fs.existsSync(CONFIG_DIR)) {
134
+ fs.mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });
135
+ }
136
+ fs.writeFileSync(PROJECTS_FILE, JSON.stringify({ projects }, null, 2));
137
+ }
138
+ /**
139
+ * Register a project directory in ~/.devto/projects.json.
140
+ * Updates existing entry if the path already exists.
141
+ */
142
+ function registerProject(entry) {
143
+ const projects = readProjectsRegistry();
144
+ const normalized = path.resolve(entry.path);
145
+ const idx = projects.findIndex((p) => path.resolve(p.path) === normalized);
146
+ const full = {
147
+ ...entry,
148
+ path: normalized,
149
+ linkedAt: new Date().toISOString(),
150
+ };
151
+ if (idx >= 0) {
152
+ projects[idx] = full;
153
+ }
154
+ else {
155
+ projects.push(full);
156
+ }
157
+ writeProjectsRegistry(projects);
158
+ }
159
+ /**
160
+ * Remove a project directory from ~/.devto/projects.json.
161
+ */
162
+ function unregisterProject(dir) {
163
+ const projects = readProjectsRegistry();
164
+ const normalized = path.resolve(dir ?? process.cwd());
165
+ const filtered = projects.filter((p) => path.resolve(p.path) !== normalized);
166
+ if (filtered.length === projects.length)
167
+ return false; // not found
168
+ writeProjectsRegistry(filtered);
169
+ return true;
170
+ }
171
+ // ─── Per-project .devto/config.json (legacy + credentials) ─────────────────
55
172
  // Stored in .devto/config.json inside the project directory.
56
- // Takes precedence over the global ~/.devto/config.json for CLI commands.
173
+ // Contains API key and credentials. Takes precedence over global config.
57
174
  const PROJECT_CONFIG_DIR = path.join(process.cwd(), ".devto");
58
175
  const PROJECT_CONFIG_FILE = path.join(PROJECT_CONFIG_DIR, "config.json");
59
176
  function readProjectConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,8CAgBC;AAED,gDAKC;AAMD,sCAMC;AAID,gCAeC;AAED,kCAKC;AAED,8BAYC;AAED,8BAEC;AAED,0CAUC;AAED,wCAEC;AAED,8BAGC;AAED,gCAIC;AAED,0CAIC;AAvID,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAUzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACzD,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAE/C,gFAAgF;AAChF,6DAA6D;AAC7D,0EAA0E;AAE1E,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;AAC9D,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC,CAAC;AAEzE,SAAgB,iBAAiB;IAC/B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,OAAO,IAAI,CAAC;QACrD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;YAC1C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB,CAAC,MAAmB;IACpD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACvC,EAAE,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,IAAI,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAC3D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IACxD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAEhF,SAAgB,UAAU;IACxB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAAE,OAAO,IAAI,CAAC;QAC7C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACjC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,eAAe;YAC1C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,WAAW,CAAC,MAAmB;IAC7C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClF,CAAC;AAED,SAAgB,SAAS;IACvB,uEAAuE;IACvE,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,2GAA2G,CAC5G,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU,EAAE,EAAE,OAAO,IAAI,eAAe,CAAC;AAC/E,CAAC;AAED,SAAgB,eAAe;IAC7B,+DAA+D;IAC/D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IAC/C,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,IAAI,MAAM,EAAE,aAAa;QAAE,OAAO,MAAM,CAAC,aAAa,CAAC;IACvD,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,UAAU,EAAE,EAAE,YAAY,IAAI,IAAI,CAAC;AAC9E,CAAC;AAED,SAAgB,SAAS;IACvB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,OAAO,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;AAClC,CAAC;AAED,SAAgB,UAAU,CAAC,OAAgB;IACzC,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACzE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,MAAM,GAAG,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;IACzE,MAAM,CAAC,aAAa,GAAG,GAAG,CAAC;IAC3B,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -7,7 +7,6 @@ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
7
7
  const config_1 = require("./config");
8
8
  const client_1 = require("./client");
9
9
  const tools_1 = require("./tools");
10
- const CURRENT_VERSION = "0.1.9";
11
10
  // Auto-update check (non-blocking)
12
11
  (async () => {
13
12
  try {
@@ -16,7 +15,7 @@ const CURRENT_VERSION = "0.1.9";
16
15
  });
17
16
  if (res.ok) {
18
17
  const data = (await res.json());
19
- if (data.version && data.version !== CURRENT_VERSION) {
18
+ if (data.version && data.version !== config_1.VERSION) {
20
19
  console.error(`[devto-mcp] DevTo v${data.version} is available. Run npm update -g devto-mcp to update.`);
21
20
  }
22
21
  }
@@ -33,6 +32,15 @@ catch (err) {
33
32
  console.error(`[devto-mcp] ${err instanceof Error ? err.message : String(err)}`);
34
33
  process.exit(1);
35
34
  }
35
+ // Log active project config if found
36
+ const _projectJson = (0, config_1.findProjectJson)();
37
+ if (_projectJson) {
38
+ console.error(`[devto-mcp] Project: ${_projectJson.config.projectKey} @ ${_projectJson.config.workspaceUrl} (${_projectJson.dir})`);
39
+ }
40
+ else {
41
+ console.error("[devto-mcp] Warning: No .devto.json found. Tools will require `devto init` before use.");
42
+ }
43
+ const NO_PROJECT_MESSAGE = "No DevTo project linked in this directory. Run `devto init` in your project root to get started.";
36
44
  const INSTRUCTIONS = `DevTo is an AI work manager (devto.ai) — NOT the Dev.to blogging platform. When the user mentions "devto", tasks, plans, epics, or project work, they mean this tool.
37
45
 
38
46
  DevTo connects to the developer's project tracker (Jira, Linear, etc.) and manages work items through these MCP tools. Use them whenever the user asks about tasks, plans, sprints, or project status.
@@ -54,7 +62,7 @@ DevTo connects to the developer's project tracker (Jira, Linear, etc.) and manag
54
62
  - get_status — Aggregate project metrics and current sprint.`;
55
63
  const server = new index_js_1.Server({
56
64
  name: "devto",
57
- version: CURRENT_VERSION,
65
+ version: config_1.VERSION,
58
66
  }, {
59
67
  capabilities: {
60
68
  tools: {},
@@ -192,6 +200,13 @@ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => ({
192
200
  // ─── Tool handler ────────────────────────────────────────────────────────────
193
201
  server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
194
202
  const { name, arguments: args } = request.params;
203
+ // Strict project-context enforcement: require .devto.json for all tools
204
+ if (!(0, config_1.findProjectJson)()) {
205
+ return {
206
+ content: [{ type: "text", text: NO_PROJECT_MESSAGE }],
207
+ isError: true,
208
+ };
209
+ }
195
210
  try {
196
211
  let result;
197
212
  switch (name) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "devto-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "DevTo MCP server — AI work management for Claude Code",
5
5
  "main": "dist/index.js",
6
6
  "bin": {