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-mcpsearch 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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description adequately discloses that the tool is a read-only status check, mentions network access requirements, and does not hint at any destructive behavior. Could be slightly improved by noting idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action, no filler. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters and no output schema, the description is complete. It also provides context about IP-based access and the sibling tool for cookie setting, covering all necessary information for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, which matches the baseline of 4. The description adds meaning beyond the empty schema by explaining what the tool checks without needing input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'prüft' (checks) and the resource: reachability of linda.lindeverlag.at and cookie status. It distinguishes from siblings by mentioning the optional use of linda_set_cookie for manual cookie setting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (to check status) and suggests an alternative action (manually set cookies via linda_set_cookie). Also clarifies IP-based access and no login required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linda_autocompleteA
Liefert Autocomplete-Vorschläge für die Linda-Suche. Hilfreich um die exakte Schreibweise eines Begriffs vor der Volltextsuche zu prüfen.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Suchtext für Vorschläge (z.B. 'Ges', 'ABGB', 'Kalss'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavior. It implies a read-only operation by providing suggestions, but it does not explicitly state that no data is modified or that it is safe. The description is adequate but could be more explicit about behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It is front-loaded with the core purpose and provides a practical use case.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema, no annotations), the description is fairly complete. It explains the tool's function and intended use, though it does not describe the return format or any limitations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a descriptive parameter description. The tool description does not add additional meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides autocomplete suggestions for Linda search and helps verify spelling before full-text search. It uses a specific verb ('liefert') and resource ('Autocomplete-Vorschläge'), and the purpose distinguishes it from sibling tools like linda_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context for when to use the tool (before full-text search to check spelling) but does not explicitly mention when not to use it or provide direct alternatives. The guidance is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Dokument-ID (z.B. '18729') oder vollständige URL (z.B. 'https://linda.lindeverlag.at/Dokument/18729/'). | |
| includeVolltext | No | Volltext des Dokuments zurückgeben (default true). | |
| maxVolltextLength | No | Max. Zeichen für den Volltext (default 50000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It mentions that IDs can be numeric or URLs and includes parameters for full text length, but does not disclose safety, idempotency, or permission requirements. Basic read operation behavior is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one sentence, front-loaded with the core action, and lists deliverables efficiently. Minor redundancy but overall concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists the returned fields (title, author, source, etc.) and mentions defaults for full text. It covers the essentials for invoking the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context about what the document contains and that ID can be numeric or URL, but does not add significantly more meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Ruft ein Dokument anhand seiner ID ab' (retrieves a document by ID) and lists exact contents (title, author, source, references, full text). It distinguishes from siblings like linda_search (search) and linda_get_issue (issue).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied for when you have a document ID or URL, but no explicit guidance on when not to use it or alternatives. No exclusion criteria are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linda_get_issueA
Liefert das Inhaltsverzeichnis einer Zeitschrift-Ausgabe (Magazin) gruppiert nach Sektionen (z.B. 'Editorial', 'Fachbeiträge'). ID = Ausgabe-ID (z.B. 'WWK77SH6EQ').
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Ausgabe-ID (z.B. 'WWK77SH6EQ') oder vollständige URL (z.B. 'https://linda.lindeverlag.at/Ausgaben/WWK77SH6EQ/'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication requirements, rate limits, or side effects. The description only states what the tool returns, leaving the agent uninformed about safety or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with only two sentences, front-loading the core purpose and grouping detail. Every word adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is adequate but could be more complete by hinting at the output structure or error behavior. It lacks details on return format or potential issues like invalid IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter 'id', and the description adds a brief explanation and example in German, but does not add significant meaning beyond the schema. The schema already specifies the parameter format and example, so the description offers minimal extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Liefert' (delivers) and the resource 'Inhaltsverzeichnis' (table of contents) of a magazine issue. It distinguishes from siblings like linda_get_document and linda_get_see_also by specifying the specific use case of retrieving the issue table of contents grouped by sections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a magazine issue's table of contents but provides no explicit guidance on when to use this tool versus alternatives like linda_search or linda_get_document. No exclusions or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linda_get_see_alsoA
Liefert verwandte Inhalte zu einem Dokument: passende Rechtsnormen, Literaturhinweise und Judikatur-Verweise.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Dokument-ID (z.B. '18932') oder vollständige URL. Liefert verwandte Rechtsnormen, Literatur und Judikatur. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the tool 'delivers related content' but does not disclose any behavioral traits (e.g., read-only, side effects, required permissions). The name 'get' suggests idempotency, but this is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the main purpose. No redundant or unnecessary words; every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description and schema together provide a clear picture of what the tool does. However, additional context about the output format or related content types would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema description for 'id' largely repeats the tool description. The description adds no additional meaning beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool delivers related content (legal norms, literature references, case law) for a given document. It uses a specific verb 'Liefert' and resource 'verwandte Inhalte', distinguishing it from siblings like linda_get_document (returns the document itself) and linda_search (general search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving related content, but it does not explicitly state when to use this tool over alternatives like linda_search or linda_get_document. No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| place | No | Sichtbereich: 'My' (meine Kommentare) oder 'All' (alle). | My |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral burden. Adds counts and filtering behavior but does not mention read-only nature, permissions, or side effects. Adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two succinct sentences: first for purpose, second for parameter details. No redundancy, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter, description covers core functionality. Lacks pagination info but counts imply all results are returned. Reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds value by providing specific comment counts (141 vs ~113), going beyond the schema's enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists comments in the Linde database, differentiating between all and own comments. Verb 'listet' and noun 'Kommentare' make purpose specific. Siblings are distinct tools for search, document retrieval, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use 'All' vs 'My' with count details. Doesn't discuss when not to use or alternatives, but the name and context make usage obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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, ...).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Suchbegriff oder Phrase (z.B. 'GesRZ', 'Datenschutz', 'Kalss'). | |
| skip | No | Offset für Paginierung (0 = erste Seite, 20 = zweite, ...). | |
| limit | No | Max. Anzahl Treffer (max 20 = eine Seite). | |
| sort | No | Sortierung: 'Rank' (Relevanz) oder 'Date'. | Rank |
| place | No | Sichtbereich: 'My' (meine Inhalte) oder 'All'. | My |
| includingArchive | No | Archivinhalte einschließen. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It mentions returning a list with specific fields and pagination via skip, but does not address rate limits, authentication, or error states. The disclosure is sufficient for a read-only search but not exceptional.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first explains the search and output, second explains pagination. No superfluous words, front-loaded with core purpose, and easily scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lists return fields (Titel, Beschreibung, Vorschau, Datum, Link) and pagination behavior. It covers essential context for a search tool, though it omits error handling and empty result detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. The description does not add meaning beyond the schema; the query example is identical, and pagination info is redundant. No extra context for parameter usage is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Durchsucht die Linde Datenbank (linda.lindeverlag.at) nach Dokumenten', specifying the verb (search) and resource (Linde database). It distinguishes from siblings like linda_get_document (single document) and linda_autocomplete (suggestions) by implying this is for full-text search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like linda_get_document or linda_get_issue. The description focuses on functionality but lacks when-not or alternative suggestions, making it adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| cookie | Yes | Cookie-String im Format 'name1=wert1; name2=wert2; ...' (z.B. aus Browser DevTools > Application > Cookies kopiert). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool bypasses automatic auth flows and suggests a follow-up action, but it does not mention side effects, error states, or security implications. Some transparency is present, but it is not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences without any wasted words. It front-loads the purpose and format, making it easy to scan quickly. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and no annotations, the description covers the purpose, format, and a follow-up step (linda_auth_status). It is largely complete for a simple cookie-setting tool, though it could mention error handling or return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context that the cookie string format comes from browser DevTools, providing slight extra value beyond the schema's own description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets session cookies directly and bypasses automatic auth flows. It uses a specific verb ('sets') and resource ('session cookies'), and the sibling tools (e.g., linda_auth_status, linda_search) have distinct purposes, so it differentiates well.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (to bypass automatic auth) and tells to call linda_auth_status afterward. It does not explicitly state when not to use it or provide alternatives, but the context and sibling list give enough guidance for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0- First observed
linda_auth_status - First observed
linda_autocomplete - First observed
linda_get_document - First observed
linda_get_issue - First observed
linda_get_see_also - First observed
linda_list_kommentare - First observed
linda_search - First observed
linda_set_cookie
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.
Maintenance
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.
- LegalizeOAuthdev.legalize
Official MCP connector for Legalize: read and search its whole open corpus, at any point in time.
Related MCP Servers
- FlicenseBqualityDmaintenanceProvides 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.24-
- AlicenseAqualityCmaintenanceProvides 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.20244 npmGPL 3.0
- AlicenseNot gradedqualityCmaintenanceEnables querying 6,870 German federal statutes, case law, and legislative preparatory works directly from AI assistants and MCP-compatible clients.86 npm4Apache 2.0
- AlicenseAqualityDmaintenanceEnables querying Spanish BOE consolidated legislation, daily summaries, and legal reference data through natural language using the Model Context Protocol.56MIT