@cyanheads/ris-austria-mcp-server 0.4.2 → 0.4.4

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.
Files changed (42) hide show
  1. package/AGENTS.md +46 -19
  2. package/CLAUDE.md +46 -19
  3. package/README.md +71 -68
  4. package/changelog/0.4.x/0.4.3.md +33 -0
  5. package/changelog/0.4.x/0.4.4.md +30 -0
  6. package/changelog/template.md +9 -26
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/mcp-server/resources/definitions/ris-document.resource.js +1 -1
  10. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js +9 -2
  12. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts +3 -0
  14. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js +3 -0
  16. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts +2 -0
  18. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js +2 -0
  20. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts +3 -0
  22. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js +3 -0
  24. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts +3 -0
  26. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js +3 -0
  28. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts +3 -0
  30. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js +3 -0
  32. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts +3 -0
  34. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts.map +1 -1
  35. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js +3 -0
  36. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js.map +1 -1
  37. package/dist/services/ris/ris-service.d.ts +9 -6
  38. package/dist/services/ris/ris-service.d.ts.map +1 -1
  39. package/dist/services/ris/ris-service.js +23 -43
  40. package/dist/services/ris/ris-service.js.map +1 -1
  41. package/package.json +10 -9
  42. package/server.json +31 -3
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-0.4.2-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/ris-austria-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/ris-austria-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/ris-austria-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-0.4.4-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/ris-austria-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/ris-austria-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/ris-austria-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -27,13 +27,11 @@
27
27
 
28
28
  ---
29
29
 
