MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Knowledge & memory

Lawstronaut

Connect AI to millions of laws and court cases with the Lawstronaut MCP.

Checks passed
15 / 22

0 failed · 7 not measured

Median response
804 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
18

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Outdated check

Last connection measurement is over 24 hours old. Current availability is unknown.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
103
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 806 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name Lawstronaut MCP.

  • Pass
    Lists tools

    tools/list returned 18 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 804 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 806 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Pass
    Stable tool list

    No tool was removed and no required parameter was added in the last 30 days.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    151 of 151 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-09T15:50:27.885429Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Lawstronaut

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http lawstronaut https://mcp.lawstronaut.com

Capabilities

Tools 18

document_presigned_url

Returns a temporary signed URL to the original source file (PDF or other stored file) for one document. The URL expires. This tool does not return the document body or a citation bundle. When to use: When you need to open or download the original file. Examples: 'give me the PDF for uuid …', 'link to the source file so I can download it'. Use the uuid from list_documents, search, or horizon_scan. When not: For plain text of the body, use list_full_text (example: 'quote the operative wording'). For structured Markdown, use list_markdown (example: 'keep the article headings'). For a complete citation bundle — metadata, permanent legal link, citation template, body, and this temporary URL together — use evidence_pull (example: 'show me the source'). For a permanent citation link without a file download, use the legal_link from evidence_pull or list_documents. Do not call without a uuid. Skip if you already have an unexpired URL for that uuid. Parameters: uuid (required) is the document UUID. There is no iso parameter. The response includes expires_at; fetch the URL before it expires. A missing file or an archived document returns an error rather than a URL. Behavior: Read-only. Looks up the stored file and signs a temporary URL. Does not create, update, or delete records, files, or credentials. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached. Each call signs a new URL. expires_at is when that URL stops working. The URL is not a permanent legal link. Returns: One object: uuid, url (temporary source-file URL), and expires_at. url is empty when no file could be signed.

Discovered
document_version

Retrieves a specific document with a specific version When to use: The user wants to find a specific document with a specific version When not: The user wants to find a specific document with a specific version but the document is not found Parameters: uuid (required) is the UUID of the document, version (required) is the version of the document Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and document data. Documents with total_links of 0 are omitted. Returns: A document with the specific version

Discovered
evidence_pull

Returns one complete citation bundle for a single document: metadata, a permanent legal_link, a citation_template, the body, and a temporary source-file URL when one exists. When to use: When one call must support a citation or an audit. Examples: 'show me the source for this Irish statute', 'cite uuid … with its authority, date, link, and text'. Prefer this over calling the body and file tools separately. When not: For plain text alone, use list_full_text (example: 'quote the operative wording'). For structured Markdown alone, use list_markdown (example: 'keep the article headings'). For only a temporary URL to the original PDF or source file, use document_presigned_url (example: 'download the original file'). To browse or search without the bundle, use list_documents, search, or horizon_scan. For one historical version, use document_version. Do not call without an iso from list_jurisdictions and the document uuid. Skip if you already have this bundle for the same iso and uuid. Parameters: iso (required) is a jurisdiction code from list_jurisdictions and is uppercased (e.g. IE, NL, US_CA). uuid (required) is the document UUID from list_documents, search, or horizon_scan. include_text defaults to true and fetches the body. include_source_url defaults to true and adds a temporary signed URL to the original file when one exists. text_format defaults to 'markdown' (structured Markdown); 'plain' returns plain text instead. Set include_text or include_source_url to false only when that part of the bundle is unnecessary. Behavior: Read-only. Reads the document record, optionally the stored body, and optionally signs a temporary source-file URL. Does not create, update, or delete records, files, or credentials. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached. The source-file URL is temporary: source_file_note says to fetch it promptly, and legal_link is the permanent citation URL. source_file_url is null when no original file is stored. An archived document returns an archived error. Returns: One citation bundle: uuid, version, metadata, legal_link, citation_template, and, when requested, content_format plus content, and source_file_url.

Discovered
health_check

Verify that the Lawstronaut MCP server and its backing services (database, cache) are reachable and responding. Returns the overall status, per-service status, server version, and a UTC timestamp. When to use: Call at the start of a session to confirm connectivity before running any data tools, or when a previous tool call returned an unexpected error and you want to diagnose whether the service itself is down. When not: Do not call on every tool invocation — use it only for diagnostic purposes. It does not return legal data. Parameters: Takes none — invoke with {}. No filters, pagination, or auth-scoped data. Behavior: Read-only: one lightweight SELECT 1 against the database and one PING against the cache. Does not create, update, or delete any records. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. If the database is unreachable the overall status will be 'degraded'. If only the cache is unreachable the overall status will be 'degraded'. Both must be healthy for status 'ok'. Returns: status ('ok' | 'degraded'), version string, utc_timestamp, and a services object with db and cache each reporting their own status ('ok' | 'error') plus optional latency_ms.

