protogrid

Search / io.github.thechancerylaneproject/tclp-mcp

tclp-mcp

R0· no sign-in

MCP server for The Chancery Lane Project's climate-aligned contract clause knowledge graph.

v0.1.0 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality77good
Trust91of 100
Uptime, 30 days98%
Latency p50389 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "tclp-mcp": {
      "type": "http",
      "url": "https://mcp.chancerylaneproject.org/mcp"
    }
  }
}
claude mcp add --transport http tclp-mcp https://mcp.chancerylaneproject.org/mcp
[mcp_servers.tclp-mcp]
url = "https://mcp.chancerylaneproject.org/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "tclp-mcp": {
      "type": "remote",
      "url": "https://mcp.chancerylaneproject.org/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "tclp-mcp": {
      "type": "http",
      "url": "https://mcp.chancerylaneproject.org/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=tclp-mcp&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmNoYW5jZXJ5bGFuZXByb2plY3Qub3JnL21jcCJ9"
}
{
  "servers": {
    "tclp-mcp": {
      "type": "http",
      "url": "https://mcp.chancerylaneproject.org/mcp"
    }
  }
}
{
  "mcpServers": {
    "tclp-mcp": {
      "httpUrl": "https://mcp.chancerylaneproject.org/mcp"
    }
  }
}
extensions:
  "tclp-mcp":
    enabled: true
    name: "tclp-mcp"
    type: streamable_http
    uri: "https://mcp.chancerylaneproject.org/mcp"
    timeout: 300

Quality 77 / 100good

protocol75 · weight 25
  • warn
    protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
  • n/a
    protocol.statelessonly applies to 2026-07-28 servers
  • pass
    protocol.transportstreamable HTTP
  • n/a
    protocol.list_ttlonly applies to 2026-07-28 servers
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene79 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • warn
    tools.description_length4 tools have descriptions over 1,024 characters, which crowds the context
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: taxonomy_facets (idempotentHint); taxonomy_content (idempotentHint); search (idempotentHint); …
  • pass
    tools.token_costabout 2,916 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability75 · weight 15
  • warn
    stability.changes18 tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

6 tools, about 2,916 tokens to load them all · tool set 67a1ad6f5c86 · tools last changed 2026-10-20 · checked 2026-10-20 23:27 UTC

