@cyanheads/eur-lex-mcp-server 0.1.3 → 0.1.5
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/AGENTS.md +2 -2
- package/CLAUDE.md +2 -2
- package/Dockerfile +5 -0
- package/README.md +1 -1
- package/changelog/0.1.x/0.1.4.md +29 -0
- package/changelog/0.1.x/0.1.5.md +24 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurlex-lookup-celex.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/eurlex-lookup-celex.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurlex-lookup-celex.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/eurlex-query-sparql.tool.d.ts +1 -1
- package/dist/mcp-server/tools/definitions/eurlex-query-sparql.tool.js +1 -1
- package/dist/mcp-server/tools/definitions/eurlex-query-sparql.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/index.d.ts +2 -2
- package/dist/services/cellar-sparql/cellar-sparql-service.js +3 -3
- package/dist/services/cellar-sparql/cellar-sparql-service.js.map +1 -1
- package/package.json +6 -6
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** eur-lex-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9
|
|
4
|
+
**Version:** 0.1.5
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.9`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
package/CLAUDE.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** eur-lex-mcp-server
|
|
4
|
-
**Version:** 0.1.
|
|
5
|
-
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.9
|
|
4
|
+
**Version:** 0.1.5
|
|
5
|
+
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.10.9`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
|
8
8
|
**Zod:** ^4.4.3
|
package/Dockerfile
CHANGED
|
@@ -37,9 +37,11 @@ WORKDIR /usr/src/app
|
|
|
37
37
|
ENV NODE_ENV=production
|
|
38
38
|
|
|
39
39
|
# OCI image metadata (https://github.com/opencontainers/image-spec/blob/main/annotations.md)
|
|
40
|
+
ARG APP_VERSION
|
|
40
41
|
LABEL org.opencontainers.image.title="@cyanheads/eur-lex-mcp-server"
|
|
41
42
|
LABEL org.opencontainers.image.description="Search EU legislation, CJEU case law, and treaties; traverse the CELLAR relationship graph; resolve EuroVoc concepts via MCP. STDIO or Streamable HTTP."
|
|
42
43
|
LABEL org.opencontainers.image.licenses="Apache-2.0"
|
|
44
|
+
LABEL org.opencontainers.image.version="${APP_VERSION}"
|
|
43
45
|
LABEL org.opencontainers.image.source="https://github.com/cyanheads/eur-lex-mcp-server"
|
|
44
46
|
|
|
45
47
|
# Copy dependency manifests
|
|
@@ -95,5 +97,8 @@ ENV MCP_FORCE_CONSOLE_LOGGING="true"
|
|
|
95
97
|
# Expose the port the server listens on
|
|
96
98
|
EXPOSE ${MCP_HTTP_PORT}
|
|
97
99
|
|
|
100
|
+
# Health check using a bun-native fetch (slim image ships no curl/wget)
|
|
101
|
+
HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 CMD bun -e "fetch('http://localhost:'+(process.env.MCP_HTTP_PORT??'3010')+'/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
|
|
102
|
+
|
|
98
103
|
# The command to start the server
|
|
99
104
|
CMD ["bun", "run", "dist/index.js"]
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/eur-lex-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/eur-lex-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Framework upgrade to mcp-ts-core ^0.10.6, server identity pair, SPARQL errors reclassified to ValidationError, bundle cleaner, Dockerfile hardening"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.4 — 2026-06-11
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **Server identity pair** — `createApp()` now sets explicit `name: 'eur-lex-mcp-server'` and `title: 'eur-lex-mcp-server'`, so the machine name shows on every client surface and `lint:packaging` check 9 passes.
|
|
12
|
+
- **`scripts/clean-mcpb.ts`** — post-pack bundle cleaner wired into the `bundle` script: runs `mcpb clean` (dev-dependency prune) then strips `node_modules/**` agent-doc entries (`skills/`, `.claude/`, `.agents/`, `SKILL.md`) that root-anchored `.mcpbignore` patterns cannot reach.
|
|
13
|
+
- **Dockerfile `HEALTHCHECK`** — `bun -e fetch(...)` against `/healthz` every 30s; no `curl`/`wget` dependency in the slim runtime image.
|
|
14
|
+
- **Dockerfile `APP_VERSION` build arg** — stamps `org.opencontainers.image.version` on built images; the release `docker buildx` passes `--build-arg APP_VERSION`.
|
|
15
|
+
|
|
16
|
+
## Changed
|
|
17
|
+
|
|
18
|
+
- **SPARQL error classification** — malformed-query and ambiguous-identifier failures now throw `ValidationError` instead of `InvalidParams` across `eurlex_query_sparql`, `eurlex_lookup_celex`, and the CELLAR SPARQL service (`validationError()` replaces `invalidParams()`). `ValidationError` is the framework baseline code for bad input.
|
|
19
|
+
- **`bundle` script** — now Bun-native (`bun run build`) and appends the `clean-mcpb.ts` step after `mcpb pack`.
|
|
20
|
+
- **`.mcpbignore`** — dev-dir patterns re-anchored to root (`/.claude/`, `/.agents/`, `/skills/`, `/Dockerfile`, etc.) so they can't strip nested `node_modules` runtime paths.
|
|
21
|
+
- **Framework tooling sync** — `check-framework-antipatterns.ts` gains the `coerce-boolean-env-flag` rule (and skips comment lines); `lint-packaging.ts` gains post-bundle content (check 8) and entrypoint/manifest identity (check 9) checks.
|
|
22
|
+
- **Project skills re-synced** to the framework 0.10.x baseline; added the `techniques` skill (outline-on-overflow catalog).
|
|
23
|
+
|
|
24
|
+
### Dependency bumps
|
|
25
|
+
|
|
26
|
+
- `@cyanheads/mcp-ts-core` 0.9.21 (exact) → ^0.10.6
|
|
27
|
+
- `@types/node` ^25.9.2 → ^25.9.3
|
|
28
|
+
- `@modelcontextprotocol/ext-apps` 1.7.3 → 1.7.4 (transitive)
|
|
29
|
+
- `hono` 4.12.23 → 4.12.25 (transitive)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "Framework upgrade to mcp-ts-core ^0.10.9 (ctx.content media collector, sharper Canvas SQL-gate errors, fresh-scaffold devcheck guards), new dependency-specifier devcheck step, plugin-manifest lint, re-synced skills + scripts"
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.1.5 — 2026-06-20
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`Dependency Specifiers` devcheck step** (`scripts/check-dependency-specifiers.ts`) — rejects floating specifiers (`latest`, `*`, pre-release dist-tags) in `package.json` dependency sections and `bun.lock`'s `workspaces` map, catching the case where `bun update --latest` writes a literal `latest` dist-tag into the lock and silently re-resolves a held dependency on the next install.
|
|
12
|
+
- **Plugin marketplace manifest checks** in `lint:packaging` — validates `.claude-plugin/plugin.json` and `.codex-plugin/plugin.json` (non-empty descriptions, unscoped machine name in display fields, full scoped name in the install arg), gated by the new `devcheck.config.json` `packaging.pluginManifests` flag.
|
|
13
|
+
|
|
14
|
+
## Changed
|
|
15
|
+
|
|
16
|
+
- **`@cyanheads/mcp-ts-core` `^0.10.6` → `^0.10.9`** — adopts the upstream delta: `ctx.content` collector for image/audio blocks (bytes ride `content[]` only, never `structuredContent`); the Canvas SQL gate now classifies `SELECT`-shaped prepare failures as `invalid_sql` with the DuckDB binder detail instead of `non_select_statement`; `DuckdbProvider.describe({ tableName })` qualifies its `WHERE` filters to fix an ambiguous-column Binder Error; fresh-scaffold devcheck guards (changelog-sync and git-dependent checks skip cleanly when `.git` is absent); `check-skill-versions` skips a `SKILL.md` deleted from the worktree; biome `2.4.16` → `2.5.0`.
|
|
17
|
+
- **Project skills re-synced** to the mcp-ts-core 0.10.x baseline (14 `skills/<name>/SKILL.md`, mirrored into `.claude/skills/` and `.agents/skills/`); framework devcheck scripts refreshed (`build-changelog.ts`, `check-framework-antipatterns.ts`, `check-skill-versions.ts`, `devcheck.ts`, `lint-packaging.ts`).
|
|
18
|
+
|
|
19
|
+
### Dependency bumps
|
|
20
|
+
|
|
21
|
+
- `@cyanheads/mcp-ts-core` `^0.10.6` → `^0.10.9`
|
|
22
|
+
- `@biomejs/biome` `^2.4.16` → `^2.5.0`
|
|
23
|
+
- `@types/node` `^25.9.3` → `^26.0.0`
|
|
24
|
+
- `vitest` `^4.1.8` → `^4.1.9`
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,8 @@ import { allToolDefinitions } from './mcp-server/tools/definitions/index.js';
|
|
|
12
12
|
import { initCellarSparqlService } from './services/cellar-sparql/cellar-sparql-service.js';
|
|
13
13
|
import { initEurLexContentService } from './services/eurlex-content/eurlex-content-service.js';
|
|
14
14
|
await createApp({
|
|
15
|
+
name: 'eur-lex-mcp-server',
|
|
16
|
+
title: 'eur-lex-mcp-server',
|
|
15
17
|
tools: allToolDefinitions,
|
|
16
18
|
resources: allResourceDefinitions,
|
|
17
19
|
prompts: allPromptDefinitions,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,MAAM,SAAS,CAAC;IACd,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,sBAAsB;IACjC,OAAO,EAAE,oBAAoB;IAC7B,YAAY,EACV,mGAAmG;QACnG,qHAAqH;QACrH,2FAA2F;QAC3F,8FAA8F;QAC9F,oGAAoG;QACpG,mGAAmG;IACrG,KAAK,CAAC,IAAI;QACR,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;CACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAE/F,MAAM,SAAS,CAAC;IACd,IAAI,EAAE,oBAAoB;IAC1B,KAAK,EAAE,oBAAoB;IAC3B,KAAK,EAAE,kBAAkB;IACzB,SAAS,EAAE,sBAAsB;IACjC,OAAO,EAAE,oBAAoB;IAC7B,YAAY,EACV,mGAAmG;QACnG,qHAAqH;QACrH,2FAA2F;QAC3F,8FAA8F;QAC9F,oGAAoG;QACpG,mGAAmG;IACrG,KAAK,CAAC,IAAI;QACR,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;QACvC,uBAAuB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACjE,wBAAwB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -25,7 +25,7 @@ export declare const eurlex_lookup_celex: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
25
25
|
readonly recovery: "Verify the CELEX number format or try eurlex_search_documents to find the work by keyword.";
|
|
26
26
|
}, {
|
|
27
27
|
readonly reason: "ambiguous_identifier";
|
|
28
|
-
readonly code: JsonRpcErrorCode.
|
|
28
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
29
29
|
readonly when: "identifier_type is \"auto\" and the identifier format could not be determined.";
|
|
30
30
|
readonly recovery: "Supply identifier_type explicitly as \"celex\", \"eli\", or \"oj\" to resolve the ambiguity.";
|
|
31
31
|
}], undefined>;
|
|
@@ -67,7 +67,7 @@ export const eurlex_lookup_celex = tool('eurlex_lookup_celex', {
|
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
69
|
reason: 'ambiguous_identifier',
|
|
70
|
-
code: JsonRpcErrorCode.
|
|
70
|
+
code: JsonRpcErrorCode.ValidationError,
|
|
71
71
|
when: 'identifier_type is "auto" and the identifier format could not be determined.',
|
|
72
72
|
recovery: 'Supply identifier_type explicitly as "celex", "eli", or "oj" to resolve the ambiguity.',
|
|
73
73
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurlex-lookup-celex.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurlex-lookup-celex.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mDAAmD,CAAC;AAE3D,8DAA8D;AAC9D,SAAS,OAAO,CAAC,UAAkB;IACjC,OAAO,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,oEAAoE;AACpE,SAAS,QAAQ,CAAC,UAAkB;IAClC,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;AACpE,CAAC;AAED,sFAAsF;AACtF,SAAS,OAAO,CAAC,UAAkB;IACjC,OAAO,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAClG,CAAC;AAID,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE;IAC7D,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,uHAAuH;QACvH,gIAAgI;QAChI,uGAAuG;QACvG,qEAAqE;QACrE,mEAAmE;QACnE,oCAAoC;IACtC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,6HAA6H,CAC9H;QACH,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aACpC,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,0FAA0F;YACxF,8EAA8E,CACjF;KACJ,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,OAAO,EAAE;aACT,QAAQ,CACP,2IAA2I,CAC5I;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACzF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAC7F,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4HAA4H,CAC7H;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KACvF,CAAC;IAEF,MAAM,EAAE;QACN;YACE,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,0FAA0F;YAChG,QAAQ,EACN,4FAA4F;SAC/F;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"eurlex-lookup-celex.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurlex-lookup-celex.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,mDAAmD,CAAC;AAE3D,8DAA8D;AAC9D,SAAS,OAAO,CAAC,UAAkB;IACjC,OAAO,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,oEAAoE;AACpE,SAAS,QAAQ,CAAC,UAAkB;IAClC,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;AACpE,CAAC;AAED,sFAAsF;AACtF,SAAS,OAAO,CAAC,UAAkB;IACjC,OAAO,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAClG,CAAC;AAID,SAAS,oBAAoB,CAAC,UAAkB;IAC9C,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,IAAI,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,IAAI,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE;IAC7D,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,uHAAuH;QACvH,gIAAgI;QAChI,uGAAuG;QACvG,qEAAqE;QACrE,mEAAmE;QACnE,oCAAoC;IACtC,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,CAAC,CAAC,CAAC;aACN,QAAQ,CACP,6HAA6H,CAC9H;QACH,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;aACpC,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,0FAA0F;YACxF,8EAA8E,CACjF;KACJ,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,KAAK,EAAE,CAAC;aACL,OAAO,EAAE;aACT,QAAQ,CACP,2IAA2I,CAC5I;QACH,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACzF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QAC7F,aAAa,EAAE,CAAC;aACb,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,4HAA4H,CAC7H;QACH,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;KACvF,CAAC;IAEF,MAAM,EAAE;QACN;YACE,MAAM,EAAE,WAAW;YACnB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,0FAA0F;YAChG,QAAQ,EACN,4FAA4F;SAC/F;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,gBAAgB,CAAC,eAAe;YACtC,IAAI,EAAE,8EAA8E;YACpF,QAAQ,EACN,wFAAwF;SAC3F;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,sBAAsB,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;QAC3C,IAAI,aAA6B,CAAC;QAElC,IAAI,KAAK,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,GAAG,CAAC,IAAI,CACZ,sBAAsB,EACtB,0CAA0C,UAAU,EAAE,EACtD;oBACE,GAAG,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAC;iBAC3C,CACF,CAAC;YACJ,CAAC;YACD,aAAa,GAAG,QAAQ,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,aAAa,GAAG,KAAK,CAAC,eAAe,CAAC;QACxC,CAAC;QAED,2FAA2F;QAC3F,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvD,IAAI,MAAc,CAAC;QACnB,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;YAC9B,MAAM,GAAG;;;;;gCAKiB,cAAc;UACpC,CAAC;QACP,CAAC;aAAM,IAAI,aAAa,KAAK,KAAK,EAAE,CAAC;YACnC,8EAA8E;YAC9E,MAAM,GAAG;;;;;iCAKkB,cAAc;UACrC,CAAC;QACP,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,MAAM,GAAG;;;;;qDAKsC,cAAc;UACzD,CAAC;QACP,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9C,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QAEhG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,wCAAwC,UAAU,EAAE,EAAE;gBAChF,GAAG,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC;aAChC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,OAAO;YACL,KAAK,EAAE,IAAI;YACX,QAAQ,EAAE,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;YACzD,YAAY,EAAE,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,CAAC;YACpE,aAAa,EAAE,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;YAC9D,IAAI,EAAE,mBAAmB,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;SACtD,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,CAAC,uCAAuC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;QAChF,IAAI,MAAM,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpE,IAAI,MAAM,CAAC,aAAa;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1E,IAAI,MAAM,CAAC,IAAI;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -13,7 +13,7 @@ export declare const eurlex_query_sparql: import("@cyanheads/mcp-ts-core").ToolD
|
|
|
13
13
|
total: z.ZodNumber;
|
|
14
14
|
}, z.core.$strip>, readonly [{
|
|
15
15
|
readonly reason: "sparql_error";
|
|
16
|
-
readonly code: JsonRpcErrorCode.
|
|
16
|
+
readonly code: JsonRpcErrorCode.ValidationError;
|
|
17
17
|
readonly when: "Virtuoso returned a syntax or semantic error — the query is malformed.";
|
|
18
18
|
readonly recovery: "Fix the SPARQL query syntax, ensure predicates use the cdm: prefix, and verify variable names.";
|
|
19
19
|
}, {
|
|
@@ -49,7 +49,7 @@ export const eurlex_query_sparql = tool('eurlex_query_sparql', {
|
|
|
49
49
|
errors: [
|
|
50
50
|
{
|
|
51
51
|
reason: 'sparql_error',
|
|
52
|
-
code: JsonRpcErrorCode.
|
|
52
|
+
code: JsonRpcErrorCode.ValidationError,
|
|
53
53
|
when: 'Virtuoso returned a syntax or semantic error — the query is malformed.',
|
|
54
54
|
recovery: 'Fix the SPARQL query syntax, ensure predicates use the cdm: prefix, and verify variable names.',
|
|
55
55
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eurlex-query-sparql.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurlex-query-sparql.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAE3F,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,qBAAqB,EAAE;IAC7D,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,0EAA0E;QAC1E,2HAA2H;QAC3H,6GAA6G;QAC7G,uEAAuE;QACvE,0GAA0G;QAC1G,8CAA8C;QAC9C,qDAAqD;QACrD,6FAA6F;QAC7F,mGAAmG;QACnG,kCAAkC;QAClC,gHAAgH;IAClH,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IACxD,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,CAAC,EAAE,CAAC;aACP,QAAQ,CACP,yGAAyG;YACvG,8EAA8E,CACjF;QACH,YAAY,EAAE,CAAC;aACZ,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,IAAI,CAAC;aACT,GAAG,CAAC,KAAK,CAAC;aACV,QAAQ,EAAE;aACV,QAAQ,CACP,kEAAkE;YAChE,mGAAmG,CACtG;KACJ,CAAC;IACF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,QAAQ,EAAE,CAAC;aACR,KAAK,CACJ,CAAC;aACE,MAAM,CAAC,EAAE,CAAC;aACV,WAAW,EAAE;aACb,QAAQ,CACP,+KAA+K,CAChL,CACJ;aACA,QAAQ,CACP,mIAAmI,CACpI;QACH,SAAS,EAAE,CAAC;aACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6DAA6D,CAAC,CAAC;aACzF,QAAQ,CAAC,sDAAsD,CAAC;QACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gEAAgE,CAAC;KAC7F,CAAC;IAEF,MAAM,EAAE;QACN;YACE,MAAM,EAAE,cAAc;YACtB,IAAI,EAAE,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"eurlex-query-sparql.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/eurlex-query-sparql.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -153,7 +153,7 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
153
153
|
readonly recovery: "Verify the CELEX number format or try eurlex_search_documents to find the work by keyword.";
|
|
154
154
|
}, {
|
|
155
155
|
readonly reason: "ambiguous_identifier";
|
|
156
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
156
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
157
157
|
readonly when: "identifier_type is \"auto\" and the identifier format could not be determined.";
|
|
158
158
|
readonly recovery: "Supply identifier_type explicitly as \"celex\", \"eli\", or \"oj\" to resolve the ambiguity.";
|
|
159
159
|
}], undefined> | import("@cyanheads/mcp-ts-core").ToolDefinition<import("zod").ZodObject<{
|
|
@@ -165,7 +165,7 @@ export declare const allToolDefinitions: (import("@cyanheads/mcp-ts-core").ToolD
|
|
|
165
165
|
total: import("zod").ZodNumber;
|
|
166
166
|
}, import("zod/v4/core").$strip>, readonly [{
|
|
167
167
|
readonly reason: "sparql_error";
|
|
168
|
-
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.
|
|
168
|
+
readonly code: import("@cyanheads/mcp-ts-core/errors").JsonRpcErrorCode.ValidationError;
|
|
169
169
|
readonly when: "Virtuoso returned a syntax or semantic error — the query is malformed.";
|
|
170
170
|
readonly recovery: "Fix the SPARQL query syntax, ensure predicates use the cdm: prefix, and verify variable names.";
|
|
171
171
|
}, {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* error detection (HTTP 200 with error body).
|
|
5
5
|
* @module services/cellar-sparql/cellar-sparql-service
|
|
6
6
|
*/
|
|
7
|
-
import {
|
|
7
|
+
import { serviceUnavailable, validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
8
8
|
import { withRetry } from '@cyanheads/mcp-ts-core/utils';
|
|
9
9
|
/** Required PREFIX declarations for CELLAR CDM ontology queries. */
|
|
10
10
|
const SPARQL_PREFIXES = `PREFIX cdm: <http://publications.europa.eu/ontology/cdm#>
|
|
@@ -65,7 +65,7 @@ export class CellarSparqlService {
|
|
|
65
65
|
if (!response.ok) {
|
|
66
66
|
if (response.status === 400) {
|
|
67
67
|
// HTTP 400 = client error (malformed query) — not retryable
|
|
68
|
-
throw
|
|
68
|
+
throw validationError(`CELLAR SPARQL error: ${text.slice(0, 300)}`, {
|
|
69
69
|
reason: 'sparql_error',
|
|
70
70
|
retryable: false,
|
|
71
71
|
});
|
|
@@ -82,7 +82,7 @@ export class CellarSparqlService {
|
|
|
82
82
|
});
|
|
83
83
|
}
|
|
84
84
|
// Syntax / semantic error — not transient, fail immediately
|
|
85
|
-
throw
|
|
85
|
+
throw validationError(`CELLAR SPARQL error: ${text.slice(0, 300)}`, {
|
|
86
86
|
reason: 'sparql_error',
|
|
87
87
|
retryable: false,
|
|
88
88
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cellar-sparql-service.js","sourceRoot":"","sources":["../../../src/services/cellar-sparql/cellar-sparql-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cellar-sparql-service.js","sourceRoot":"","sources":["../../../src/services/cellar-sparql/cellar-sparql-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyanheads/eur-lex-mcp-server",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"mcpName": "io.github.cyanheads/eur-lex-mcp-server",
|
|
5
5
|
"description": "Search EU legislation, CJEU case law, and treaties; traverse the CELLAR relationship graph; resolve EuroVoc concepts via MCP. STDIO or Streamable HTTP.",
|
|
6
6
|
"type": "module",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"format:unsafe": "biome check --write --unsafe .",
|
|
32
32
|
"lint:mcp": "bun run scripts/lint-mcp.ts",
|
|
33
33
|
"lint:packaging": "bun run scripts/lint-packaging.ts",
|
|
34
|
-
"bundle": "
|
|
34
|
+
"bundle": "bun run build && npx -y @anthropic-ai/mcpb pack . dist/eur-lex-mcp-server.mcpb && bun run scripts/clean-mcpb.ts dist/eur-lex-mcp-server.mcpb",
|
|
35
35
|
"changelog:build": "bun run scripts/build-changelog.ts",
|
|
36
36
|
"changelog:check": "bun run scripts/build-changelog.ts --check",
|
|
37
37
|
"release:github": "bun run scripts/release-github.ts",
|
|
@@ -89,17 +89,17 @@
|
|
|
89
89
|
"access": "public"
|
|
90
90
|
},
|
|
91
91
|
"dependencies": {
|
|
92
|
-
"@cyanheads/mcp-ts-core": "0.9
|
|
92
|
+
"@cyanheads/mcp-ts-core": "^0.10.9",
|
|
93
93
|
"pino-pretty": "^13.1.3",
|
|
94
94
|
"zod": "^4.4.3"
|
|
95
95
|
},
|
|
96
96
|
"devDependencies": {
|
|
97
|
-
"@biomejs/biome": "^2.
|
|
98
|
-
"@types/node": "^
|
|
97
|
+
"@biomejs/biome": "^2.5.0",
|
|
98
|
+
"@types/node": "^26.0.0",
|
|
99
99
|
"depcheck": "^1.4.7",
|
|
100
100
|
"ignore": "^7.0.5",
|
|
101
101
|
"tsc-alias": "^1.8.17",
|
|
102
102
|
"typescript": "^6.0.3",
|
|
103
|
-
"vitest": "^4.1.
|
|
103
|
+
"vitest": "^4.1.9"
|
|
104
104
|
}
|
|
105
105
|
}
|
package/server.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"url": "https://github.com/cyanheads/eur-lex-mcp-server",
|
|
7
7
|
"source": "github"
|
|
8
8
|
},
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.5",
|
|
10
10
|
"remotes": [
|
|
11
11
|
{
|
|
12
12
|
"type": "streamable-http",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
20
20
|
"identifier": "@cyanheads/eur-lex-mcp-server",
|
|
21
21
|
"runtimeHint": "bun",
|
|
22
|
-
"version": "0.1.
|
|
22
|
+
"version": "0.1.5",
|
|
23
23
|
"packageArguments": [
|
|
24
24
|
{
|
|
25
25
|
"type": "positional",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"registryBaseUrl": "https://registry.npmjs.org",
|
|
77
77
|
"identifier": "@cyanheads/eur-lex-mcp-server",
|
|
78
78
|
"runtimeHint": "bun",
|
|
79
|
-
"version": "0.1.
|
|
79
|
+
"version": "0.1.5",
|
|
80
80
|
"packageArguments": [
|
|
81
81
|
{
|
|
82
82
|
"type": "positional",
|