Discovered
horizon_scan

Scans recent legal documents across jurisdictions. When to use: When you need to find legal content for a specific jurisdiction and optional filters. When not: Do not use this to read a document body or download a file. For plain text use list_full_text. For structured Markdown use list_markdown. For a complete citation bundle use evidence_pull. For a temporary source-file URL use document_presigned_url. Do not call without an iso from list_jurisdictions. Skip if you already have this scan for the same iso and filters. Parameters: iso (required) is a jurisdiction code from list_jurisdictions (e.g. BE, or US_CA for a state). issuing_authority, type_of_authority. Topic, since, date_field, status, include_repealed, max_per_jurisdiction are optional. Empty data means the iso is outside the subscription, or no document matched. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and document data. Documents with total_links of 0 are omitted. Returns: A list of documents matching the filters, with pagination information.

Discovered
list_authority_types

Lists the authority types available through this tool, with metadata such as jurisdiction and portal name. When to use: When you need authority types for a known iso. Pass optional portal name or authority type only to narrow that list. When not: Do not call without an iso from list_jurisdictions. Skip if you already have this authority type list for the same iso and filters. Parameters: iso (required) is a jurisdiction code from list_jurisdictions and is uppercased before the query (e.g. BE, or US_CA for a state). portal_name and authority_type are optional. authority_type must match one authority type exactly. With limit, next_id parameters to paginate the results. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and authority type data. Authority types with total_links of 0 are omitted. Returns: A list of authority types matching the filters, with pagination information.

Discovered
list_categories

Lists categories under one subdomain, with the parent domain and subdomain names. This is the third taxonomy step. When to use: When you already have a subdomain_id from list_subdomains. Examples: 'categories under subdomain A.1', 'find a category named jurisdiction'. Pass category_name only to narrow by name. When not: Do not use this for subcategories; use list_subcategories with the returned category_id. Do not use it for law types; use list_law_types. For the parent lists use list_domains and list_subdomains. For documents use list_documents or search. Do not call without a subdomain_id from list_subdomains. Skip if you already have this category list for the same subdomain_id and category_name. Parameters: subdomain_id is the subdomain reference from list_subdomains, such as A.1. A call without it, or with an unknown value, returns Subdomain not found. category_name is an optional case-insensitive substring of the category name; the parameter is category_name, not category. limit defaults to 20 and is capped at 100. next_id is the numeric id from pagination.next_id, not category_id. Empty data means that subdomain has no matching category. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads the current category table. total_count is the full match count, not the page size. The input marks subdomain_id optional, but the query returns Subdomain not found when it is missing. Returns: A page of {id, domain, subdomain, category_id, category_name}. domain and subdomain are display names, not reference codes. Example category_id "A.1.1", category_name "General Private International Law". Pass category_id, not id, to list_subcategories.

Discovered
list_documents

Lists document metadata in a jurisdiction (title, dates, source, classification) with filters and pagination. It does not return the document body, a citation bundle, or a source-file URL. When to use: When you need to find or browse documents before reading them. Example: 'which Belgian employment statutes mention night work?' Use the returned uuid with a body or citation tool. When not: Do not use this for the body or the file. For plain text, use list_full_text (example: 'quote the operative wording'). For structured Markdown, use list_markdown (example: 'keep the article headings'). For a complete citation bundle — metadata, permanent legal link, citation template, body, and a temporary source-file URL — use evidence_pull (example: 'show me the source'). For only a temporary URL to the original file, use document_presigned_url (example: 'download the PDF'). Do not call without an iso from list_jurisdictions. Skip if you already have this document list for the same iso and filters. Parameters: iso (required) is a jurisdiction code from list_jurisdictions (e.g. BE, or US_CA for a state). version, section_title, date_of_decision, file_data_only, issuing_authority, type_of_authority, source_identifier, source_secondary_identifier, tag are optional, section_title is a case-insensitive substring of the section title, date_of_decision is a date, file_data_only is a boolean, issuing_authority is a case-insensitive substring of the issuing authority, type_of_authority is a case-insensitive substring of the type of authority, source_identifier is a case-insensitive substring of the source identifier, source_secondary_identifier is a case-insensitive substring of the source secondary identifier, tag is a case-insensitive substring of the tag. With limit, next_id parameters to paginate the results. Empty data means the iso is outside the subscription, or no document matched. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and document data. Documents with total_links of 0 are omitted. Returns: A list of documents matching the filters, with pagination information.

