klaro.legal Document Explainer

Explains contracts, letters and tax notices clause by clause in plain language. Not legal advice.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
90%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~278Tokens (tool definitions)
~744 BTypical response size
Minimal attention impact (0.22% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "document-explainer": {
      "url": "https://klaro.legal/api/mcp"
    }
  }
}

Remote endpoints

https://klaro.legal/api/mcpstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡explain_document(text, language)

Explains a contract, official letter, tax assessment or terms-and-conditions document in plain language, clause by clause. Send the full text of the document. Returns every relevant clause with the original wording, a plain language version and why it matters, plus a short summary. It explains what the document says — it does not give legal advice, does not review the document and does not recommend a course of action. Takes 20 to 60 seconds. If it is still running when this call returns, use get_explanation with the returned analysis_id.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "The full text of the document to explain."
    },
    "language": {
      "type": "string",
      "enum": [
        "de",
        "en",
        "es",
        "fr",
        "it",
        "pt"
      ],
      "description": "Language the explanation should be written in (ISO 639-1). Defaults to English. The document itself may be in any language."
    }
  },
  "required": [
    "text"
  ]
}
🟢get_explanation(analysis_id)

Fetches the result of an explain_document call that was still running. Pass the analysis_id it returned.

Input Schema

{
  "type": "object",
  "properties": {
    "analysis_id": {
      "type": "string",
      "description": "The analysis_id returned by explain_document."
    }
  },
  "required": [
    "analysis_id"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools