Legalize
REMOTE · LEGALIZE.DEV · SCANNED OCT 3
Official MCP connector for Legalize: read and search its whole open corpus, at any point in time.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability0
- Transport blocked by authentication: the endpoint requires auth we don't have to verify streamable-http. See how to fix → View diagnostics → Unverified
Schema Quality & AI Usability0
- Schema blocked by authentication: the endpoint requires auth we don't have to read it. See how to fix → Unverified
Stability & Change Management0
- Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage0
- Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Tool Safety0
- Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools.Unverified
Capabilities0
- Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. See how to fix → Unverified
Unverified: 6 categories
Categories scored 0 because we could not verify them: authentication we do not have, an unreachable endpoint, or not enough scan history. We only credit what we can confirm. Claim this server and supply a read-only token to verify it and lift the score.
How do I install the Legalize MCP server?
Legalize is a hosted endpoint at https://legalize.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · legalize.dev
claude mcp add --transport http dev-legalize-legalize 'https://legalize.dev/mcp'
{
"mcpServers": {
"dev-legalize-legalize": {
"url": "https://legalize.dev/mcp"
}
}
} {
"servers": {
"dev-legalize-legalize": {
"type": "http",
"url": "https://legalize.dev/mcp"
}
}
} [mcp_servers.dev-legalize-legalize] url = "https://legalize.dev/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dev-legalize-legalize": {
"type": "remote",
"url": "https://legalize.dev/mcp",
"enabled": true
}
}
} openclaw mcp add dev-legalize-legalize --url 'https://legalize.dev/mcp' --transport streamable-http
mcp_servers:
dev-legalize-legalize:
url: "https://legalize.dev/mcp" {
"McpServers": {
"dev-legalize-legalize": {
"Transport": "http",
"Url": "https://legalize.dev/mcp"
}
}
} assistant mcp add dev-legalize-legalize -t streamable-http -u 'https://legalize.dev/mcp'
{
"mcpServers": {
"dev-legalize-legalize": {
"type": "http",
"url": "https://legalize.dev/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 30 Sept 26 0
- Endpoint reachability: unreachable → behind authorisation ▼ security
- Authorization: fail → pass ▲ security
- Tool safety: Tool safety blocked by authentication: the endpoint requires auth we don't have to read its tools. security
- Tool coverage: Tool coverage blocked by authentication: the endpoint requires auth we don't have to read its tools. functional
- Schema quality: Schema blocked by authentication: the endpoint requires auth we don't have to read it. functional
- Capabilities: Capabilities blocked by authentication: the endpoint requires auth we don't have to read them. functional
- 29 Sept 26 0
- Endpoint reachability: behind authorisation → unreachable ▼ security
- Authorization: pass → fail ▼ security
- Tool safety: Tool safety not yet verified: we couldn't read the endpoint's tools, or could read only part of the list. security
- Tool coverage: Tool coverage not yet verified: we couldn't read the endpoint's tools, or could read only part of the list. functional
- Capabilities: Capabilities not yet verified: we couldn't read the endpoint's capabilities. functional
- Schema quality: Schema not yet verified: we couldn't read the endpoint's schema, or could read only part of its tool list. functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Aug 26 0
- Endpoint reachability: reachable → behind authorisation ▼ security
- Tool safety: pass → unverified ▼ security
- Transport: pass → unverified ▼ security
- Stability: 0.03 → unverified ▼ security
- Authorization: The endpoint enforces authorisation, advertised via RFC 9728 protected-resource metadata. security
- Capabilities: pass → unverified ▼ functional
- Tool coverage: 100 → unverified ▼ functional
- 29 Aug 26 0
- Stability: unverified → 0.03 ▲ functional
- This server's schema is too large to store in full, so we cannot compare its tools day to day functional
- 28 Aug 26 0
- Transport: unverified → pass ▲ security
- Injection markers: unverified → pass ▲ security
- First check of Judged manipulation: pass security
- Authorization: Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. security
- MCP protocol: unverified → pass ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- First check of Schema quality: fail functional
- First check of Schema quality: excellent functional
- First check of Destructive annotations: pass functional
- First check of Schema quality: fail functional
- First check of Tool coverage: 100 functional
- First check of Tool coverage: 100 functional
- 26 Aug 26 0
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Oct 2026 · Probed https://legalize.dev/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=legalize.dev | CN=WR3,O=Google Trust Services,C=US | 14 Sept 2026 | 13 Dec 2026 | RSA 2048 | SHA256-RSA | 99c5a0052258451712b972e208f91361 |
| SANs: legalize.dev, www.legalize.dev | ||||||
| CN=WR3,O=Google Trust Services,C=US (CA) | CN=GTS Root R1,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | RSA 2048 | SHA256-RSA | 7ff005a91568d63abc22861684aa4b5a |
| CN=GTS Root R1,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 19 Jun 2020 | 28 Jan 2028 | RSA 4096 | SHA256-RSA | 77bd0d6cdb36f91aea210fc4f058d30d |
| CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 1 Sept 1998 | 28 Jan 2028 | RSA 2048 | SHA1-RSA | 40000000001154b5ac394 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of legalize.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| legalize.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On connection |
| HTTP status | 401 |
WWW-Authenticate challenge Bearer error="invalid_token", resource_metadata="https://legalize.dev/.well-known/oauth-protected-resource"
Bearer error="invalid_token", resource_metadata="https://legalize.dev/.well-known/oauth-protected-resource" | Header | Value |
|---|---|
| strict-transport-security | max-age=63072000; includeSubDomains |
| content-security-policy | default-src 'self'; script-src 'self' 'nonce-Q1kaW924B2zIMpw7UQbZvQ==' https://cdn.jsdelivr.net https://www.googletagmanager.com; style-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net; font-src 'self'; img-src 'self' data: https://fastapi.tiangolo.com https://www.googletagmanager.com; connect-src 'self' https://*.google-analytics.com https://www.googletagmanager.com https://analytics.google.com https://login.legalize.dev https://*.stytch.com |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=() |
| www-authenticate | Bearer error="invalid_token", resource_metadata="https://legalize.dev/.well-known/oauth-protected-resource" |
Protected resource metadata
| Document | https://legalize.dev/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://legalize.dev/mcp |
| Authorisation server | https://login.legalize.dev |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://legalize.dev/mcp | Auth required | 401 | |
| http (plaintext) | http://legalize.dev/mcp | HTTPS enforced | 301 | https://legalize.dev/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
diff_law ~270
What changed in a norm between two dates. Returns a unified diff of the two versions and both SHAs, which is what makes the change citable rather than asserted. With `article=`, the diff of that one article; without it, on a law too large to diff whole, the list of headings that changed so you can ask again for the one that matters. Use it to answer 'has this been amended since?' with the text itself.
| Name | Type | Req | Description |
|---|---|---|---|
| article | – | – | One article instead of the whole body: either the anchor from the table of contents, or the literal heading ('Artículo 348 bis'). Omit for the whole law. |
| country | string | yes | ISO 3166-1 alpha-2 country code, lower case — 'es', 'fr', 'pt'. Call list_countries for the ones served. |
| date_a | string | yes | The earlier date, YYYY-MM-DD. The version in force then is the left side of the diff. |
| date_b | string | yes | The later date, YYYY-MM-DD. The version in force then is the right side of the diff. |
| id | string | yes | The law's identifier, as search_laws returns it in `id`. It is the official identifier the source uses, not a title or a slug. |
Structured output declared, but exposes no named fields.
No examples provided.
get_law ~275
Read what a norm says today. Returns the full Markdown body, or one article of it with `article=` (either the anchor or the literal heading, e.g. 'Artículo 348 bis'). A law too large to send whole comes back as its table of contents instead of a truncated body: ask again for the article you need, or pass `full=true` to accept the whole thing. If the body is an act as published rather than a consolidated text, the answer says so and names the norms that amend it: do not quote that text as the law in force.
| Name | Type | Req | Description |
|---|---|---|---|
| article | – | – | One article instead of the whole body: either the anchor from the table of contents, or the literal heading ('Artículo 348 bis'). Omit for the whole law. |
| country | string | yes | ISO 3166-1 alpha-2 country code, lower case — 'es', 'fr', 'pt'. Call list_countries for the ones served. |
| full | boolean | – | Accept a body large enough that the answer would otherwise be its table of contents. Ask for the article you need first; this is the fallback. |
| id | string | yes | The law's identifier, as search_laws returns it in `id`. It is the official identifier the source uses, not a title or a slug. |
Structured output declared, but exposes no named fields.
No examples provided.
law_at_date ~252
What a norm said on a given day. This is the question a search engine cannot answer: not the current text, but the text that was on the books on that date. Resolves the date to the version published on or before it and returns that version with the git SHA behind it, so the quote is reproducible and the other side can check it. Use `article=` for one article of that version. Note the basis: publication date, not entry into force.
| Name | Type | Req | Description |
|---|---|---|---|
| article | – | – | One article instead of the whole body: either the anchor from the table of contents, or the literal heading ('Artículo 348 bis'). Omit for the whole law. |
| country | string | yes | ISO 3166-1 alpha-2 country code, lower case — 'es', 'fr', 'pt'. Call list_countries for the ones served. |
| date | string | yes | A calendar date written YYYY-MM-DD. Resolved to the version published on or before it — publication date, not entry into force. |
| id | string | yes | The law's identifier, as search_laws returns it in `id`. It is the official identifier the source uses, not a title or a slug. |
Structured output declared, but exposes no named fields.
No examples provided.
law_stats ~147
How large a country's corpus is and how much it moves: how many laws, how many recorded amendments, the span of publication dates, and the breakdown by type of norm. Use it to size an answer before drilling into it, or to say honestly how much of a jurisdiction Legalize actually holds.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 3166-1 alpha-2 country code, lower case — 'es', 'fr', 'pt'. Call list_countries for the ones served. |
| jurisdiction | – | – | Size one jurisdiction instead of the whole country: a sub-national code for a region, or 'national' for the norms of the state itself. Omit for the country total. |
Structured output declared, but exposes no named fields.
No examples provided.
list_countries ~23
List the countries Legalize covers and how many laws each one has.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| result | array | yes | – |
No examples provided.
reform_history ~168
Which norms have amended this law, when, and what each one says it touched, newest first. Use it to answer 'is this still current?' and to find the dates worth feeding to law_at_date or diff_law. `since` narrows it to amendments from a date onwards.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 3166-1 alpha-2 country code, lower case — 'es', 'fr', 'pt'. Call list_countries for the ones served. |
| id | string | yes | The law's identifier, as search_laws returns it in `id`. It is the official identifier the source uses, not a title or a slug. |
| since | – | – | Only amendments from this date onwards, YYYY-MM-DD. Omit for the whole history, newest first. |
Structured output declared, but exposes no named fields.
No examples provided.
search_laws ~358
Find a norm by words in its title, or by its official number (e.g. '2/2011'), inside one country's corpus. Use this first when you know roughly what a law is called but not its identifier: the `id` it returns is what every other tool here takes. Each result says whether its text is consolidated or the act as published, so you can tell before quoting whether amendments are folded into it.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | yes | ISO 3166-1 alpha-2 country code, lower case — 'es', 'fr', 'pt'. Call list_countries for the ones served. |
| jurisdiction | – | – | Narrow to one jurisdiction where a country's catalogue holds more than one: a sub-national code for a region (Spanish comunidades autónomas), or 'national' for the norms of the state itself. Omit to… |
| limit | integer | – | How many results to return, 1-50. Narrow with type, year or jurisdiction instead of raising this: every result costs context. |
| q | string | yes | Words from the law's title, or its official number ('2/2011'). Matched against the title and the subject headings the source assigns to the law, so a topic word can find it — but never the body of th… |
| type | – | – | Narrow to one kind of norm, in the source's own vocabulary ('Ley', 'Real Decreto', 'Decreto-Lei'). Values vary by country; the `type` of any result is a valid one. |
| year | – | – | Narrow to laws published in this year. |
Structured output declared, but exposes no named fields.
No examples provided.
What is the Legalize MCP server?
Legalize is an MCP server listed in the public MCP registry as dev.legalize/legalize. Official MCP connector for Legalize: read and search its whole open corpus, at any point in time. This page covers its hosted endpoint (https://legalize.dev/mcp).
Is the Legalize MCP server safe to use?
Legalize scores 38 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Legalize MCP server expose?
Legalize exposes 7 tools: list_countries, search_laws, get_law, law_at_date, diff_law, and 2 more. Their descriptions and schemas cost roughly 1,493 tokens of context every time the server is loaded.
Does the Legalize MCP server require authentication?
Yes. Legalize asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the Legalize MCP server still maintained?
Legalize is still listed as active in the MCP registry. We last reached this channel on 3 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.