linda-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@linda-mcp search for AktG § 15"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Linde MCP Server
Ein MCP (Model Context Protocol) Server, der KI-Modellen Zugriff auf linda.lindeverlag.at (Linde Datenbank) gibt. Suche, Dokument-Volltext, Ausgaben-Inhaltsverzeichnisse, Kommentare und See-Also-Verweise über stdio.
Wichtig: Linda nutzt IP-basierten Zugriff (z.B. WU-Wien-Netz, VPN). Es ist kein Login erforderlich — der MCP-Server muss einfach vom WU-Netz aus erreichbar sein.
Features
Suche: Volltextsuche über
linda.lindeverlag.at/SearchResults/mit Paginierung, Sortierung (Relevanz/Datum) und Filter (My/All, Archiv).Autocomplete: Vorschläge über
search/autocompletesuggestions.Dokument-Volltext: Titel, Autor, Literaturquelle, Rechtsnorm-Verweise, Literaturverzeichnis und Volltext.
Ausgabe (Magazin): Inhaltsverzeichnis gruppiert nach Sektionen.
Kommentare: Liste der verfügbaren Kommentare (My/All).
See-Also: Verwandte Rechtsnormen, Literatur und Judikatur.
Auth-Status & Cookie-Set: Optional — für hinter Paywall liegende Inhalte können manuell Cookies gesetzt werden.
Related MCP server: German Legal MCP Server
Konfiguration & Zugang
Linda ist über IP autorisiert (z.B. WU-Wien-Campus-Netz, eduroam, oder VPN zum WU-Netz). Keine Credentials nötig.
Optionale Cookie-Authentifizierung (für Premium-Inhalte):
Environment Variable:
LINDA_COOKIE="DbSessionVWINASP02=...; bis_logonguid=..."Command Line Flag:
--cookie "DbSessionVWINASP02=...; bis_logonguid=..."
Cookie-Werte aus dem Browser: DevTools → Application → Cookies → linda.lindeverlag.at und .lindeverlag.at.
Installation & Running
Direkt via npx (empfohlen)
npx -y github:blueqwertz/linda-mcpMit Cookie:
LINDA_COOKIE="DbSessionVWINASP02=...; bis_logonguid=..." npx -y github:blueqwertz/linda-mcpLokale Entwicklung
git clone https://github.com/blueqwertz/linda-mcp.git
cd linda-mcp
npm install
npm run build # TypeScript -> dist/
npm start # Startet den MCP-ServerIm Dev-Modus mit Hot-Reload:
npm run dev # tsx src/index.tsSmoke-Test (6 Tests gegen die Live-Site, benötigt IP-Zugriff auf linda.lindeverlag.at):
npx tsx test.tsIntegration mit AI-Agents
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"linda-mcp": {
"command": "npx",
"args": ["-y", "github:blueqwertz/linda-mcp"]
}
}
}Mit Cookie:
{
"mcpServers": {
"linda-mcp": {
"command": "npx",
"args": ["-y", "github:blueqwertz/linda-mcp"],
"env": {
"LINDA_COOKIE": "DbSessionVWINASP02=...; bis_logonguid=..."
}
}
}
}Claude Code
claude mcp add linda-mcp -- npx -y github:blueqwertz/linda-mcpOpenCode
opencode.json/opencode.jsonc:
{
"mcp": {
"linda-mcp": {
"type": "local",
"command": ["npx", "-y", "github:blueqwertz/linda-mcp"],
"enabled": true
}
}
}Codex
~/.codex/config.toml:
[mcp_servers.linda-mcp]
command = "npx"
args = ["-y", "github:blueqwertz/linda-mcp"]Exposed Tools
linda_search
Durchsucht die Linde Datenbank.
Arguments:
query(string, required): Suchbegriff.skip(number, default 0): Offset für Paginierung (0, 20, 40, ...).limit(number, default 20, max 20): Max Treffer.sort("Rank"|"Date", default"Rank").place("My"|"All", default"My").includingArchive(bool, default false).
Returns:
{query, skip, nextSkip, results: [{id, titel, beschreibung, vorschau, link, listPos}], totalCount?, hasMore}
linda_autocomplete
Arguments:
query(string, required).Returns:
{query, count, suggestions: [{text, isLastSearch}]}
linda_get_document
Arguments:
id(string, required): Dokument-ID ("18729") oder URL.includeVolltext(bool, default true).maxVolltextLength(number, default 50000).
Returns:
{id, titel, autor?, literaturQuelle?, rechtsnormVerweise: [{id,label,link}], literatur: string[], volltext?, meta, link}
linda_get_issue
Arguments:
id(string, required): Ausgabe-ID ("WWK77SH6EQ") oder URL.Returns:
{id, titel, jahr?, ausgabeNr?, sectionCount, articleCount, sektionen: [{name, dokumente: [{id,titel,beschreibung?,link}]}]}
linda_get_see_also
Arguments:
id(string, required).Returns:
{id, summary, rechtsnormen: [...], literatur: [...], judikatur: [...], sonstiges: [...]}
linda_list_kommentare
Arguments:
place("My"|"All", default"My").Returns:
{place, count, kommentare: [{bookId, titel, link}]}
linda_auth_status
Arguments: keine.
Returns:
{authenticated, statusCode, url, cookiesSet, note}
linda_set_cookie
Arguments:
cookie(string, required):"name1=val1; name2=val2; ...".Returns:
{cookieSet, cookiesStored, note}
Architektur
src/
├── index.ts # CLI-Parsing, McpServer, stdio transport
├── client.ts # LindaClient: HTTP + CookieJar wrapper
├── auth.ts # CookieJar (in-memory name->value)
├── parser.ts # cheerio-basierte HTML-Extraktoren
└── tools/
├── index.ts # toolDefinitions + handleToolCall dispatch
├── search.ts # linda_search
├── autocomplete.ts
├── document.ts
├── issue.ts
├── see_also.ts
├── kommentare.ts
└── auth.ts # linda_auth_status + linda_set_cookieInspiriert von blueqwertz/rdb-mcp (Manz RDB), aber angepasst an Lindes HTML-basierte API.
License
MIT
Available Tools
8 toolslinda_auth_statusA
Prüft ob linda.lindeverlag.at erreichbar ist und ob Cookies gesetzt sind. Linda nutzt IP-basierten Zugriff (z.B. WU-Netz) — kein Login nötig. Optional: manuell Cookies via linda_set_cookie setzen.
Inputs: no named parameters.
linda_autocompleteA
Liefert Autocomplete-Vorschläge für die Linda-Suche. Hilfreich um die exakte Schreibweise eines Begriffs vor der Volltextsuche zu prüfen.
Inputs: query (required).
linda_get_documentA
Ruft ein Dokument anhand seiner ID ab: Titel, Autor, Literatur-Quelle, Verweise auf Rechtsnormen, Literaturverzeichnis und Volltext. ID = numerische Dokument-ID (z.B. '18729') oder URL.
Inputs: id (required), includeVolltext, maxVolltextLength.
linda_get_issueA
Liefert das Inhaltsverzeichnis einer Zeitschrift-Ausgabe (Magazin) gruppiert nach Sektionen (z.B. 'Editorial', 'Fachbeiträge'). ID = Ausgabe-ID (z.B. 'WWK77SH6EQ').
Inputs: id (required).
linda_get_see_alsoA
Liefert verwandte Inhalte zu einem Dokument: passende Rechtsnormen, Literaturhinweise und Judikatur-Verweise.
Inputs: id (required).
linda_list_kommentareA
Listet die verfügbaren Kommentare in der Linde Datenbank auf. Mit place='All' werden alle 141 Kommentare geladen, mit 'My' nur die eigenen (~113).
Inputs: place.
linda_searchA
Durchsucht die Linde Datenbank (linda.lindeverlag.at) nach Dokumenten. Liefert Trefferliste mit Titel, Beschreibung, Vorschau, Datum und Link. Pagination über skip (0, 20, 40, ...).
Inputs: query (required), skip, limit, sort, +2 more.
linda_set_cookieA
Setzt Session-Cookies direkt. Umgeht automatische Auth-Flows. Format: 'name1=wert1; name2=wert2; ...' (aus Browser DevTools). Anschließend linda_auth_status aufrufen.
Inputs: cookie (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Each tool has a clear, distinct purpose: authentication check, autocomplete, document retrieval, issue table of contents, related content, commentary listing, search, and cookie setting. No two tools overlap in functionality.
All tools follow a consistent pattern: 'linda_' prefix + verb_noun (e.g., get_document, list_kommentare, set_cookie). Naming is uniform, descriptive, and uses snake_case throughout.
With 8 tools, the server is well-scoped for a legal database retrieval system. It covers essential operations without being too sparse or bloated.
The tool set covers key workflows: authentication, search, document retrieval, issue browsing, related content, and commentary lists. A minor gap is the absence of a dedicated tool to fetch a single commentary item, but the surface is largely complete for typical usage.
Related MCP Connectors
Resolve, search and verify legal citations against the official sources, with provenance.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Verified, citable German & EU law for any LLM. Daily updates from official sources, hosted in DE.
Official MCP connector for Legalize: read and search its whole open corpus, at any point in time.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides access to Swiss legal commentaries through Model Context Protocol, allowing users to search and retrieve detailed legal commentary content from onlinekommentar.ch in multiple languages.24MIT
- AlicenseAqualityBmaintenanceProvides unified access to German federal and state legislation, court decisions, and European Union legal databases for comprehensive legal research. It enables users to search and retrieve full-text laws, parliamentary documents, and judicial rulings directly through the Model Context Protocol.220332 npm11GPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables querying 6,870 German federal statutes, case law, and legislative preparatory works directly from AI assistants and MCP-compatible clients.356 npm4Apache 2.0
- AlicenseAqualityDmaintenanceEnables querying Spanish BOE consolidated legislation, daily summaries, and legal reference data through natural language using the Model Context Protocol.56MIT