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 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 (BÍN)" };
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()}“`;
@@ -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 (BÍN)" };
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "altalandi-mcp",
3
- "version": "0.7.7",
3
+ "version": "0.7.8",
4
4
  "description": "MCP server exposing Altalandi (native-Icelandic refinement) as a tool for Claude Code and any MCP client.",
5
5
  "type": "module",
6
6
  "bin": {
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.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 (BÍN)'). 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.",
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()