Discovered
list_domains

Lists the top-level legal domains (id, domain_id, domain name). This is the first taxonomy step. It does not return subdomains, categories, documents, or jurisdictions. When to use: When you need the domain list or a name match. Examples: 'what legal domains exist?', 'find the domain for private law'. Pass domain only to narrow by name. When not: Do not use this for children of a domain. For subdomains use list_subdomains with the returned domain_id. For categories use list_categories. For subcategories use list_subcategories. For law types use list_law_types. For documents use list_documents or search. For jurisdictions use list_jurisdictions. Skip if you already have this domain list for the same domain filter. Parameters: domain is an optional case-insensitive substring of the domain name. There is no parent id and no iso. limit defaults to 20 and is capped at 100. next_id is the numeric id from the previous pagination.next_id; omit it on the first page. A null next_id means there is no further page. Empty data means no domain name matched. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads the current domain table. total_count is the full match count, not the page size. Results are not limited to a jurisdiction. Returns: A page of {id, domain_id, domain}. Example: {"id":1,"domain_id":"A","domain":"Private law"}. Pass domain_id, not id, to list_subdomains.

Discovered
list_full_text

Returns the plain-text body of documents (id, uuid, version, text). This is the plain-text read: wording only, with no Markdown headings or lists, and no citation metadata. When to use: When you need the body as plain text. Examples: 'quote the operative wording of this Belgian statute', 'give me the raw text of uuid …'. Pass uuid when you already have one document; otherwise filter by title and paginate. When not: For structured Markdown that keeps headings and lists, use list_markdown. For a complete citation bundle in one call — metadata, permanent legal link, citation template, body, and a temporary source-file URL — use evidence_pull (example: 'show me the source'). For only a temporary URL to the original PDF or source file, use document_presigned_url (example: 'download the original file'). To browse titles and dates without the body, use list_documents or search. For one historical version's metadata plus both bodies, use document_version. Do not call without an iso from list_jurisdictions. Skip if you already have this plain text for the same iso, uuid, and filters. Parameters: iso (required) is a jurisdiction code from list_jurisdictions and is uppercased before the query (e.g. BE, or US_CA for a state). uuid is optional; when set, the call targets that document. title is an optional case-insensitive substring. with_empty_data defaults to false and omits documents that have no stored plain text; true includes them with text null. limit defaults to 20 and is capped at 100. include_total adds pagination.total_count when true. Other optional filters match the input schema and are combined with AND. Behavior: Read-only SELECT plus a read of the stored text. Does not create, update, or delete records, files, or credentials. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription data and the stored plain text. An archived uuid returns an archived error instead of the body. Returns: A page of {id, uuid, version, text} where text is plain text. Empty data means nothing matched, or the iso is outside the subscription.

Discovered
list_issuing_authorities

Lists the issuing authorities available through this tool, with metadata such as jurisdiction and issuing authority. When to use: When you need issuing authorities for a known iso. Pass optional portal name or issuing authority only to narrow that list. When not: Do not call without an iso from list_jurisdictions. Skip if you already have this issuing authority list for the same iso and filters. Empty data means the iso is outside the subscription, or no issuing authority matched. Parameters: iso (required) is a jurisdiction code from list_jurisdictions (e.g. BE, or US_CA for a state). portal_name and issuing_authority are optional. issuing_authority must match one issuing authority exactly. With limit, next_id parameters to paginate the results. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and issuing authority data. Issuing authorities with total_links of 0 are omitted. Returns: A list of issuing authorities matching the filters, with pagination information.

Discovered
list_jurisdictions

List every country and state in the authenticated subscription's Lawstronaut legal corpus (name, iso, type, documents_count) — not the global unfiltered catalog, and not legal documents or full text. When to use: Call FIRST, before any jurisdiction-scoped legal query, so you know which iso codes are valid for this credential. When not: Skip if you already have this list from earlier in the session. Do not use this to fetch documents, markdown, source files, or portals. Parameters: Takes none — invoke with {}. Do not pass iso, country, limit, offset, or other filters; they are not accepted and would not change the result. There is no page size or default filter. Empty data means the subscription includes no jurisdictions. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and portal data. Returns: A list of jurisdictions matching the filters, with pagination information.

