Skip to main content
Glama
wolfgangihloff

Rechtsinformationen Bund DE MCP Server

Rechtsinformationen Bund DE MCP Server

An MCP (Model Context Protocol) server that provides access to the official German Federal Legal Information Portal (rechtsinformationen.bund.de). Any AI agent can use this server for German legal questions to provide authoritative, fact-based answers with proper legal citations from official sources.

🚀 Quick Setup

The fastest way to get started:

  1. Run the setup script:

./quick-setup.sh
  1. Restart Claude Desktop completely (or your MCP client)

  2. Test with: "Wie lange kann ich in Elternzeit gehen?"

Related MCP server: German Law MCP Server

🎯 What This Server Provides

AI agents will automatically use this MCP server for:

  • German legal questions ("What happens if I miss a Jobcenter appointment?")

  • Legal rights and obligations ("How long can I take parental leave?")

  • Court decisions and precedents ("Recent BGH decisions on trademark law")

  • Specific law lookups ("What does § 32 SGB II say?")

  • Administrative law questions ("When do I need a hearing in administrative proceedings?")

Purpose: Ensures all German legal answers are grounded in official sources with proper citations.

✨ Features

Core Capabilities

  • Full-text search across German federal laws and legislation

  • Case law search through German federal court decisions (BGH, BVerfG, BAG, BFH, BSG, BVerwG)

  • Intelligent search with English-to-German translation and misconception correction

  • German compound word decomposition (e.g., "Mieterhöhungsantrag" → "Mieterhöhung")

  • HTML URLs for users (clickable, readable documents)

  • Model-agnostic - works with Claude, Qwen, DeepSeek, LLaMA, and other models

Recent Improvements (2025-10-06)

HTML URLs: Returns human-readable web links, not just JSON API URLs ✅ Compound word handling: Decomposes German compound words for better search ✅ Fallback search: Never returns zero results for valid queries ✅ English translation: Automatically translates English legal terms to German ✅ Type coercion: Works with models that pass strings instead of numbers

📚 Available Tools

The server provides 6 specialized tools with intelligent routing:

1. 🧠 semantische_rechtssuche (PRIMARY TOOL)

Intelligent Legal Search - Use this FIRST for any German legal question

What it does automatically:

  • ✓ Translates English → German ("employee rights" → "Arbeitnehmerrechte")

  • ✓ Corrects misconceptions ("Überprüfungsantrag" → "Widerspruch")

  • ✓ Extracts legal references (§ patterns)

  • ✓ Searches multiple related terms

  • ✓ Returns both legislation AND case law

What it does NOT do:

  • ✗ Does NOT generate semantically similar terms (agent must provide variations)

  • ✗ Does NOT try multiple query phrasings automatically

  • ✗ Does NOT use ML embeddings (uses keyword matching + Fuse.js fuzzy search)

Parameters:

  • query (required): Search query in German or English

  • threshold (optional): Fuzzy match threshold 0.0-1.0 (default: 0.3)

  • limit (optional): Max results (default: 10, max: 100)

URLs returned:

🌐 READ ONLINE (HTML): https://testphase.rechtsinformationen.bund.de/.../regelungstext-1.html
📊 API ACCESS (JSON): https://testphase.rechtsinformationen.bund.de/v1/legislation/...

2. 🇩🇪 deutsche_gesetze_suchen (SECONDARY TOOL)

Search German federal legislation (laws, ordinances)

When to use:

  • Follow-up after semantische_rechtssuche

  • Legislation-only results needed

  • Searching for specific law abbreviations (BEEG, BGB, SGB)

Limitations: ⚠️ Date filters may exclude relevant results

3. ⚖️ rechtsprechung_suchen (SECONDARY TOOL)

Search German court decisions

When to use:

  • Follow-up after semantische_rechtssuche

  • Court-specific filtering needed

  • Searching for specific judges or case types

Common courts:

  • BGH (Federal Court of Justice)

  • BVerfG (Constitutional Court)

  • BAG (Federal Labour Court)

  • BFH (Federal Fiscal Court)

  • BSG (Federal Social Court)

  • BVerwG (Federal Administrative Court)

4. 🔍 alle_rechtsdokumente_suchen (SECONDARY TOOL)

Comprehensive search across all document types

When to use:

  • After other specialized tools

  • Mixed results needed (legislation + case law)

  • Broad topic exploration

5. 📄 dokument_details_abrufen (RETRIEVAL TOOL)

Get full text of specific documents

When to use:

  • After finding document in search results

  • Need complete document text (searches only return snippets)

  • Want HTML or XML format

6. 🏛️ gesetz_per_eli_abrufen (RETRIEVAL TOOL)

Get legislation by ELI identifier

When to use:

  • Have specific ELI from search results

  • Need exact version/date of legislation

🤖 Model Compatibility

