@fswap/mcp-vikunja 0.1.3 → 0.1.6
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 +7 -7
- package/dist/index.js +11 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Runs locally over stdio. No install step — clients launch it with `npx`.
|
|
|
10
10
|
2. Run the interactive setup once:
|
|
11
11
|
|
|
12
12
|
```bash
|
|
13
|
-
npx -y @fswap/mcp-vikunja setup
|
|
13
|
+
npx -y @fswap/mcp-vikunja@latest setup
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
It asks for your Vikunja URL and token, verifies them against `/api/v1/user`, lets you pick a default project, and stores the answers in your OS config directory (mode `0600`).
|
|
@@ -24,7 +24,7 @@ Runs locally over stdio. No install step — clients launch it with `npx`.
|
|
|
24
24
|
"mcpServers": {
|
|
25
25
|
"vikunja": {
|
|
26
26
|
"command": "npx",
|
|
27
|
-
"args": ["-y", "@fswap/mcp-vikunja"]
|
|
27
|
+
"args": ["-y", "@fswap/mcp-vikunja@latest"]
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}
|
|
@@ -35,13 +35,13 @@ Runs locally over stdio. No install step — clients launch it with `npx`.
|
|
|
35
35
|
```toml
|
|
36
36
|
[mcp_servers.vikunja]
|
|
37
37
|
command = "npx"
|
|
38
|
-
args = ["-y", "@fswap/mcp-vikunja"]
|
|
38
|
+
args = ["-y", "@fswap/mcp-vikunja@latest"]
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
**Claude Code**:
|
|
42
42
|
|
|
43
43
|
```bash
|
|
44
|
-
claude mcp add vikunja -- npx -y @fswap/mcp-vikunja
|
|
44
|
+
claude mcp add vikunja -- npx -y @fswap/mcp-vikunja@latest
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
### Without `setup` (environment variables)
|
|
@@ -53,7 +53,7 @@ Environment variables take precedence over the config file, so you can skip `set
|
|
|
53
53
|
"mcpServers": {
|
|
54
54
|
"vikunja": {
|
|
55
55
|
"command": "npx",
|
|
56
|
-
"args": ["-y", "@fswap/mcp-vikunja"],
|
|
56
|
+
"args": ["-y", "@fswap/mcp-vikunja@latest"],
|
|
57
57
|
"env": {
|
|
58
58
|
"VIKUNJA_URL": "https://try.vikunja.io",
|
|
59
59
|
"VIKUNJA_API_TOKEN": "tk_..."
|
|
@@ -68,7 +68,7 @@ Codex equivalent:
|
|
|
68
68
|
```toml
|
|
69
69
|
[mcp_servers.vikunja]
|
|
70
70
|
command = "npx"
|
|
71
|
-
args = ["-y", "@fswap/mcp-vikunja"]
|
|
71
|
+
args = ["-y", "@fswap/mcp-vikunja@latest"]
|
|
72
72
|
[mcp_servers.vikunja.env]
|
|
73
73
|
VIKUNJA_URL = "https://try.vikunja.io"
|
|
74
74
|
VIKUNJA_API_TOKEN = "tk_..."
|
|
@@ -118,7 +118,7 @@ Never write to stdout from server code — it is the protocol channel. Use `cons
|
|
|
118
118
|
## Reset
|
|
119
119
|
|
|
120
120
|
```bash
|
|
121
|
-
npx -y @fswap/mcp-vikunja setup --reset
|
|
121
|
+
npx -y @fswap/mcp-vikunja@latest setup --reset
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
## License
|
package/dist/index.js
CHANGED
|
@@ -489,7 +489,7 @@ function registerTaskTools(server, vikunja, { allowDelete = false, defaultProjec
|
|
|
489
489
|
function jsonSnippet(missing) {
|
|
490
490
|
const server = {
|
|
491
491
|
command: "npx",
|
|
492
|
-
args: ["-y", PACKAGE_NAME]
|
|
492
|
+
args: ["-y", `${PACKAGE_NAME}@latest`]
|
|
493
493
|
};
|
|
494
494
|
if (Object.keys(missing).length > 0) server.env = missing;
|
|
495
495
|
return JSON.stringify({ mcpServers: { [SERVER_KEY]: server } }, null, 2);
|
|
@@ -498,7 +498,7 @@ function tomlSnippet(missing) {
|
|
|
498
498
|
const lines = [
|
|
499
499
|
`[mcp_servers.${SERVER_KEY}]`,
|
|
500
500
|
"command = \"npx\"",
|
|
501
|
-
`args = ["-y", "${PACKAGE_NAME}"]`
|
|
501
|
+
`args = ["-y", "${PACKAGE_NAME}@latest"]`
|
|
502
502
|
];
|
|
503
503
|
if (Object.keys(missing).length > 0) {
|
|
504
504
|
lines.push(`[mcp_servers.${SERVER_KEY}.env]`);
|
|
@@ -508,7 +508,7 @@ function tomlSnippet(missing) {
|
|
|
508
508
|
}
|
|
509
509
|
function claudeCodeSnippet(missing) {
|
|
510
510
|
const env = Object.entries(missing).map(([k, v]) => `-e ${k}=${v} `).join("");
|
|
511
|
-
return `claude mcp add ${SERVER_KEY} ${env}-- npx -y ${PACKAGE_NAME}`;
|
|
511
|
+
return `claude mcp add ${SERVER_KEY} ${env}-- npx -y ${PACKAGE_NAME}@latest`;
|
|
512
512
|
}
|
|
513
513
|
function clientSnippets(missing = {}) {
|
|
514
514
|
return [
|
|
@@ -543,8 +543,13 @@ function abort() {
|
|
|
543
543
|
p.cancel("Setup aborted.");
|
|
544
544
|
process.exit(1);
|
|
545
545
|
}
|
|
546
|
+
/** Plain stdout, no box drawing, so the snippets can be selected and copied (or piped to a file). */
|
|
546
547
|
function printSnippets(missing) {
|
|
547
|
-
for (const s of clientSnippets(missing))
|
|
548
|
+
for (const s of clientSnippets(missing)) {
|
|
549
|
+
console.log(`\n# ${s.title}\n`);
|
|
550
|
+
console.log(s.body);
|
|
551
|
+
}
|
|
552
|
+
console.log();
|
|
548
553
|
}
|
|
549
554
|
async function runSetup(args = []) {
|
|
550
555
|
if (args.includes("--reset")) {
|
|
@@ -626,8 +631,9 @@ async function runSetup(args = []) {
|
|
|
626
631
|
if (!url) missing[ENV_URL] = "https://try.vikunja.io";
|
|
627
632
|
if (!token) missing[ENV_TOKEN] = "tk_...";
|
|
628
633
|
if (Object.keys(missing).length > 0) p.log.warn(`Still needed: ${Object.keys(missing).join(", ")}. Add them to the env block below, or run setup again.`);
|
|
629
|
-
printSnippets(missing);
|
|
630
634
|
p.outro(`Saved to ${file}`);
|
|
635
|
+
console.log("Add one of these to your MCP client (plain text, safe to copy). Re-print any time with: setup --print");
|
|
636
|
+
printSnippets(missing);
|
|
631
637
|
}
|
|
632
638
|
var init_setup = __esmMin((() => {
|
|
633
639
|
init_config();
|