altalandi-mcp 0.7.7 → 0.7.8
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 -3
- package/card.html +1 -1
- package/format-response.mjs +1 -1
- package/package.json +1 -1
- package/server.mjs +4 -4
package/README.md
CHANGED
|
@@ -17,10 +17,14 @@ Then add the server. No key goes into any config file; the server reads the
|
|
|
17
17
|
one `altalandi login` stored:
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
|
-
claude mcp add altalandi -s user -- npx -y altalandi-mcp # Claude Code
|
|
21
|
-
codex mcp add altalandi -- npx -y altalandi-mcp # Codex
|
|
20
|
+
claude mcp add altalandi -s user -- npx -y altalandi-mcp@latest # Claude Code
|
|
21
|
+
codex mcp add altalandi -- npx -y altalandi-mcp@latest # Codex
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
+
`@latest` makes each new session use the newest version. Added it without
|
|
25
|
+
`@latest` before? npx keeps its first copy: remove the server
|
|
26
|
+
(`claude mcp remove altalandi`) and add it again with the line above.
|
|
27
|
+
|
|
24
28
|
Ask for Icelandic and mention Altalandi, e.g. *"Write this in proper Icelandic
|
|
25
29
|
with Altalandi."* The agent calls the **`refine_icelandic`** tool.
|
|
26
30
|
|
|
@@ -31,7 +35,7 @@ manager. It takes precedence over a stored login. Mint a key at
|
|
|
31
35
|
<https://altalandi.is/portal>. Never commit a plaintext key in MCP JSON.
|
|
32
36
|
|
|
33
37
|
```json
|
|
34
|
-
{ "mcpServers": { "altalandi": { "command": "npx", "args": ["-y", "altalandi-mcp"] } } }
|
|
38
|
+
{ "mcpServers": { "altalandi": { "command": "npx", "args": ["-y", "altalandi-mcp@latest"] } } }
|
|
35
39
|
```
|
|
36
40
|
|
|
37
41
|
## The tool
|
package/card.html
CHANGED
|
@@ -553,7 +553,7 @@
|
|
|
553
553
|
return (x < 0 ? "-" : "") + whole.replace(/\B(?=(\d{3})+(?!\d))/g, ".") + (frac && Number(frac) ? "," + frac : "");
|
|
554
554
|
}
|
|
555
555
|
const isk = (n) => `${num(n, Number(n) % 1 ? 2 : 0)} kr.`;
|
|
556
|
-
const LABEL = { both: "Tvær athuganir sammála", one: "Ein athugun", rule: "Regla
|
|
556
|
+
const LABEL = { both: "Tvær athuganir sammála", one: "Ein athugun", rule: "Regla" };
|
|
557
557
|
const KIND = { L1: "Orðalag", L2: "Málfarsvilla", L3: "Yfirferð" };
|
|
558
558
|
function announce(msg) { const live = $("live"); live.textContent = ""; if (msg) setTimeout(() => { live.textContent = msg; }, 40); }
|
|
559
559
|
const quote = (s) => `„${(s || "").trim()}“`;
|
package/format-response.mjs
CHANGED
|
@@ -54,7 +54,7 @@ export function formatRefineResponse(data) {
|
|
|
54
54
|
return lines.join("\n");
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
const LABELS = { both: "both checks agree", one: "one check", rule: "rule
|
|
57
|
+
const LABELS = { both: "both checks agree", one: "one check", rule: "rule" };
|
|
58
58
|
|
|
59
59
|
/** A task=proofread response for an agent: the corrected text, what was fixed,
|
|
60
60
|
* the numbered suggestions to offer, and what to do once the person decides. */
|
package/package.json
CHANGED
package/server.mjs
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
// The key comes from ALTALANDI_API_KEY or, failing that, from the login that
|
|
6
6
|
// `npx altalandi login` stored on this computer, so no config file ever holds
|
|
7
7
|
// a secret:
|
|
8
|
-
// claude mcp add altalandi -s user -- npx -y altalandi-mcp
|
|
9
|
-
// codex mcp add altalandi -- npx -y altalandi-mcp
|
|
8
|
+
// claude mcp add altalandi -s user -- npx -y altalandi-mcp@latest
|
|
9
|
+
// codex mcp add altalandi -- npx -y altalandi-mcp@latest
|
|
10
10
|
//
|
|
11
11
|
// Hosts that render MCP Apps (Claude Desktop, claude.ai) also get the
|
|
12
12
|
// Altalandi card (card.mjs); terminals read the text, which is unchanged.
|
|
@@ -22,7 +22,7 @@ import { resolveKey } from "./key.mjs";
|
|
|
22
22
|
import { reportEnabled, reviewMarkdown, writeReport } from "./report.mjs";
|
|
23
23
|
|
|
24
24
|
const BASE = (process.env.ALTALANDI_BASE_URL || "https://altalandi.is/api").replace(/\/$/, "");
|
|
25
|
-
const server = new McpServer({ name: "altalandi", version: "0.7.
|
|
25
|
+
const server = new McpServer({ name: "altalandi", version: "0.7.8" });
|
|
26
26
|
|
|
27
27
|
const CARD_NOTE = " When the host shows Altalandi's card, the card already shows this: do not repeat it, add at most a short sentence.";
|
|
28
28
|
|
|
@@ -127,7 +127,7 @@ server.registerTool(
|
|
|
127
127
|
"proofread_icelandic",
|
|
128
128
|
{
|
|
129
129
|
title: "Proofread Icelandic",
|
|
130
|
-
description: "Proofread Icelandic text the person wrote, keeping their wording. Proven errors (punctuation, word boundaries, a misspelt word one slip from the right one) are fixed in the returned text. Other corrections come back as numbered suggestions with a reason and, when known, how sure each is ('both checks agree', 'one check', 'rule
|
|
130
|
+
description: "Proofread Icelandic text the person wrote, keeping their wording. Proven errors (punctuation, word boundaries, a misspelt word one slip from the right one) are fixed in the returned text. Other corrections come back as numbered suggestions with a reason and, when known, how sure each is ('both checks agree', 'one check', 'rule'). Show the corrected text and every suggestion, ask which to apply, apply only those the person accepts, then call record_suggestion_decisions with the resultId and a decision for every suggestion. suggestions='apply' applies the kinds measured right at least minPrecision of the time and offers the rest; 'off' returns only the safe fixes. When the host shows Altalandi's card, the person chooses in the card and the card records the decisions: then do not list the suggestions again, just say briefly what was found.",
|
|
131
131
|
inputSchema: {
|
|
132
132
|
text: z.string().describe("The Icelandic text to proofread."),
|
|
133
133
|
suggestions: z.enum(["offer", "apply", "off"]).optional()
|