Tested & Working

  • Claude 3.5 Sonnet - Excellent tool selection, proper citations

  • Qwen 2.5-72B - Best open-source option, good German support

  • DeepSeek-R1 - Strong reasoning, needs recursion limit

  • LLaMA 3.3-70B - Reliable, good for straightforward queries

  • GLM-4.6 - Works with type coercion fixes

For best results with any model:

{
  "name": "German Legal Research Assistant",
  "description": "Searches official German legal database",
  "model": "qwen2.5:72b",
  "tools": [
    "mcp__rechtsinformationen__semantische_rechtssuche",
    "mcp__rechtsinformationen__deutsche_gesetze_suchen",
    "mcp__rechtsinformationen__rechtsprechung_suchen"
  ],
  "recursionLimit": 5,
  "temperature": 0.3,
  "instructions": "CRITICAL: Always use semantische_rechtssuche FIRST. If search returns results, STOP immediately and generate answer. Maximum 2-3 tool calls total. MUST include ALL URLs in 'Quellen:' or 'Sources:' section."
}

Key settings:

  • recursionLimit: 5 - Prevents endless searching

  • temperature: 0.3 - More deterministic for legal queries

  • Stop condition - Generate answer immediately after finding results

📦 Installation

Quick Setup

git clone <repo-url>
cd rechtsinformationen
./quick-setup.sh

Manual Installation

npm install
npm run build
npm test  # Should show passing tests

Claude Desktop Configuration

macOS: Edit ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rechtsinformationen": {
      "command": "node",
      "args": ["/absolute/path/to/rechtsinformationen/dist/index.js"]
    }
  }
}

Windows: Edit %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "rechtsinformationen": {
      "command": "node",
      "args": ["C:\\absolute\\path\\to\\rechtsinformationen\\dist\\index.js"]
    }
  }
}

Important:

  • Use absolute paths (not relative like ./dist/index.js)

  • Restart Claude Desktop completely after config changes

  • Run npm run check-config to verify setup

LibreChat Agent Configuration

For optimal performance with LibreChat and Ollama models (Qwen, DeepSeek, LLaMA):

{
  "name": "German Legal Research Assistant",
  "model": "qwen2.5:72b",
  "provider": "ollama",
  "recursionLimit": 5,
  "temperature": 0.3,
  "instructions": "CRITICAL RULES:\n- MAXIMUM 2-3 tool calls per query\n- STOP searching after finding 3+ relevant documents\n- ALWAYS include URLs in 'Quellen' section\n- Use semantische_rechtssuche first\n\nCitation Format (MANDATORY):\n## Quellen\n1. [Law name] - [URL]\n2. [Law name] - [URL]",
  "tools": [
    "semantische_rechtssuche_mcp_rechtsinformationen",
    "deutsche_gesetze_suchen_mcp_rechtsinformationen",
    "rechtsprechung_suchen_mcp_rechtsinformationen"
  ]
}

Key Settings:

  • recursionLimit: 5 - Prevents endless searching (typical issue with some models)

  • temperature: 0.3 - Accuracy over creativity for legal research

  • STOP instructions - Forces agent to synthesize answer after finding results

  • Citation requirements - Mandatory URL inclusion in responses

See LIBRECHAT_AGENT_CONFIG.md for complete configuration details.

🧪 Testing & Evaluation

Run Tests

# Run golden test cases
npm test

# Test API connectivity
npm run test:api

# Verify complete setup
npm run verify

Agentic Evaluation

To evaluate agent performance with different models:

# Analyze LibreChat conversation exports
node tests/eval-simple.js tests/your-conversation.json

Metrics tracked:

  • Tool call efficiency (target: ≤3 calls)

  • Document accuracy (found correct ECLI/ELI)

  • Citation completeness (URLs in sources)

  • Recursion safety (no limit hits)

  • Answer quality (comprehensive + cited)

See AGENTIC_EVAL_GUIDE.md for detailed evaluation framework.

🔧 Troubleshooting

Common Issues

1. No Search Results

# Test API connectivity
npm run test:api

# Check if you have internet connection
curl https://testphase.rechtsinformationen.bund.de/v1/legislation

2. Server Won't Start

# Check Node.js version (needs v18+)
node --version

# Rebuild
npm install && npm run build

3. Recursion Limit Hit

Symptom: Agent makes 10+ tool calls without stopping

Solution:

  • Set recursionLimit: 5 in agent config

  • Add explicit STOP instructions

  • Use semantische_rechtssuche as primary tool

4. Missing Citations in Output

Symptom: Agent doesn't include URLs despite MCP response containing them

Solution:

  • This is a model behavior issue, not server issue

  • Strengthen instructions: "MUST include ALL URLs"

  • Consider agentic architecture with dedicated citation agent

5. Schema Validation Errors

Symptom: "Received tool input did not match expected schema"

Solution: ✅ Fixed - server now handles string→number type coercion