Tool changes

  • taxonomy_contentchangeddescription, output schema
    before

    List TCLP content (clauses, guides) or legal resources filtered by taxonomy facet=value. Multi-facet filters are combined with AND. Call `taxonomy_facets` first to learn which facet names and slugs exist; using a name not in that list returns a 400. Args: filters: Mapping of facet name to value slug, e.g. `{"sector": "real-estate", "practice_area": "commercial"}`. Each facet may appear at most once. scope: `clause` (ClauseName only), `guide` (Guide only), `legal_resource` (laws, regulations, standards and frameworks; facets `jurisdiction` and `sector` only), or `all` (clauses and guides, the default). limit: Maximum results to return (1–100, default 25). offset: Result offset for paging (default 0). sort: `title`, `date_published_desc`, or `date_modified_desc`. Returns: JSON with "meta" (totals, scope, filters echoed back) and "results" (each hit has `id`, `url`, `title`, `content_type`, dates, and a `facets` map of all taxonomy arrays on the node). `content_type` is `clause`, `guide` or `legal_resource`, the same values that `search` returns.

    after · 95% of words in common

    List TCLP content (clauses, guides) or legal resources filtered by taxonomy facet=value. Multi-facet filters are combined with AND. Call `taxonomy_facets` first to learn which facet names and slugs exist; using a name not in that list returns a 400. Args: filters: Mapping of facet name to value slug, e.g. `{"sector": "real-estate", "practice_area": "commercial"}`. Each facet may appear at most once. scope: `clause` (ClauseName only), `guide` (Guide only), `legal_resource` (laws, regulations, standards and frameworks; facets `jurisdiction` and `sector` only), or `all` (clauses and guides, the default). limit: Maximum results to return (1–100, default 25). offset: Result offset for paging (default 0). sort: `title`, `date_published_desc`, or `date_modified_desc`. Returns: JSON with "meta" (totals, scope, filters echoed back) and "results" (each hit has `id`, `url`, `title`, `content_type`, dates, `summary` (the clause summary or guide excerpt as plain text, null for legal resources), and a `facets` map of all taxonomy arrays on the node). `content_type` is `clause`, `guide` or `legal_resource`, the same values that `search` returns.

  • entity_lookupchangeddescription, output schema
    before

    Find TCLP content (clauses, glossary terms, guides) associated with a named concept. Unlike `search`, this performs a deterministic name match against Entity nodes in the knowledge graph rather than a relevance-ranked semantic search. Use it when you have a specific term or concept (e.g. "scope 3 emissions", "net zero") and want to retrieve every clause or glossary entry that explicitly references it. Args: name: The entity or concept name to look up (exact match, case-insensitive). limit: Maximum number of results to return (1–50). include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" and "results" where each hit includes the source content node and the entity names that matched. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.

    after · 96% of words in common

    Find TCLP content (clauses, glossary terms, guides) associated with a named concept. Unlike `search`, this performs a deterministic name match against Entity nodes in the knowledge graph rather than a relevance-ranked semantic search. Use it when you have a specific term or concept (e.g. "scope 3 emissions", "net zero") and want to retrieve every clause or glossary entry that explicitly references it. Args: name: The entity or concept name to look up (exact match, case-insensitive). limit: Maximum number of results to return (1–50). include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" and "results" where each hit includes the source content node, its plain-text `summary` (null when it has none) and the entity names that matched. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.

  • searchchangeddescription, input schema, output schema
    before

    Search the TCLP knowledge graph using fusion search (semantic + BM25). Args: query: Free-text search query (max 1000 characters). node_type: Content scope — "tclp" (clauses, glossary terms, guides) or "all". Laws, regulations, standards and frameworks are not searchable here: use `find_legal_resources`. limit: Maximum number of results to return (1–50). rerank: Whether to apply RRF reranking when combining graph and text results. include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" (totals, timing) and "results" (ranked hits with title, url, content_type, scores, optionally relationships_text, related and full_text). Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.

    after · 89% of words in common

    Search the TCLP knowledge graph using fusion search (semantic + BM25). Args: query: Free-text search query (max 1000 characters). node_type: Content scope — "tclp" (clauses, glossary terms, guides) or "all". Laws, regulations, standards and frameworks are not searchable here: use `find_legal_resources`. content_type: Return only one content type: "clause", "glossary_term" or "guide". Omit to search every type. limit: Maximum number of results to return (1–50). rerank: Whether to apply RRF reranking when combining graph and text results. include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" (totals, timing) and "results" (ranked hits with title, url, content_type, scores, summary, optionally relationships_text, related and full_text). `summary` is short plain text: the clause summary, the first paragraph of a glossary definition, or a guide's excerpt. It is null when the item has none. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.

  • entity_lookupchangeddescription
    before

    Find TCLP content (clauses, glossary terms, guides) associated with a named concept. Unlike `search`, this performs a deterministic name match against Entity nodes in the knowledge graph rather than a relevance-ranked semantic search. Use it when you have a specific term or concept (e.g. "scope 3 emissions", "net zero") and want to retrieve every clause or glossary entry that explicitly references it. Args: name: The entity or concept name to look up (exact match, case-insensitive). limit: Maximum number of results to return (1–50). include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" and "results" where each hit includes the source content node and the entity names that matched. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. If meta.degraded contains "lrsf", references could not be loaded: do not conclude that a hit cites no instruments.

    after · 95% of words in common

    Find TCLP content (clauses, glossary terms, guides) associated with a named concept. Unlike `search`, this performs a deterministic name match against Entity nodes in the knowledge graph rather than a relevance-ranked semantic search. Use it when you have a specific term or concept (e.g. "scope 3 emissions", "net zero") and want to retrieve every clause or glossary entry that explicitly references it. Args: name: The entity or concept name to look up (exact match, case-insensitive). limit: Maximum number of results to return (1–50). include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" and "results" where each hit includes the source content node and the entity names that matched. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.

  • searchchangeddescription
    before

    Search the TCLP knowledge graph using fusion search (semantic + BM25). Args: query: Free-text search query (max 1000 characters). node_type: Content scope — "tclp" (clauses, glossary terms, guides) or "all". Laws, regulations, standards and frameworks are not searchable here: use `find_legal_resources`. limit: Maximum number of results to return (1–50). rerank: Whether to apply RRF reranking when combining graph and text results. include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" (totals, timing) and "results" (ranked hits with title, url, content_type, scores, optionally relationships_text, related and full_text). Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. If meta.degraded contains "lrsf", references could not be loaded: do not conclude that a hit cites no instruments.

    after · 94% of words in common

    Search the TCLP knowledge graph using fusion search (semantic + BM25). Args: query: Free-text search query (max 1000 characters). node_type: Content scope — "tclp" (clauses, glossary terms, guides) or "all". Laws, regulations, standards and frameworks are not searchable here: use `find_legal_resources`. limit: Maximum number of results to return (1–50). rerank: Whether to apply RRF reranking when combining graph and text results. include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" (totals, timing) and "results" (ranked hits with title, url, content_type, scores, optionally relationships_text, related and full_text). Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.

  • taxonomy_contentchangedinput schema
  • taxonomy_facetschangedinput schema
  • get_legal_resourcechangedinput schema
  • find_legal_resourceschangedinput schema
  • entity_lookupchangedinput schema, output schema