Discovered
list_law_types

Lists law types under one subcategory, with the parent category and subcategory names. This is the last taxonomy step. It does not return documents. When to use: When you already have a subcategory_id from list_subcategories. Examples: 'law types under subcategory A.1.1.1', 'find law types named statute'. Pass law_type only to narrow by name. When not: Do not use this to list subcategories, categories, domains, or documents. For those use list_subcategories, list_categories, list_domains, list_documents, or search. Do not call without a subcategory_id from list_subcategories. Skip if you already have this law type list for the same subcategory_id and law_type filter. Parameters: subcategory_id (required) is the subcategory reference from list_subcategories. It must be exactly four dot-separated segments, such as A.1.1.1, and is uppercased before the query. law_type is an optional case-insensitive substring of the law type name. A subcategory_id with the wrong shape is rejected before the query. limit defaults to 20 and is capped at 100. next_id is the numeric id from pagination.next_id, not subcategory_id. Empty data means that subcategory has no matching law type. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads the current law type table. total_count is the full match count, not the page size. There is no further taxonomy tool after this one. Returns: A page of {id, category_id, category_name, subcategory_id, subcategory_name, law_type_id, law_type}. id and law_type_id are the same numeric id. Example law_type "Statute".

Discovered
list_markdown

Returns the structured Markdown body of documents (id, uuid, version, markdown). Headings and lists stay intact. This is not plain text, not a citation bundle, and not a file URL. When to use: When you need the body as structured Markdown. Examples: 'show this regulation with its article headings', 'give me Markdown I can render for uuid …'. Pass uuid when you already have one document; otherwise filter by title and paginate. When not: For plain text with no Markdown structure, use list_full_text (example: 'quote the operative wording'). For a complete citation bundle in one call — metadata, permanent legal link, citation template, body, and a temporary source-file URL — use evidence_pull (example: 'show me the source'). For only a temporary URL to the original PDF or source file, use document_presigned_url (example: 'download the original file'). To browse titles and dates without the body, use list_documents or search. For one historical version's metadata plus both bodies, use document_version. Do not call without an iso from list_jurisdictions. Skip if you already have this Markdown for the same iso, uuid, and filters. Parameters: iso (required) is a jurisdiction code from list_jurisdictions and is uppercased before the query (e.g. BE, or US_CA for a state). uuid is optional; when set, the call targets that document. title is an optional case-insensitive substring. with_empty_data defaults to false and omits documents that have no stored Markdown; true includes them with markdown null. limit defaults to 20 and is capped at 100. include_total adds pagination.total_count when true. Other optional filters match the input schema and are combined with AND. Behavior: Read-only SELECT plus a read of the stored Markdown. Does not create, update, or delete records, files, or credentials. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription data and the stored Markdown. An archived uuid returns an archived error instead of the body. Returns: A page of {id, uuid, version, markdown} where markdown is structured Markdown. Empty data means nothing matched, or the iso is outside the subscription.

Discovered
list_portals

Lists the source portals available through this tool, with metadata such as jurisdiction and language. A jurisdiction may have multiple portals, including those maintained by regulators or ministries. When to use: When you need portals, legal websites, or sources for a known iso. Pass optional name, tag, or lang only to narrow that list. When not: Do not use this to read a document. For metadata use list_documents. For plain text use list_full_text. For structured Markdown use list_markdown. For a complete citation bundle use evidence_pull. For a temporary source-file URL use document_presigned_url. Do not call without an iso from list_jurisdictions. Skip if you already have this portal list for the same iso and filters. Parameters: iso (required) is a jurisdiction code from list_jurisdictions (e.g. BE, or US_CA for a state). name, tag, and lang are optional and combined with AND: name is a case-insensitive substring of the portal name, tag must match one portal tag exactly, lang must match the language name exactly (e.g. English). With limit, next_id parameters to paginate the results. Empty data means the iso is outside the subscription, or no portal with crawled links matched. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads current subscription and portal data. Portals with total_links of 0 are omitted. Returns: A list of portals matching the filters, with pagination information.

Discovered
list_subcategories