📖 Usage Examples

Simple Query

User: "Wie lange kann ich in Elternzeit gehen?"

Agent: Uses semantische_rechtssuche("Elternzeit Dauer")
→ Finds BEEG § 15
→ Answer: Up to 3 years per child

Sources:
1. https://testphase.rechtsinformationen.bund.de/.../regelungstext-1.html

Compound Word Query

User: "Was passiert bei einem Mieterhöhungsantrag?"

Agent: Uses semantische_rechtssuche("Mieterhöhungsantrag")
→ Decomposes to "Mieterhöhung"
→ Finds § 558 BGB
→ Answer: Rent increase procedures

Sources:
1. https://testphase.rechtsinformationen.bund.de/.../regelungstext-1.html

English Query

User: "What are employee rights during company restructuring?"

Agent: Uses semantische_rechtssuche(translates to "Arbeitnehmerrechte Betriebsumstrukturierung")
→ Finds KSchG, BetrVG
→ Answer: Dismissal protection and works council participation

Sources:
1. https://testphase.rechtsinformationen.bund.de/.../regelungstext-1.html

🏗️ Architecture

How It Works

User Query
    ↓
AI Agent (Claude/Qwen/etc)
    ↓
MCP Server (this project)
    ↓
rechtsinformationen.bund.de API
    ↓
German Federal Legal Database

Communication: Local stdio (no HTTP ports) Data Flow: Real-time API calls for each query URLs: Returns both HTML (users) and JSON (developers)

Intelligent Search Features

1. English Translation

"employee rights" → "Arbeitnehmerrechte"
"data protection" → "Datenschutz"
"dismissal" → "Kündigung"

2. Misconception Correction

"Überprüfungsantrag" → ["Widerspruch", "Rücknahme", "Widerruf"]
"§ 535 BGB Mieterhöhung" → "§ 558 BGB" (correct law)

3. Compound Word Decomposition

"Mieterhöhungsantrag" → "Mieterhöhung" (309 results)
"Kündigungsschutzantrag" → "Kündigungsschutz"
"Sozialhilfeantrag" → "Sozialhilfe"

4. Legal Reference Extraction

Detects: § 44 SGB X, Art. 3 GG, § 558 Abs. 2 BGB
Validates: Law abbreviations (BEEG, BGB, SGB, etc.)

📊 API Source

Base URL: https://testphase.rechtsinformationen.bund.de/v1 Documentation: https://docs.rechtsinformationen.bund.de Standards: ELI (European Legislation Identifier), ECLI (European Case Law Identifier) Status: Trial service - may be subject to changes

Coverage:

  • ✅ Current federal legislation

  • ✅ Federal court decisions (2010-2024)

  • ✅ Historical versions of laws

  • ⚠️ Amendment laws (partial coverage)

  • ❌ Legislative materials (not included)

⚠️ Known Limitations

1. Date Filtering Issues

Problem: Temporal filters may exclude relevant results when laws enacted in one year become effective in another.

Example: Searching for "§ 44 SGB X Änderung 2021" with date filter 2021 misses the 7. SGB-IV-Änderungsgesetz from June 2020 (effective January 1, 2021).

Workaround: Search without date filters, manually review effective dates.

2. Amendment Law Discovery

Problem: Amendment laws are poorly indexed and may not show which paragraphs they modify.

Workaround:

  • Search for "BGBl [year]" to find Federal Law Gazette entries

  • Look for "Artikelgesetz" or amendment law names

  • Search effective dates like "2021-01-01 Inkrafttreten"

3. Historical Versions

Problem: Only current versions easily accessible through ELI identifiers.

Workaround: Search Federal Law Gazette references for specific dates.

4. Model Behavior

Citations not appearing: Some models ignore citation instructions despite clear guidance in MCP response. This is a model limitation, not server issue.

Solution: Use agent configuration with explicit citation requirements or consider multi-agent architecture.

🚀 Recent Fixes (2025-10-06)

Major Improvements

HTML URLs for Users

  • Returns clickable HTML links instead of JSON API URLs

  • Users can now read laws in browsers

  • Both HTML and JSON URLs provided

German Compound Word Handling

  • Decomposes "Mieterhöhungsantrag" → "Mieterhöhung"

  • Removes suffixes: -antrag, -verfahren, -klage, -gesetz, -verordnung

  • Special handling for common legal terms

Fallback Search

  • Never returns zero results for valid queries

  • Searches with original query if no legal references found

  • Provides helpful suggestions when nothing found

Type Coercion

  • Handles models passing "10" (string) instead of 10 (number)

  • Schema validation now works with GLM-4.6 and similar models

Model-Agnostic Instructions

  • Removed Claude-specific language

  • Works with any AI model

  • Clear imperative instructions

📝 Development

Build Commands

npm run build       # Compile TypeScript
npm run dev         # Development mode with tsx
npm start           # Run production build
npm test            # Run test suite

Helper Commands

npm run claude-config  # Generate config for Claude Desktop
npm run check-config   # Show config file path
npm run verify         # Complete verification
npm run setup          # Install + build + test

Project Structure

src/
├── index.ts                 # Main MCP server
tests/
├── golden_case_tests.json   # Test cases
├── test-golden.js           # Test runner
├── eval-simple.js           # Agent evaluation
debug/
├── test-*.js                # API debugging tools

🌟 Built with This MCP

Real-world tools and skills powered by this server:

Project

Description

deutsches-recht-mit-claude

Claude Code skill that fetches live statutory text before citing it — prevents hallucinated or paraphrased law citations. Built as a /widerruf Widerrufsrecht checker and general legal research skill.

Note on data completeness: The Neuris dataset underlying this API is not yet complete relative to gesetze-im-internet.de. For production use cases, consider validating coverage and falling back to gesetze-im-internet.de where needed.

Built something with this MCP? Open a PR to add it here.

🤝 Contributing

Contributions welcome! Areas for improvement:

  1. More compound word patterns - Expand German word decomposition

  2. Better concept mappings - Add common legal misconceptions

  3. English translation coverage - More legal term translations

  4. Historical version access - Better handling of law amendments

  5. Literature search - Add /v1/literature endpoint support

📄 License

MIT


Last Updated: 2025-10-06 Version: 1.1.0 Status: Production-ready with test phase API

Available Tools

5 tools
deutsche_gesetze_suchenA

🇩🇪 SECONDARY TOOL - Deutsche Bundesgesetze durchsuchen

What this tool searches: • Federal legislation database at rechtsinformationen.bund.de • Laws (Gesetze), ordinances (Verordnungen), administrative provisions • Full-text search in legislation content

URL Construction: Results contain URLs in format: https://testphase.rechtsinformationen.bund.de/v1/legislation/eli/bund/{agent}/{year}/{naturalIdentifier}/{pointInTime}/{version}/{language}

Example: /v1/legislation/eli/bund/bgbl-1/2006/s2748/2025-05-01/1/deu These URLs work directly in browsers and API calls.

When to use: ✓ Follow-up searches after intelligente_rechtssuche ✓ When you need legislation-only results (excludes case law) ✓ When searching for specific law abbreviations (BEEG, BGB, SGB)

⚠️ DATABASE COVERAGE LIMITATIONS:Grundgesetz (GG): NOT in database - only laws referencing GG available • SGB I-VIII: NOT in database - SGB IX-XIV available, earlier books missing • Historic laws: Limited coverage, focus on current legislation post-2000 • If a law is not found, it may not be in the testphase database yet

Limitations: ⚠️ Date filters (temporalCoverageFrom/To) are unreliable - they may exclude relevant results ⚠️ For amendment questions, DON'T use date filters - search broadly instead

Parameters: • searchTerm: Keywords or law names (required) • temporalCoverageFrom/To: ISO dates (optional, use with caution) • limit: Max results, default 10, API max 100

Usage Priority: For initial queries → Use intelligente_rechtssuche first For legislation-only → Use this tool

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermYesSearch term for finding laws (use quotes for exact phrases)
temporalCoverageFromNoStart date for temporal coverage filter (ISO 8601 format) - WARNING: May exclude relevant results
temporalCoverageToNoEnd date for temporal coverage filter (ISO 8601 format) - WARNING: May exclude relevant results
limitNoMaximum number of results to return (default: 5, API max: 100)

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full disclosure burden and delivers substantial behavioral context: extensive database coverage limitations (GG not available, SGB I-VIII missing), unreliable date filter warnings, and URL construction format for results. Minor gap: no mention of rate limits, authentication needs, or empty result handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Appropriately structured with clear markdown headers (What this tool searches, When to use, Limitations). The 'SECONDARY TOOL' flag is front-loaded. While lengthy, every section serves a purpose—particularly the coverage limitations and URL construction which compensate for missing output schema. No significant waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (legal search with database gaps) and lack of output schema, the description is comprehensive. It explains result URL formats, documents critical coverage gaps (missing laws), and provides sibling tool relationships. Adequate for correct invocation despite no return value documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is 100%, the description adds crucial usage context beyond the schema: it warns that temporalCoverageFrom/To 'are unreliable' and advises 'DON'T use date filters' for amendment questions. It aggregates parameter information with usage scenarios, adding value over raw schema definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it searches the federal legislation database at rechtsinformationen.bund.de for laws, ordinances, and administrative provisions. It clearly distinguishes itself from siblings by specifying it is for 'legislation-only results (excludes case law)' and contrasts with 'intelligente_rechtssuche' in the Usage Priority section.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit 'When to use' section with checkmarks identifies it as a 'follow-up' tool after intelligente_rechtssuche. The 'Usage Priority' section explicitly states 'For initial queries → Use intelligente_rechtssuche first.' It also warns against using date filters for amendment questions, providing clear when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