30
- [RIS](https://www.ris.bka.gv.at/) (Rechtsinformationssystem des Bundes) is the Austrian government's official legal database: consolidated federal, state, and municipal law, case law from every Austrian court and tribunal, the authentic gazettes whose promulgated text is binding under Austrian law, the pre-parliamentary lawmaking pipeline, and ministerial decrees.
30
+ ## Overview
31
31
 
32
- This server wraps the keyless RIS OGD REST API (v2.6, CC BY 4.0) for MCP agents, covering all 39 OGD applications and reaching back to the Reichsgesetzblatt of 1848. Every response labels the document's binding status, since only the amtssignierte gazette wording is legally binding.
32
+ [RIS](https://www.ris.bka.gv.at/) is the Austrian government's official legal database: consolidated federal, state, and municipal law, case law from every Austrian court and tribunal, the authentic gazettes whose promulgated text is binding under Austrian law, the pre-parliamentary lawmaking pipeline, and ministerial decrees. This server wraps the keyless RIS OGD REST API (v2.6, CC BY 4.0), covering all 39 OGD applications and reaching back to the Reichsgesetzblatt of 1848; every response labels the document's binding status, since only the amtssignierte gazette wording is legally binding. Runs as a stdio process, a local Streamable HTTP server, or the public hosted endpoint above.
33
33
 
34
- ## Tools
35
-
36
- Five search tools split by document class, plus a citation resolver, document retrieval, a change feed, and an offline vocabulary reference:
34
+ ### Tools
37
35
 
38
36
  | Tool | Description |
39
37
  |:---|:---|
@@ -47,13 +45,21 @@ Five search tools split by document class, plus a citation resolver, document re
47
45
  | `ris_track_changes` | Per-application change feed: every document added or changed in a date window, deletions included. |
48
46
  | `ris_list_reference` | Ground the domain vocabulary offline: applications and coverage windows, court codes, Bundesländer, decision kinds, ministries, district authorities, gazette eras and parts, citation formats, search syntax. |
49
47
 
50
- ### `ris_search_legislation`
48
+ ### Resources
49
+
50
+ | Resource | Description |
51
+ |:---|:---|
52
+ | `ris://document/{application}/{documentNumber}` | Markdown text of one RIS document — injectable twin of `ris_get_document` |
51
53
 
52
- Search consolidated law: BrKons (federal), LrKons (state), Gr (municipal).
54
+ All resource data is also reachable via tools — clients without resource support use `ris_get_document`.
55
+
56
+ ## Capability reference
57
+
58
+ ### `ris_search_legislation` <sub>tool</sub>
53
59
 
54
60
  - Full-text `query` using RIS boolean grammar: `UND`/`ODER`/`NICHT` or `AND`/`OR`/`NOT`, parentheses, quoted phrases
55
61
  - `title` matches the title, short title, or abbreviation ("DSG", "ABGB")
56
- - `scope` routes to federal law or one of the nine Bundesländer; `municipality` narrows a state scope to municipal law (selected norms, six Bundesländer)
62
+ - `scope` routes to one of three applications — BrKons (federal), LrKons (state), Gr (municipal); `municipality` narrows a state scope to municipal law (selected norms, six Bundesländer)
57
63
  - `language: english` serves the Erv collection of selected English translations
58
64
  - `in_force_as_of` defaults to today. Omitting the date upstream silently searches all historical versions, so `include_all_versions` is the explicit opt-in and the applied date is echoed in every response
59
65
  - Force-window filters (`entered_force_from/to`, `left_force_from/to`) track provisions entering or leaving force in a date range
@@ -63,9 +69,7 @@ Search consolidated law: BrKons (federal), LrKons (state), Gr (municipal).
63
69
 
64
70
  ---
65
71
 
66
- ### `ris_search_case_law`
67
-
68
- Search decisions and headnotes across 17 court and tribunal applications.
72
+ ### `ris_search_case_law` <sub>tool</sub>
69
73
 
70
74
  - `court` is required and takes one application per call: `vfgh`, `vwgh`, `justiz`, `bvwg`, `lvwg`, `dsk`, `upts` (party-transparency senate), plus ten historical and specialized tribunals. Cross-court research fans out one call per court
71
75
  - Filter by cited provision (`norm`, e.g. "DSG §1", "DSGVO Art32"), exact case number (`case_number`, Geschäftszahl), decision date range, decision kind (Erkenntnis/Beschluss/…), and full-text query
@@ -75,9 +79,7 @@ Search decisions and headnotes across 17 court and tribunal applications.
75
79
 
76
80
  ---
77
81
 
78
- ### `ris_search_gazette`
79
-
80
- Browse the promulgation record at every level of government. For a single known gazette number, `ris_lookup_citation` is the direct route.
82
+ ### `ris_search_gazette` <sub>tool</sub>
81
83
 
82
84
  - `scope`: federal, one of the nine Bundesländer, `district` (Bezirksverwaltungsbehörden), or `municipal` (authentic municipal promulgations)
83
85
  - Federal history is one logical series auto-routed across three era tiers: BgblAuth (2004+, authentic), BgblPdf (Staats- und Bundesgesetzblatt 1945–2003), and BgblAlt (Reichs-, Staats- und Bundesgesetzblatt 1848–1940, metadata plus ÖNB-hosted scans). Each response names the tier that served it
@@ -86,12 +88,11 @@ Browse the promulgation record at every level of government. For a single known
86
88
  - State scopes serve the authentic Landesgesetzblätter by default. `series: ordinance_gazette` switches to the Verordnungsblätter; `state_era: legacy` selects the state's earlier non-authentic series (Niederösterreich's systematic LgblNO, or the historical Lgbl elsewhere)
87
89
  - Point lookup by gazette number ("BGBl. II Nr. 171/2026" or "171/2026")
88
90
  - Every record carries a binding label (`authentic`, `historical_record`, or `consolidated_informational`) and the amtssigniert PDF URL when present. The metadata-only 1848–1940 gazettes link to their ÖNB ALEX scan
91
+ - For a single known gazette number, `ris_lookup_citation` is the more direct route
89
92
 
90
93
  ---
91
94
 
92
- ### `ris_search_drafts`
93
-
94
- Search federal law before it is enacted.
95
+ ### `ris_search_drafts` <sub>tool</sub>
95
96
 
96
97
  - `stage: review_drafts` covers ministerial drafts in public review (Begutachtungsentwürfe). `in_review_on` answers what is in review on a given date
97
98
  - `stage: government_bills` covers bills adopted by the council of ministers (Regierungsvorlagen, 2004+), filtered by adoption date
@@ -101,20 +102,16 @@ Search federal law before it is enacted.
101
102
 
102
103
  ---
103
104
 
104
- ### `ris_search_announcements`
105
-
106
- Sectoral official gazettes and executive documents: seven collections, five of them legally binding authentic publications.
105
+ ### `ris_search_announcements` <sub>tool</sub>
107
106
 
108
- - `collection`: `social_insurance` (Avsv), `veterinary` (Avn), `court_rules` (KmGer), `trade_exam_rules` (PruefGewO), `health_structure_plans` (Spg, ÖSG/RSG), `ministerial_decrees` (Erlässe), `council_minutes` (Ministerratsprotokolle)
107
+ - `collection`: `social_insurance` (Avsv), `veterinary` (Avn), `court_rules` (KmGer), `trade_exam_rules` (PruefGewO), `health_structure_plans` (Spg, ÖSG/RSG), `ministerial_decrees` (Erlässe), `council_minutes` (Ministerratsprotokolle) — five of the seven are authentic publications
109
108
  - Collection-aware filters: issue numbers, issuers (insurance carriers, ministries), cited norm ("decrees citing the DSG"), in-force date for the consolidated collections, plan type and state for health plans, session number and legislature for council minutes
110
109
  - Binding labels per collection: `authentic`, `administrative_directive` (decrees bind the administration, not citizens), or `preparatory` (council minutes)
111
110
  - Every record carries the RIS web view — the only browsable surface for the PDF-only council minutes and for ministerial decrees
112
111
 
113
112
  ---
114
113
 
115
- ### `ris_lookup_citation`
116
-
117
- Resolve a citation to its canonical document.
114
+ ### `ris_lookup_citation` <sub>tool</sub>
118
115
 
119
116
  - Parses and routes four citation kinds: norm cites ("§ 6 DSG", "Art 10 B-VG"), gazette numbers across all three federal eras plus LGBl ("BGBl. I Nr. 165/1999", "BGBl. Nr. 194/1961", "RGBl. Nr. 189/1902"), case numbers ("Ro 2026/03/0016", "2025-0.934.677", "14Os49/26a"), and collection numbers ("VfSlg 19.632/2012")
120
117
  - Routes to deterministic upstream filters (section plus title, per-era number params, Geschäftszahl, Sammlungsnummer) rather than keyword search
@@ -124,9 +121,7 @@ Resolve a citation to its canonical document.
124
121
 
125
122
  ---
126
123
 
127
- ### `ris_get_document`
128
-
129
- Read and export a single document.
124
+ ### `ris_get_document` <sub>tool</sub>
130
125
 
131
126
  - Addresses documents by `document_number` plus `application` (from any search or lookup result), or by a passed-through `ris.bka.gv.at` document URL (host and path allowlisted) — including a draft's companion documents from a `ris_search_drafts` record's `materials[].url`, which nothing else can reach. `format` selects the rendition for a companion exactly as for a main document
132
127
  - `format`: `markdown` (default, boilerplate stripped), raw `html`, RIS `xml`, or `urls_only`
@@ -138,46 +133,47 @@ Read and export a single document.
138
133
 
139
134
  ---
140
135
 
141
- ### `ris_track_changes`
142
-
143
- Exact-dated per-application change feed.
136
+ ### `ris_track_changes` <sub>tool</sub>
144
137
 
145
138
  - `application` plus `changed_from`/`changed_to` returns every document added or changed in the window. A typical two-week federal-law window carries 1,400+ changes
146
139
  - `include_deleted` surfaces removals, which no other RIS surface exposes
147
140
  - The search tools' `changed_since` interval filters are the coarser alternative
148
141
 
149
- ## Resource
142
+ ---
150
143
 
151
- | Type | Name | Description |
152
- |:---|:---|:---|
153
- | Resource | `ris://document/{application}/{documentNumber}` | Markdown text of one RIS document — injectable twin of `ris_get_document` |
144
+ ### `ris_list_reference` <sub>tool</sub>
154
145
 
155
- All resource data is also reachable via tools — clients without resource support use `ris_get_document`.
146
+ - Returns one static RIS vocabulary table per call — no upstream request, no network dependency
147
+ - `topic` selects the table: applications, courts, states, decision types/kinds, issuing bodies, ministries, collections, stages, changed-since intervals, section types, gazette parts, law types, district authorities, justiz subject areas, search syntax, or citation formats
148
+ - The other `ris_*` tools' recovery hints and zero-hit notices route callers back here by topic
156
149
 
157
- ## Features
150
+ ---
151
+
152
+ ### `ris://document/{application}/{documentNumber}` <sub>resource</sub>
158
153
 
159
- Built on [`@cyanheads/mcp-ts-core`](https://www.npmjs.com/package/@cyanheads/mcp-ts-core):
154
+ - Markdown only (`text/markdown`) — the injectable twin of `ris_get_document` with `format: markdown`
155
+ - Addressed by `application` + `documentNumber`, copied verbatim from a search or `ris_lookup_citation` result
156
+ - Applications with no text rendition (district/municipal promulgations, court rules, party-transparency decisions, council minutes, the 1848–1940 imperial gazettes) return a short note pointing at the authentic PDF or scan instead
157
+ - Oversized text degrades to the same section/window outline as `ris_get_document`, but carries no `sections` selector — re-fetch via the tool to pull a specific one
160
158
 
161
- - Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
162
- - Unified error handling — handlers throw, framework catches, classifies, and formats
163
- - Pluggable auth (`none`, `jwt`, `oauth`)
164
- - Structured logging with optional OpenTelemetry tracing
165
- - STDIO and Streamable HTTP transports
159
+ ## Features
160
+
161
+ Built on [`@cyanheads/mcp-ts-core`](https://github.com/cyanheads/mcp-ts-core): stdio and Streamable HTTP transports, pluggable auth (`none` / `jwt` / `oauth`), swappable storage (`in-memory`, `filesystem`, `Supabase`, `Cloudflare KV/R2/D1`), structured logging with optional OpenTelemetry tracing.
166
162
 
167
163
  RIS-specific:
168
164
 
169
165
  - All 39 OGD applications across every controller, from consolidated law and the four levels of authentic gazette to the 17 court and tribunal collections
170
- - Strict parameter allowlist. RIS silently ignores unknown query params, so a typo returns plausible but unfiltered results; only live-confirmed spellings are sent upstream
171
- - Normalizer for RIS's JSON-serialized-XML envelope: object-or-array coercion, in-band error detection, six per-controller metadata classes, `<br/>` cleanup, CELEX reference parsing, ministry-abbreviation expansion
172
- - English tool surface over RIS's German API. Austrian legal terms (Geschäftszahl, Rechtssatz, Bundesgesetzblatt) stay as domain vocabulary and are glossed in the descriptions
166
+ - Citation engine parses and routes four Austrian citation kinds (norm, gazette number, case number, collection number) to deterministic upstream filters rather than keyword search
167
+ - Strict parameter allowlist and JSON-serialized-XML normalizer — RIS silently ignores unknown params, so only live-confirmed spellings are sent upstream; the normalizer handles object-or-array coercion, in-band error detection, six per-controller metadata classes, CELEX reference parsing, and ministry-abbreviation expansion
168
+ - Retries with a 1.5s base delay calibrated for RIS's rate-limited API; an HTML response in place of JSON is treated as a throttle/degradation signal
169
+ - English tool surface over RIS's German API — Austrian legal terms (Geschäftszahl, Rechtssatz, Bundesgesetzblatt) stay as domain vocabulary and are glossed in the descriptions
173
170
 
174
171
  Agent-friendly output:
175
172
 
176
- - Error hints, zero-hit notices, format-unavailable notices, and `found: false` guidance each name the concrete next call: a `ris_list_reference` topic, the right search tool, or `ris_lookup_citation`
177
- - Conditional-parameter misuse is caught locally before any upstream call: a court-specific filter with the wrong court, `part` outside federal scope, a collection filter on the wrong collection, bad addressing
178
- - Zero hits return success plus a composed notice rather than an error
179
- - Applied filters are echoed back, so the `in_force_as_of` default stays visible to the calling agent
180
- - Upstream schema-validation messages pass through. RIS enumerates valid values, which lets agents self-correct
173
+ - Discriminated output contracts — every document carries a typed binding status (`authentic`, `historical_record`, `consolidated_informational`, `decision`, `preparatory`, `administrative_directive`, `translation`) so callers branch on data, not string parsing
174
+ - Provenance — responses echo applied filters (e.g. the resolved `in_force_as_of` date) and, for gazettes, which era tier served the result
175
+ - Actionable recovery — typed error reasons (`court_filter_mismatch`, `invalid_query`, `document_not_found`, …) and zero-hit notices each name the concrete next call: a `ris_list_reference` topic, the right search tool, or `ris_lookup_citation`
176
+ - Response shaping — court- and collection-conditional filter misuse is rejected locally before any upstream call, since RIS silently ignores unknown parameters rather than erroring
181
177
 
182
178
  ## Localization
183
179
 
@@ -185,8 +181,6 @@ Tool and parameter descriptions are English-only today. German (`de-AT`) descrip
185
181
 
186
182
  ## Getting started
187
183
 
188
- The one-click badges above (Claude Desktop, Cursor, VS Code) are the fastest path. To configure a client manually, the server runs straight from npm — no clone or build required.
189
-
190
184
  ### Public Hosted Instance
191
185
 
192
186
  A public instance is available at `https://ris-austria.caseyjhand.com/mcp` — no installation required. Point any MCP client at it via Streamable HTTP:
@@ -202,12 +196,7 @@ A public instance is available at `https://ris-austria.caseyjhand.com/mcp` — n
202
196
  }
203
197
  ```
204
198
 
205
- ### Prerequisites
206
-
207
- - [Bun v1.3](https://bun.sh/) or higher, or Node.js v24+ (needed for `npx`/`bunx`)
208
- - No API key — the RIS OGD API is keyless
209
-
210
- ### Self-hosted / local
199
+ ### Self-Hosted / Local
211
200
 
212
201
  Add the server to your MCP client configuration with Bun:
213
202
 
@@ -258,7 +247,19 @@ Or with Docker:
258
247
  Add any [configuration](#configuration) variables under an `"env"` key for bunx/npx, or as
259
248
  additional `-e NAME=value` arguments for Docker.
260
249
 
261
- ### Install from source
250
+ For Streamable HTTP, set the transport and start the server:
251
+
252
+ ```sh
253
+ MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
254
+ # Server listens at http://localhost:3010/mcp
255
+ ```
256
+
257
+ ### Prerequisites
258
+
259
+ - [Bun v1.3](https://bun.sh/) or higher, or Node.js v24+ (needed for `npx`/`bunx`)
260
+ - No API key — the RIS OGD API is keyless
261
+
262
+ ### Installation
262
263
 
263
264
  For local development or to run a pinned build:
264
265
 
@@ -299,13 +300,6 @@ bun run rebuild
299
300
  }
300
301
  ```
301
302
 
302
- For Streamable HTTP, set the transport and start the server:
303
-
304
- ```sh
305
- MCP_TRANSPORT_TYPE=http MCP_HTTP_PORT=3010 bun run start:http
306
- # Server listens at http://localhost:3010/mcp
307
- ```
308
-
309
303
  ## Configuration
310
304
 
311
305
  | Variable | Description | Default |
@@ -369,7 +363,7 @@ build with `--build-arg OTEL_ENABLED=false` to omit them.
369
363
  | `src/services/ris` | RIS request building, HTTP access, normalization, and static reference data. |
370
364
  | `docs/design.md` | Settled v1 design — tool surface, service spec, live-confirmed RIS API reference. |
371
365
  | `tests/` | Unit and integration tests mirroring `src/`. |
372
- | `skills/` | Framework skills synced from `@cyanheads/mcp-ts-core`. |
366
+ | `framework-skills/` | Development skills synced from `@cyanheads/mcp-ts-core`. |
373
367
 
374
368
  ## Development guide
375
369
 
@@ -380,6 +374,15 @@ See [`CLAUDE.md`](./CLAUDE.md) / [`AGENTS.md`](./AGENTS.md) for development guid
380
374
  - Register new tools and resources via `createApp()` in `src/index.ts`
381
375
  - Wrap the RIS API: validate raw → normalize to domain type → return output schema; never fabricate missing fields
382
376
 
377
+ ## Contributing
378
+
379
+ Issues are welcome. Run checks and tests before submitting:
380
+
381
+ ```sh
382
+ bun run devcheck
383
+ bun run test
384
+ ```
385
+
383
386
  ## License
384
387
 
385
388
  Apache-2.0 — see [LICENSE](./LICENSE) for details.
@@ -0,0 +1,33 @@
1
+ ---
2
+ summary: "Upstream 5xx classification moves to the framework, a 501 no longer retries, a caller disconnect reports RequestCancelled, and the RIS endpoint overrides are declared in the registry and install metadata."
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.4.3 — 2026-09-13
8
+
9
+ ## Added
10
+
11
+ - **`RIS_API_BASE_URL` and `RIS_CONTENT_BASE_URL` are declared** in `server.json`, `manifest.json`, and both plugin manifests. Both were already read by `getServerConfig()`; a registry entry or one-click install now surfaces them, each falling back to the official RIS endpoint when left blank.
12
+ - **`bun run audit:fix`** runs `bun audit fix` — the first response to a transitive advisory, ahead of `bun update <name>` and `audit:refresh` (mcp-ts-core 0.13.0).
13
+
14
+ ## Changed
15
+
16
+ - **Upstream error classification comes from the framework** — the local `reclassifyUpstreamServerError` shim is gone. An envelope-less 5xx on the search and content paths still reports `ServiceUnavailable`, since mcp-ts-core 0.12.4 stopped mapping any HTTP status to `InternalError`. The RIS in-band error envelope is still translated first, so a rejected parameter stays a `ValidationError`.
17
+ - **An HTTP 501 is not retried** — it carries `data.retryable: false` alongside the transient `ServiceUnavailable` code (mcp-ts-core 0.12.4), so a method RIS does not implement fails on the first attempt instead of spending the retry budget.
18
+ - **A caller disconnect reports `RequestCancelled` (-32011)** rather than `InternalError` (mcp-ts-core 0.12.4); `data.errorSource` stays `FetchAborted`.
19
+ - **A rejected tool argument returns the structured error envelope** — an unknown root key or failed constraint answers `isError: true` with `error.code` `-32602` (`InvalidParams`) in `structuredContent` and the same readable text in `content[]` (mcp-ts-core 0.12.7).
20
+ - **A blank or unsubstituted `${…}` value for a RIS variable reads as unset** (mcp-ts-core 0.13.0) — a one-click install that leaves an optional field empty now falls back to the documented default instead of failing URL validation.
21
+ - **Development skills moved from `skills/` to `framework-skills/`** (mcp-ts-core 0.13.0) — plugin hosts auto-load a root `skills/`, so installing this server no longer hands its development skills to the agent.
22
+ - **Bun engines floor raised to `>=1.4.0`** (mcp-ts-core 0.12.9). Node stays `>=24.0.0`, and the published container already runs Bun 1.4.
23
+ - **Inherited HTTP-transport fixes** — a trailing slash on `MCP_PUBLIC_URL` no longer doubles in advertised links and `MCP_RESPONSE_VERBOSITY` and `OAUTH_PROXY_*` are no longer recognized (mcp-ts-core 0.12.8, neither configured here); the landing page's curl snippet sends a handshake `initialize` accepts and a cancelled request's SSE stream closes immediately (0.12.9); records logged during `setup()` are replayed rather than dropped (0.12.5).
24
+
25
+ ## Dependencies
26
+
27
+ - `@cyanheads/mcp-ts-core` ^0.12.3 → ^0.13.0
28
+ - `zod` ^4.4.3 → ^4.6.1
29
+ - `@biomejs/biome` 2.5.10 → 2.5.13
30
+ - `@types/node` 26.2.0 → 26.5.1
31
+ - `ignore` ^7.0.6 → ^7.0.9
32
+ - `tsc-alias` ^1.9.2 → ^1.9.4
33
+ - `vitest` ^4.1.11 → ^5.0.0
@@ -0,0 +1,30 @@
1
+ ---
2
+ summary: "ris_list_reference escapes backslashes before table pipes, a CodeQL workflow runs on every push and PR, and the server adopts mcp-ts-core 0.13.6's session-mode and retry-budget APIs."
3
+ breaking: false
4
+ security: false
5
+ ---
6
+
7
+ # 0.4.4 — 2026-09-19
8
+
9
+ ## Added
10
+
11
+ - **CodeQL static analysis workflow** (`.github/workflows/codeql.yml`) runs on push/PR to `main` and weekly, analyzing JavaScript/TypeScript and Actions.
12
+
13
+ ## Changed
14
+
15
+ - **`sessionMode: 'stateless'` is now declared in `src/index.ts`** instead of left to the deployment's `MCP_SESSION_MODE` default — every RIS tool answers from the request it's given, so no handler needs a stateful session.
16
+ - **The search retry budget is `withRetry`'s `deadlineMs`** (mcp-ts-core 0.13.x) — each attempt bounds its own fetch at whatever remains of the 48s budget, and an expiry aborts the in-flight request rather than sleeping past it; a budget-exhausted call now reports `data.reason: 'retry_deadline_exceeded'`.
17
+ - **`lint:packaging` now checks the README `Version-` badge against `package.json`** (mcp-ts-core 0.13.x) — a stale badge fails `devcheck`.
18
+
19
+ ## Fixed
20
+
21
+ - **`ris_list_reference`'s `cell()` escapes backslashes before pipes** — an unescaped backslash preceding table punctuation was silently dropped by markdown rendering, corrupting cell values containing `\|`, `\*`, or a Windows path ([#41](https://github.com/cyanheads/ris-austria-mcp-server/issues/41)).
22
+
23
+ ## Dependencies
24
+
25
+ - `@cyanheads/mcp-ts-core` ^0.13.0 → ^0.13.6
26
+ - `zod` ^4.6.1 → ^4.6.5
27
+ - `@biomejs/biome` 2.5.13 → 2.5.14
28
+ - `@types/node` 26.5.1 → 26.6.1
29
+ - `tsc-alias` ^1.9.4 → ^1.9.5
30
+ - `vitest` ^5.0.0 → ^5.0.1
@@ -6,8 +6,8 @@
6
6
 
7
7
  # Required. One-line GitHub Release-style headline. 350 character cap — a
8
8
  # ceiling, not a target. Default short and scannable. Don't pad, don't stitch
9
- # unrelated changes with commas/semicolons into an inventory — pick the
10
- # headline, like a tag's theme line. Quotes required: unquoted YAML treats
9
+ # unrelated changes with commas/semicolons into an inventory — pick the one
10
+ # headline the release is about. Quotes required: unquoted YAML treats
11
11
  # `: ` inside the value as a key separator and fails GitHub's strict parser.
12
12
  summary: ""
13
13
 
@@ -117,30 +117,13 @@ security: false
117
117
  in that unrelated item's metadata.
118
118
 
119
119
  TAG ANNOTATIONS — the annotated tag body renders as the GitHub Release body
120
- via `gh release create --notes-from-tag`. The tag is a derivative of this
121
- changelog entry — a condensed, scannable version, not a copy. Format:
122
-
123
- <theme — omit version number, GitHub prepends it>
124
- ← blank line
125
- <1-2 sentence context: what this release does>
126
- ← blank line
127
- Dependency bumps: ← section header
128
- ← blank line
129
- - `@cyanheads/mcp-ts-core` ^0.9.1 → ^0.9.6 ← bullet
130
- ← blank line
131
- Changed: ← only sections with entries
132
- ← blank line
133
- - `format()` output includes `query` in text mode
134
- ← blank line
135
- Added:
136
- ← blank line
137
- - `manifest.json` scaffolded for MCPB bundle support
138
- - Install badges (Claude Desktop, Cursor, VS Code)
139
- ← blank line
140
- <N> tests pass; `bun run devcheck` clean. ← footer
141
-
142
- Never a flat comma-separated string. Always structured markdown with
143
- sections. The tag must scan well as a rendered GitHub Release page.
120
+ via `gh release create --notes-from-tag`. It is a condensed digest of this
121
+ entry, never a copy, and its format is owned by the `release-and-publish`
122
+ skill (step 4, "Create the annotated tag"): a short subject line without the
123
+ version, flat headline bullets — no Keep-a-Changelog section headers, no
124
+ gates line — at most one deps line, issue backlinks, and the changelog link
125
+ last. In release-PR mode the `git-wrapup` skill authors those bullets as the
126
+ PR body's `## Changes` and the tag copies them.
144
127
  -->
145
128
 
146
129
  ## Added
package/dist/index.js CHANGED
@@ -18,6 +18,9 @@ import { initRisService } from './services/ris/ris-service.js';
18
18
  await createApp({
19
19
  name: 'ris-austria-mcp-server',
20
20
  title: 'ris-austria-mcp-server',
21
+ // Every tool answers from the request it was given — no handler gates on ctx.requestInput —
22
+ // so HTTP sessions buy nothing here. MCP_SESSION_MODE still overrides when set.
23
+ sessionMode: 'stateless',
21
24
  cacheHints: {
22
25
  'tools/list': { ttlMs: 3_600_000, cacheScope: 'public' },
23
26
  'resources/list': { ttlMs: 3_600_000, cacheScope: 'public' },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,wBAAwB;IAC/B,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QACxD,gBAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC5D,0BAA0B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QACtE,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;KAC9D;IACD,KAAK,EAAE;QACL,oBAAoB;QACpB,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,gBAAgB;KACjB;IACD,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,KAAK,CAAC,IAAI;QACR,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,MAAM,yDAAyD,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,gBAAgB,EAAE,MAAM,4DAA4D,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,+DAA+D,CAAC;AACrG,OAAO,EAAE,eAAe,EAAE,MAAM,0DAA0D,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,wBAAwB;IAC9B,KAAK,EAAE,wBAAwB;IAC/B,4FAA4F;IAC5F,gFAAgF;IAChF,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE;QACV,YAAY,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QACxD,gBAAgB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QAC5D,0BAA0B,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;QACtE,iBAAiB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE;KAC9D;IACD,KAAK,EAAE;QACL,oBAAoB;QACpB,gBAAgB;QAChB,gBAAgB;QAChB,eAAe;QACf,sBAAsB;QACtB,iBAAiB;QACjB,cAAc;QACd,eAAe;QACf,gBAAgB;KACjB;IACD,SAAS,EAAE,CAAC,mBAAmB,CAAC;IAChC,KAAK,CAAC,IAAI;QACR,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC"}
@@ -11,7 +11,7 @@
11
11
  */
12
12
  import { resource, z } from '@cyanheads/mcp-ts-core';
13
13
  import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
14
- import { addressableSections, exampleSectionNames, outlineDocument, renderDocument, renderOutlineSections, } from '../../../mcp-server/tools/definitions/ris-get-document.tool.js';
14
+ import { addressableSections, exampleSectionNames, outlineDocument, renderDocument, renderOutlineSections, } from '../../tools/definitions/ris-get-document.tool.js';
15
15
  import { RIS_APPLICATIONS } from '../../../services/ris/reference/index.js';
16
16
  const APPLICATION_CODES = RIS_APPLICATIONS.map((app) => app.code);
17
17
  export const risDocumentResource = resource('ris://document/{application}/{documentNumber}', {
@@ -1 +1 @@
1
- {"version":3,"file":"ris-list-reference.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-list-reference.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAgVjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA8E3B,CAAC"}
1
+ {"version":3,"file":"ris-list-reference.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-list-reference.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAuVjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA8E3B,CAAC"}
@@ -243,9 +243,16 @@ const TOPIC_BUILDERS = {
243
243
  ],
244
244
  }),
245
245
  };
246
- /** Escape a string for use inside a markdown table cell. */
246
+ /**
247
+ * Escape a string for use inside a markdown table cell.
248
+ *
249
+ * Backslashes are doubled before pipes are escaped, so a backslash already in the value
250
+ * survives rendering instead of being consumed as an escape of whatever punctuation follows
251
+ * it. The order is load-bearing: escaping pipes first would re-escape the backslash that
252
+ * escape had just introduced, emitting a literal `\|` where the cell delimiter was meant.
253
+ */
247
254
  function cell(text) {
248
- return text.replace(/\|/g, '\\|').replace(/\r?\n/g, ' ');
255
+ return text.replace(/\\/g, '\\\\').replace(/\|/g, '\\|').replace(/\r?\n/g, ' ');
249
256
  }
250
257
  export const risListReference = tool('ris_list_reference', {
251
258
  title: 'RIS Reference Lists',
@@ -1 +1 @@
1
- {"version":3,"file":"ris-list-reference.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-list-reference.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ris-list-reference.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-list-reference.tool.ts"],"names":[],"mappings":"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"}
@@ -103,18 +103,21 @@ export declare const risSearchAnnouncements: import("@cyanheads/mcp-ts-core").To
103
103
  readonly code: JsonRpcErrorCode.ValidationError;
104
104
  readonly when: "A page past the last page of results; or a parameter value rejected locally — an unknown or ambiguous issuer, a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; or RIS rejecting a value in-band (the Client error message is passed through verbatim, in German, and it does not name the page).";
105
105
  readonly recovery: "For a page past the end, request a lower page, starting from 1. Otherwise correct the parameter named in the message, or drop it if this collection does not carry it. Collections and their issuers: ris_list_reference topic collections or issuing_bodies.";
106
+ readonly thrownBy: "service";
106
107
  }, {
107
108
  readonly reason: "upstream_error";
108
109
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
109
110
  readonly when: "RIS is unreachable, returned a server error, or served an HTML error page.";
110
111
  readonly retryable: true;
111
112
  readonly recovery: "RIS is temporarily unavailable — retry after a short delay. If it persists, reduce page_size or narrow the query.";
113
+ readonly thrownBy: "service";
112
114
  }, {
113
115
  readonly reason: "upstream_timeout";
114
116
  readonly code: JsonRpcErrorCode.Timeout;
115
117
  readonly when: "RIS did not answer the search within the request deadline.";
116
118
  readonly retryable: true;
117
119
  readonly recovery: "RIS did not answer in time — retry the same search shortly, or make it cheaper upstream: drop leading wildcards, reduce page_size, or narrow the date range.";
120
+ readonly thrownBy: "service";
118
121
  }], {
119
122
  readonly totalCount: z.ZodNumber;
120
123
  readonly page: z.ZodNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"ris-search-announcements.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-search-announcements.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwLjE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgUjC,CAAC"}
1
+ {"version":3,"file":"ris-search-announcements.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-search-announcements.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAwLjE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmUjC,CAAC"}
@@ -253,6 +253,7 @@ export const risSearchAnnouncements = tool('ris_search_announcements', {
253
253
  code: JsonRpcErrorCode.ValidationError,
254
254
  when: 'A page past the last page of results; or a parameter value rejected locally — an unknown or ambiguous issuer, a plan_state outside regional health-structure plans, or a sort_by value this collection has no column for, in which case the message names the values it does sort by; or RIS rejecting a value in-band (the Client error message is passed through verbatim, in German, and it does not name the page).',
255
255
  recovery: 'For a page past the end, request a lower page, starting from 1. Otherwise correct the parameter named in the message, or drop it if this collection does not carry it. Collections and their issuers: ris_list_reference topic collections or issuing_bodies.',
256
+ thrownBy: 'service',
256
257
  },
257
258
  {
258
259
  reason: 'upstream_error',
@@ -260,6 +261,7 @@ export const risSearchAnnouncements = tool('ris_search_announcements', {
260
261
  when: 'RIS is unreachable, returned a server error, or served an HTML error page.',
261
262
  retryable: true,
262
263
  recovery: 'RIS is temporarily unavailable — retry after a short delay. If it persists, reduce page_size or narrow the query.',
264
+ thrownBy: 'service',
263
265
  },
264
266
  {
265
267
  reason: 'upstream_timeout',
@@ -267,6 +269,7 @@ export const risSearchAnnouncements = tool('ris_search_announcements', {
267
269
  when: 'RIS did not answer the search within the request deadline.',
268
270
  retryable: true,
269
271
  recovery: 'RIS did not answer in time — retry the same search shortly, or make it cheaper upstream: drop leading wildcards, reduce page_size, or narrow the date range.',
272
+ thrownBy: 'service',
270
273
  },
271
274
  ],
272
275
  async handler(input, ctx) {