Showing the latest 10. Full history: list_changes · trend: quality JSON.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 91 / 100

provenance80
liveness99
freshness85
hygiene100

+repository +namespace-matches-repo +reachable +uptime-98% ~updated-68d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.chancerylaneproject.org/mcp streamable-httpnoneyes98%389 ms2025-11-252026-10-20

Tools (6)

entity_lookupread-onlyFind TCLP content (clauses, glossary terms, guides) associated with a named concept. Unlike `search`, this performs a deterministic name match against Entity nodes in the knowledge graph rather than a relevance-ranked semantic search. Use it when you have a specific term or concept (e.g. "scope 3 emissions", "net zero") and want to retrieve every clause or glossary entry that explicitly references it. Args: name: The entity or concept name to look up (exact match, case-insensitive). limit: Maximum number of results to return (1–50). include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" and "results" where each hit includes the source content node, its plain-text `summary` (null when it has none) and the entity names that matched. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.
find_legal_resourcesread-onlyFind the laws, regulations, standards, frameworks and guidance that TCLP content refers to. This is not a general legal database: it holds only the instruments that TCLP clauses, guides and glossary terms cite. Status "stub": identity confirmed, metadata minimal; a null or empty field means not yet recorded, not that it does not apply. On a stub, `nature` may be an unreviewed inference, and is often null. Do not fill in missing fields from your own knowledge, and do not state an instrument's legal effect. A filter on nature, sector or bindingness excludes works where that field is not recorded. Most works do not record these yet, so an empty result does not mean that TCLP content cites no such instrument; prefer `query` or `jurisdiction`. Args: query: Case-insensitive substring match on name and aliases (e.g. "CSRD"), at most 200 characters. An exact name or alias match ranks first. nature: Any of "legislation", "regulation", "standard", "framework", "guidance". jurisdiction: Jurisdiction slugs, matched exactly: lower-case letters, digits and hyphens (e.g. "european-union"). Get valid values from `taxonomy_facets(scope="legal_resource")`. sector: Sector slugs, matched exactly: lower-case letters, digits and hyphens. Get valid values from `taxonomy_facets(scope="legal_resource")`. bindingness: Any of "binding", "comply_or_explain", "voluntary", "depends". Each list filter takes at most 20 values. limit: Maximum results (1–100, default 20). offset: Result offset for paging (0–10000, default 0). Returns: JSON with "meta" (total_available, limit, offset) and "results" (one entry per instrument, with `work_id` for `get_legal_resource` and `citing_count`).
get_legal_resourceread-onlyGet one law, regulation, standard, framework or guidance, and the TCLP content citing it. Versions are not tracked yet, so every citation has `staleness: "unpinned"`: the content cites the instrument without naming a version. There is no description yet; do not supply one from your own knowledge, and do not state the instrument's legal effect. Args: work_id: The instrument's `work_id`, from `find_legal_resources` or from a search result's "references". citing_limit: Maximum citing content items to return (1–100, default 20). Returns: JSON with "resource", "citing" (each with id, title, url, content_type, edge, staleness) and "citing_total". `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect.
searchread-onlySearch the TCLP knowledge graph using fusion search (semantic + BM25). Args: query: Free-text search query (max 1000 characters). node_type: Content scope — "tclp" (clauses, glossary terms, guides) or "all". Laws, regulations, standards and frameworks are not searchable here: use `find_legal_resources`. content_type: Return only one content type: "clause", "glossary_term" or "guide". Omit to search every type. limit: Maximum number of results to return (1–50). rerank: Whether to apply RRF reranking when combining graph and text results. include_full_text: Include each hit's full body text (Markdown). Off by default — bodies are large; request only when you need the content, and prefer a small `limit` when you do. Returns: JSON with "meta" (totals, timing) and "results" (ranked hits with title, url, content_type, scores, summary, optionally relationships_text, related and full_text). `summary` is short plain text: the clause summary, the first paragraph of a glossary definition, or a guide's excerpt. It is null when the item has none. Each hit's "references" lists the instruments it cites: pass a reference's `work_id` to `get_legal_resource` for details. A reference's `edge` (governs, references, describes) says how the content relates to the instrument; it is not a statement of the instrument's legal effect. An empty list means the hit cites no instruments. null with "lrsf" in meta.degraded means references could not be loaded: do not conclude that the hit cites no instruments.
taxonomy_contentread-onlyList TCLP content (clauses, guides) or legal resources filtered by taxonomy facet=value. Multi-facet filters are combined with AND. Call `taxonomy_facets` first to learn which facet names and slugs exist; using a name not in that list returns a 400. Args: filters: Mapping of facet name to value slug, e.g. `{"sector": "real-estate", "practice_area": "commercial"}`. Each facet may appear at most once. scope: `clause` (ClauseName only), `guide` (Guide only), `legal_resource` (laws, regulations, standards and frameworks; facets `jurisdiction` and `sector` only), or `all` (clauses and guides, the default). limit: Maximum results to return (1–100, default 25). offset: Result offset for paging (default 0). sort: `title`, `date_published_desc`, or `date_modified_desc`. Returns: JSON with "meta" (totals, scope, filters echoed back) and "results" (each hit has `id`, `url`, `title`, `content_type`, dates, `summary` (the clause summary or guide excerpt as plain text, null for legal resources), and a `facets` map of all taxonomy arrays on the node). `content_type` is `clause`, `guide` or `legal_resource`, the same values that `search` returns.
taxonomy_facetsread-onlyList taxonomy facets and their value slugs across TCLP content. Facets are taxonomy categories like `sector`, `practice_area`, `application`, and `jurisdiction`. Each facet returns the list of slugs that actually appear on the graph, with counts. Use this to discover the vocabulary, then call `taxonomy_content` with chosen slugs. Args: scope: Which labels to include — `clause` (ClauseName only), `guide` (Guide only), `legal_resource` (laws, regulations, standards and frameworks; facets `jurisdiction` and `sector` only), or `all` (clauses and guides, the default). Returns: JSON with "meta" and "facets". Each facet has `name`, `applies_to` (list of Neo4j labels carrying it), and `values` (list of `{slug, count}`, sorted by count desc).

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.thechancerylaneproject/tclp-mcp",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.chancerylaneproject.org/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.0",
  "repository": {
    "url": "https://github.com/thechancerylaneproject/tclp-mcp",
    "source": "github"
  },
  "description": "MCP server for The Chancery Lane Project's climate-aligned contract clause knowledge graph."
}