dokument_details_abrufenA

📄 RETRIEVAL TOOL - Vollständigen Dokumenttext abrufen

What this tool does: • Retrieves complete document content from rechtsinformationen.bund.de • Works with both legislation and case law documents • Requires specific document identifier from previous search results

URL/ID Input: This tool accepts:

  1. Full API URLs from search results (recommended): https://testphase.rechtsinformationen.bund.de/v1/legislation/eli/... https://testphase.rechtsinformationen.bund.de/v1/case-law/ecli/...

  2. Partial paths starting with /v1/: /v1/legislation/eli/bund/bgbl-1/2006/s2748/2025-05-01/1/deu /v1/case-law/ecli/de/bgh/2023/010523

  3. ELI or ECLI identifiers (will be constructed into full path)

When to use: ✓ When you have a specific document from search results ✓ When you need the full text (searches only return snippets) ✓ When you need HTML or XML format instead of JSON

When NOT to use: ✗ For initial searches (use intelligente_rechtssuche instead) ✗ When you don't have a specific document ID ✗ To browse or discover documents (use search tools instead)

Limitations: ⚠️ Some document paths may return 403 Forbidden errors ⚠️ If 403 occurs, use the document web URL in a browser instead ⚠️ Not all historical versions are accessible via API

Parameters: • documentId: Full URL or path from search results (required) • format: "json" (default), "html", or "xml" (optional)

Usage Priority: Search first → Get results → Use this tool for full text

ParametersJSON Schema
NameRequiredDescriptionDefault
documentIdYesDocument ID or URL from search results. Use the "@id" field from search results, or full URL like https://testphase.rechtsinformationen.bund.de/v1/legislation/eli/...
formatNoResponse format: "json" (default, structured data), "html" (readable format), or "xml" (raw format)json

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the full burden. It discloses important behavioral traits including: 403 Forbidden errors may occur, not all historical versions are accessible via API, and it accepts three different input formats (full URLs, partial paths, or ELI/ECLI identifiers). It could be improved by describing the return value structure or rate limits, but the error condition disclosure is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear headers, but contains redundancy between sections. The 'Parameters' section largely repeats information already in the schema, and the 'Usage Priority' section repeats guidance from 'When to use.' The markdown formatting and emoji add visual structure but also verbosity for an AI agent. Every sentence is relevant, but some sections are duplicative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that no output schema exists and no annotations are provided, the description should ideally explain the return structure for the three format options (JSON, HTML, XML). While it mentions format options, it doesn't describe what the successful response contains or its structure. The error handling (403) is documented, but the success case remains opaque.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is 3. The description adds significant value by providing concrete examples of the three accepted documentId formats (full URLs, partial paths, ELI/ECLI identifiers) and explaining that documentId corresponds to the '@id' field from search results. It also clarifies when to use each format option (HTML for readable, JSON for structured data).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool 'Retrieves complete document content from rechtsinformationen.bund.de' and specifies it works with 'both legislation and case law documents.' It clearly distinguishes itself from sibling search tools by specifying this is for retrieving full text when you already have a specific document identifier, versus searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains explicit 'When to use' and 'When NOT to use' sections with specific guidance. Explicitly names the sibling alternative 'intelligente_rechtssuche' for initial searches. Provides a clear workflow: 'Search first → Get results → Use this tool for full text.' This is exactly the type of explicit when/when-not guidance that prevents tool selection errors.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

gesetz_per_abkuerzung_abrufenA

📖 DIRECT LOOKUP TOOL - Gesetz direkt per Abkürzung abrufen

What this tool does: • Direct lookup of German federal laws by standard abbreviations • Bypasses semantic search for exact law retrieval • Returns the current version of the law with full metadata • Standard legal research pattern in Germany

⚠️ DATABASE COVERAGE LIMITATIONS:Grundgesetz (GG): NOT in database - lookup will fail or return wrong law • SGB I-VIII: NOT in database - SGB IX-XIV available, earlier books missing • Historic laws: Limited coverage, focus on current legislation post-2000 • If abbreviation lookup fails, the law may not be in the testphase database

Supported Abbreviations (if in database): Common German federal laws (examples): • SGB IX, SGB X, SGB XI, SGB XII, SGB XIV (✅ Available) • SGB I-VIII (❌ NOT Available) • BGB (Bürgerliches Gesetzbuch) (✅ Available) • StGB (Strafgesetzbuch) (✅ Available) • GG (Grundgesetz) (❌ NOT Available) • AufenthG, BetrVG, KSchG, BEEG, BUrlG, ArbZG (Check availability) • And many more...