Lists subcategories under one category (id, category_id, category_name, subcategory_id, subcategory_name). This is the fourth taxonomy step. When to use: When you already have a category_id from list_categories. Examples: 'subcategories of category A.1.1', 'find the Jurisdiction subcategory'. Pass subcategory_name only to narrow by name. When not: Do not use this for law types; use list_law_types with the returned subcategory_id. For categories use list_categories. For domains or subdomains use list_domains or list_subdomains. For documents use list_documents or search. Do not call without a category_id from list_categories. Skip if you already have this subcategory list for the same category_id and subcategory_name. Parameters: category_id (required) is the category reference from list_categories. It must be exactly three dot-separated segments ending in a number, such as A.1.1, and is uppercased before the query. subcategory_name is an optional case-insensitive substring of the subcategory name; the parameter is subcategory_name, not subcategory. An unknown category_id returns Category not found. A category_id with the wrong shape is rejected before the query. limit defaults to 20 and is capped at 100. next_id is the numeric id from pagination.next_id, not subcategory_id. Empty data means that category has no matching subcategory. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads the current subcategory table. total_count is the full match count, not the page size. Returns: A page of {id, category_id, category_name, subcategory_id, subcategory_name}. Example: {"category_id":"A.1.1","category_name":"General Private International Law","subcategory_id":"A.1.1.1","subcategory_name":"Jurisdiction"}. Pass subcategory_id, not id, to list_law_types.

Discovered
list_subdomains

Lists subdomains under one domain (id, domain_id, subdomain_id, subdomain name). This is the second taxonomy step. When to use: When you already have a domain_id from list_domains. Examples: 'subdomains under domain A', 'international law under Private law'. Pass subdomain only to narrow by name. When not: Do not call without a domain_id from list_domains; use list_domains first. For categories under a subdomain use list_categories with subdomain_id. For subcategories use list_subcategories. For law types use list_law_types. For documents use list_documents or search. Skip if you already have this subdomain list for the same domain_id and subdomain filter. Parameters: domain_id (required) is the domain reference from list_domains, such as A, and is uppercased before the query. It is not the numeric id. subdomain is an optional case-insensitive substring of the subdomain name. An unknown domain_id returns Domain not found. limit defaults to 20 and is capped at 100. next_id is the numeric id from pagination.next_id, not subdomain_id. Empty data means that domain has no matching subdomain. Behavior: Read-only SELECT; does not create, update, or delete records, files, or credentials. The only effect is a database read. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Not cached; each call reads the current subdomain table. total_count is the full match count, not the page size. Returns: A page of {id, domain_id, subdomain_id, subdomain}. Example: {"id":1,"domain_id":"A","subdomain_id":"A.1","subdomain":"Private International Law"}. Pass subdomain_id, not id, to list_categories.

Discovered
search

Searches legal documents using OpenSearch to discover relevant documents based on the supplied search criteria. Returns matching documents and their available metadata. When to use: Use when you need to discover relevant legal documents through search, especially when looking for documents matching a search query rather than retrieving a structured list. Use this to explore legal content relevant to a topic, legal issue, phrase, or other supported search criteria. When not: Do not use this to browse with structured filters and cursor pagination; use list_documents. Do not use it to read a body or a file. For plain text use list_full_text (example: 'quote the operative wording'). For structured Markdown use list_markdown (example: 'keep the article headings'). For a complete citation bundle use evidence_pull (example: 'show me the source'). For a temporary source-file URL use document_presigned_url (example: 'download the PDF'). For one historical version use document_version. Do not call without a valid iso from list_jurisdictions. Avoid repeating an equivalent search when you already have sufficient results for the same query and filters. Parameters: iso (required) is the jurisdiction code from list_jurisdictions (e.g. BE or US_CA for a state). Provide the search query and any supported optional filters defined by the input schema. Optional filters may narrow the search by document metadata, dates, authority, source identifiers, tags, or other supported criteria. Use only parameters defined by the schema. The results depend on the query, jurisdiction, filters, and the user's subscription access. An empty data array means no matching documents were returned; it does not necessarily mean that the jurisdiction has no documents. Behavior: Read-only search operation. Does not create, update, or delete documents, records, files, or credentials. The primary side effect is the computational and resource cost of executing an OpenSearch query. Auth: tools/call requires OAuth 2.0 or a Bearer token (401 if missing, invalid, revoked, or no active subscription). Rate limits: none at the MCP layer; safe to retry. Search results are determined by the OpenSearch query implementation, relevance logic, supported filters, and available indexed data. Results may not include every document in the jurisdiction. Search results may differ from list_documents because the tools use different retrieval mechanisms. Repeating a search executes another query. Do not assume results are cached or that the search index contains every recently updated document. Returns: Matching legal documents and their available metadata, together with a result message. The returned documents depend on the search query, jurisdiction, supported filters, and subscription permissions.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected806 ms18
Connected802 ms18