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 · Code & DevOps

io.github.thechancerylaneproject/tclp-mcp

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

Checks passed
13 / 22

1 failed · 8 not measured

Median response
241 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
6

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
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 241 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name kg_api.

  • Pass
    Lists tools

    tools/list returned 6 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 241 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

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

  • Not measured
    Reliable (uptime)

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

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

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.

  • Fail
    Parameters documented

    0 of 24 parameters have a description (0%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Not measured
    Website matches publisher

    This namespace is not a reverse domain, so the website comparison does not apply.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Pass
    Repo owner matches

    The GitHub repository owner matches the namespace login.

  • Pass
    Recently updated

    Updated 2026-08-13T13:56:54.31194Z, within 180 days.

  • Not measured
    Open-source licence

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

Start using io.github.thechancerylaneproject/tclp-mcp

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 io-github-thechancerylaneproject-tclp-mcp https://mcp.chancerylaneproject.org/mcp

Capabilities

Tools 6

entity_lookup

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), its `child_name` (a clause's child name, null otherwise) 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.

Discovered
find_legal_resources

Find 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`).

Discovered
get_legal_resource

Get 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 child_name: a clause's child name, null otherwise) 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.

Discovered
search

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. `child_name` is a clause's child name (e.g. "Odhran's Clause"), null for other content and for a clause that has none; text search also matches it. 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.

Discovered
taxonomy_content

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), `child_name` (a clause's child name, e.g. "Odhran's Clause", null otherwise), 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.

Discovered
taxonomy_facets

List 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).

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected241 ms6