When to use: ✓ When you know the exact law abbreviation (e.g., "SGB I", "BGB") ✓ For direct access without semantic search uncertainty ✓ When user asks for a specific law by its common name ✓ To avoid irrelevant search results

When NOT to use: ✗ For broad legal research (use intelligente_rechtssuche) ✗ When searching for court decisions (use rechtsprechung_suchen) ✗ For full-text content search (use deutsche_gesetze_suchen)

Parameters: • abbreviation: Standard German law abbreviation (required) Examples: "SGB I", "BGB", "StGB", "GG", "AufenthG", "KSchG"

Returns: • Full law name and abbreviation • ELI identifier • Law type classification • Current version date • Complete table of contents (if available) • Direct HTML and JSON URLs

Example Usage: Input: { abbreviation: "SGB I" } Output: Sozialgesetzbuch (SGB) Erstes Buch (I) - Allgemeiner Teil

Usage Priority: For exact law lookup by abbreviation → Use this tool FIRST For content search within laws → Use intelligente_rechtssuche or deutsche_gesetze_suchen

ParametersJSON Schema
NameRequiredDescriptionDefault
abbreviationYesGerman law abbreviation (e.g., "SGB I", "BGB", "StGB", "GG", "AufenthG", "KSchG", "BEEG")

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full behavioral disclosure burden and succeeds comprehensively. It discloses critical coverage gaps ('Grundgesetz (GG): NOT in database', 'SGB I-VIII: NOT in database'), failure modes ('lookup will fail or return wrong law'), and describes return values (ELI identifier, version dates, table of contents, URLs) since no output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While well-structured with clear markdown sections, the description is excessively verbose with emoji decoration (📖, ✅, ❌, ⚠️) and repetitive examples. The coverage limitations and usage guidelines are critical and earn their place, but the overall length could be reduced by 30-40% without losing essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Comprehensive for a single-parameter lookup tool with 4 siblings and no output schema. Essential domain-specific constraints (database coverage gaps for major laws like GG) are explicitly documented. Return values, example usage, and tool selection priority are all clearly explained, leaving no critical gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 100% description coverage (the 'abbreviation' parameter is documented), establishing baseline 3. The description adds valuable domain context by emphasizing 'Standard German law abbreviation' (implying official abbreviations required) and marking it as '(required)', providing semantic clarity beyond the schema's basic description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs 'direct lookup of German federal laws by standard abbreviations' and 'bypasses semantic search for exact law retrieval.' It explicitly differentiates from sibling tools like 'intelligente_rechtssuche' (for broad research) and 'rechtsprechung_suchen' (for court decisions), establishing a clear, distinct purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Contains explicit 'When to use' and 'When NOT to use' sections with specific sibling alternatives named: 'use intelligente_rechtssuche' for broad research, 'use rechtsprechung_suchen' for court decisions, and 'use deutsche_gesetze_suchen' for full-text search. Also includes 'Usage Priority' guidance stating 'For exact law lookup by abbreviation → Use this tool FIRST'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

intelligente_rechtssucheA

🧠 PRIMARY TOOL ⭐ ALWAYS USE THIS FIRST for ANY German legal question ⭐

What this tool searches: • Full-text search across rechtsinformationen.bund.de • Both legislation (Gesetze) AND case law (Rechtsprechung) • Intelligent query enhancement with misconception correction

⚠️ DATABASE COVERAGE LIMITATIONS:Grundgesetz (GG): NOT in database - only laws referencing GG are available • SGB I-VIII: NOT in database - SGB IX-XIV available, earlier books missing • Historic laws: Limited coverage, focus on current legislation post-2000 • Amendments: Newer amendment laws well-covered, older may be missing • If a law is not found, it may not be in the testphase database yet

Intelligent Features (Automatic): ✓ English → German translation (e.g., "employee rights" → "Arbeitnehmerrechte") ✓ Misconception correction (e.g., "Überprüfungsantrag" → "Widerspruch") ✓ Legal reference extraction (e.g., detects "§ 15 BEEG" patterns) ✓ Multiple search term execution in parallel ✓ Result prioritization and deduplication

Data Model Understanding (CRITICAL for answering questions): Results follow FRBR model with three levels:

  1. Work (Abstract): The law as intellectual creation

  2. Expression (Version): Specific publication with metadata

  3. Manifestation (Format): HTML links for reading, JSON-LD for metadata

Metadata Available in Search Results:Immediately available (no follow-up needed):

  • legislationDate - When the law was passed/enacted

  • datePublished - When published in Federal Law Gazette (BGBl)

  • name - Full law title

  • abbreviation - Official abbreviation (BGB, StGB, etc.)

Requires follow-up call (use gesetz_per_eli_abrufen):

  • temporalCoverage - Date range when law is/was in force

  • inForce - Current validity status (boolean)

  • Full text content and structure

