@iflow-mcp/ansvar-systems-german-law-mcp
Version:
German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de
43 lines (42 loc) • 1.51 kB
JavaScript
import assert from "node:assert/strict";
import test from "node:test";
import { BUILTIN_ADAPTERS } from "../src/adapters/index.js";
import { LawMcpShell } from "../src/shell/shell.js";
const shell = LawMcpShell.fromAdapters(BUILTIN_ADAPTERS);
test("parse_citation parses German paragraph citation", async () => {
const result = await shell.handleToolCall({
name: "parse_citation",
arguments: { citation: "§ 823 abs. 1 bgb" },
});
assert.equal(result.ok, true);
assert.equal(result.data.normalized, "§ 823 Abs. 1 BGB");
});
test("list_sources returns German data sources", async () => {
const result = await shell.handleToolCall({
name: "list_sources",
arguments: {},
});
assert.equal(result.ok, true);
const data = result.data;
assert.ok(Array.isArray(data.sources));
assert.equal(data.sources.length, 3);
});
test("about returns server metadata", async () => {
const result = await shell.handleToolCall({
name: "about",
arguments: {},
});
assert.equal(result.ok, true);
const data = result.data;
assert.equal(data.server, "german-law-mcp");
assert.ok(data.version);
assert.ok(data.tier);
});
test("get_preparatory_works validates required selector arguments", async () => {
const result = await shell.handleToolCall({
name: "get_preparatory_works",
arguments: {},
});
assert.equal(result.ok, false);
assert.equal(result.error?.code, "invalid_arguments");
});