Results contain:HTML links (Manifestation): [Law Name] for users to read • Basic metadata (Expression): Legislation date, published date immediately visible • Detailed metadata: Use gesetz_per_eli_abrufen for inForce status and temporal coverage

Example Use Cases: • "When was BGB enacted?" → Check legislationDate in results (immediate) • "When was BGB published?" → Check datePublished in results (immediate) • "Is SGB IX still valid?" → Use gesetz_per_eli_abrufen for inForce status (follow-up) • "Show me § 242 StGB" → Use HTML link for law text (immediate)

What this tool does NOT do: ✗ Does NOT perform true semantic search with ML embeddings ✗ Does NOT generate semantically similar terms (YOU must provide variations) ✗ Does NOT try multiple query phrasings (YOU must search with different terms) ✗ Does NOT explore related concepts automatically (YOU need multiple searches) ✗ Uses keyword matching + Fuse.js fuzzy search (not neural embeddings)

AI Agent Responsibilities: As the calling agent, YOU must:

  1. Provide multiple query variations (synonyms, related terms, different phrasings)

  2. Search for law abbreviations separately (BEEG, BGB, SGB, etc.)

  3. Try specific § references when mentioned (§ 44 SGB X)

  4. Search for amendment laws with different patterns

  5. Use specialized tools (deutsche_gesetze_suchen, rechtsprechung_suchen) for follow-up

Search Strategies for Common Questions:

Amendment questions: • "X Änderungsgesetz 2021" • "Gesetz zur Änderung X 2021" • "BGBl 2021 X" (Federal Law Gazette) • Search both enactment year AND effective year

Law interpretation: • Search law name + specific § reference • Try both formal name and abbreviation • Search for related commentary or court decisions

Case law: • Search topic + "BGH" or court name • Try legal concepts + "Rechtsprechung" • Search ECLI or case file numbers if known

Parameters: • query: Your search query in German or English (required) • threshold: Fuzzy match threshold 0.0-1.0 (default: 0.3, lower = more results) • limit: Max results (default: 5, API max: 100)

Usage Pattern:

  1. Start here for ALL legal questions

  2. Analyze results for relevant documents

  3. Use specialized tools for follow-up (deutsche_gesetze_suchen, rechtsprechung_suchen)

  4. Use dokument_details_abrufen for full text of specific documents

  5. Try query variations yourself if results insufficient

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query in German or English. Can include legal references (§ 15 BEEG), concepts (Elternzeit), or questions. Agent should try multiple variations for comprehensive search.
thresholdNoFuzzy match threshold (0.0 to 1.0, default: 0.3). Lower = more lenient matching, higher = stricter matching.
limitNoMaximum number of results to return (default: 5, API max: 100)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full disclosure burden and excels: details database coverage limitations (GG and SGB I-VIII not available), explains internal search mechanics (Fuse.js fuzzy search vs ML embeddings), discloses FRBR data model structure, and clarifies which metadata requires follow-up calls vs immediate availability.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely long but well-structured with front-loaded critical information (PRIMARY TOOL warning). Uses markdown formatting effectively for scannable sections. While verbose, every section serves a distinct purpose (coverage gaps, data model, agent responsibilities) necessary for this complex legal domain. Minor deduction for potential tightening of redundant 'Intelligent Features' vs 'What this tool does NOT do' sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so description must explain return values. Comprehensive explanation of FRBR model (Work/Expression/Manifestation), immediate vs follow-up metadata availability, and result structure (HTML links, JSON-LD) fully compensates for missing output schema. Completeness is excellent given the tool's complexity and sibling coordination requirements.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage (baseline 3). Description adds value by providing concrete query examples (§ 15 BEEG, Elternzeit), explaining the threshold's practical effect (lower = more lenient matching), and advising on search strategies (multiple variations, synonyms). Does not reach 5 because schema already covers technical definitions comprehensively.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description explicitly states the tool performs full-text search across rechtsinformationen.bund.de for both legislation and case law. It clearly distinguishes itself from siblings by labeling itself as 'PRIMARY TOOL' and explicitly stating when to use specialized follow-up tools (deutsche_gesetze_suchen, rechtsprechung_suchen) instead.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use guidance ('ALWAYS USE THIS FIRST for ANY German legal question') and comprehensive when-not-to-use guidance via 'What this tool does NOT do' section and 'Usage Pattern' numbered list. Clearly maps the workflow from this tool to sibling tools for follow-up actions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rechtsprechung_suchenA

⚖️ SECONDARY TOOL - Deutsche Rechtsprechung durchsuchen

What this tool searches: • German court decisions database at rechtsinformationen.bund.de • Decisions from federal courts (BGH, BVerfG, BAG, BFH, BSG, BVerwG, etc.) • Full-text search in court decision content

URL Construction: Results contain URLs with ECLI (European Case Law Identifier): https://testphase.rechtsinformationen.bund.de/v1/case-law/ecli/de/{court}/{year}/{identifier}

Example: /v1/case-law/ecli/de/bgh/2023/010523 These URLs work directly in browsers and API calls.

When to use: ✓ Follow-up searches after intelligente_rechtssuche ✓ When you need case-law-only results (excludes legislation) ✓ When filtering by specific courts (use 'court' parameter) ✓ When searching for Urteile (judgments) or Beschlüsse (decisions)

Common Courts: • BGH - Bundesgerichtshof (Federal Court of Justice) • BVerfG - Bundesverfassungsgericht (Constitutional Court) • BAG - Bundesarbeitsgericht (Federal Labour Court) • BFH - Bundesfinanzhof (Federal Fiscal Court) • BSG - Bundessozialgericht (Federal Social Court) • BVerwG - Bundesverwaltungsgericht (Federal Administrative Court)

Parameters: • searchTerm: Keywords or case references (required) • court: Filter by court abbreviation (optional) • dateFrom/To: Decision date filters in ISO format (optional) • documentType: "Urteil" or "Beschluss" (optional) • limit: Max results, default 10, API max 100

Usage Priority: For initial queries → Use intelligente_rechtssuche first For court-specific searches → Use this tool

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermYesSearch term for finding court decisions
courtNoFilter by specific court abbreviation (e.g., BGH, BVerfG, BAG, BFH, BSG, BVerwG)
dateFromNoStart date filter for decision date (ISO 8601 format: YYYY-MM-DD)
dateToNoEnd date filter for decision date (ISO 8601 format: YYYY-MM-DD)
documentTypeNoFilter by document type (e.g., "Urteil" for judgments, "Beschluss" for decisions)
limitNoMaximum number of results to return (default: 5, API max: 100)

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully explains the data source (rechtsinformationen.bund.de), result format (ECLI-based URLs), and URL construction pattern with concrete examples. It does not mention rate limits or authentication requirements, leaving minor gaps for a read-only search tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description uses clear markdown structure with headers and bullet points that make it scannable. While lengthy, every section serves a distinct purpose: scope definition, technical details (URL construction), usage guidance, domain reference (court list), and parameter summary. The 'SECONDARY TOOL' label is appropriately front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, the description adequately covers the tool's purpose, data source, parameter semantics (including domain-specific court codes), and result URL format. It could be improved by describing the actual result structure/fields returned, but the ECLI URL explanation provides sufficient context for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, establishing a baseline of 3. The description adds significant domain value by listing common court abbreviations (BGH, BVerfG, etc.) and clarifying document types. However, it contradicts the schema regarding the default value for 'limit' (description states 10, schema specifies 5), which creates ambiguity for the agent.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool as searching German court decisions (Rechtsprechung) from federal courts via rechtsinformationen.bund.de. It explicitly distinguishes itself from siblings by labeling itself as a 'SECONDARY TOOL' and stating it should be used after 'intelligente_rechtssuche' for initial queries, making the specific scope unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit 'When to use' criteria with four specific scenarios (follow-up searches, case-law-only results, specific court filtering, document types). The 'Usage Priority' section gives clear routing instructions: 'For initial queries → Use intelligente_rechtssuche first' and 'For court-specific searches → Use this tool', directly addressing sibling tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose with minimal overlap. intelligente_rechtssuche is the primary search for both legislation and case law, while deutsche_gesetze_suchen and rechtsprechung_suchen are specialized for legislation-only and case-law-only searches respectively. gesetz_per_abkuerzung_abrufen provides direct abbreviation lookup, and dokument_details_abrufen handles document retrieval. The descriptions explicitly guide when to use each tool, preventing confusion.

Naming Consistency2/5

Naming is inconsistent with mixed conventions. intelligente_rechtssuche uses snake_case, but gesetz_per_abkuerzung_abrufen mixes snake_case with German words and abbreviations. deutsche_gesetze_suchen and rechtsprechung_suchen follow snake_case, while dokument_details_abrufen uses a different verb style (abrufen vs suchen). There's no uniform pattern across all tools, making them less predictable.

Tool Count5/5

Five tools is well-scoped for a legal information server. It covers the core workflows: primary search, specialized searches, direct lookup, and document retrieval. Each tool serves a specific function without redundancy, and the count is manageable for agents to understand and use effectively.

Completeness4/5

The tool set covers the domain comprehensively with minor gaps. It supports search (both general and specialized), direct lookup, and document retrieval for German legal information. However, there's no explicit tool for browsing or listing laws/cases by metadata (e.g., by date or court without a search term), which could be a minor limitation for some agent workflows.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Provides 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.
    20
    132
    4
    GPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Searches and retrieves German federal legislation from NeuRIS, the official legal information portal, providing verifiable ELI identifiers and German citations.
    15
    1
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/wolfgangihloff/rechtsinformationen-bund-de-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server