nyc-evidence
Server Details
Verifiable New York City tort evidence (sidewalk and motor vehicle) with provenance hashes. Research evidence, not legal advice.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Each tool has a clearly distinct role: search finds candidate evidence, get_evidence retrieves a specific object, get_relationships traverses the graph, resolve_citation validates a citation, and build_evidence_packet assembles a complete answer set. The boundaries are reinforced by descriptions that explain when to use each tool.
All names follow a consistent snake_case verb_noun pattern: build_evidence_packet, get_evidence, get_relationships, resolve_citation, search_evidence. There are no mixed conventions or vague standalone verbs.
Five tools is well-scoped for a read-only legal evidence server. Each tool covers a necessary operation—search, retrieval, relationship traversal, citation validation, and packet assembly—without redundant endpoints.
The surface covers the core evidence-research lifecycle: discovery, retrieval, relationship inspection, citation verification, and synthesized packets. A minor gap is the lack of an explicit browse/list-all endpoint for the dataset or its topics, though search_evidence and build_evidence_packet largely compensate.
Available Tools
5 toolsbuild_evidence_packetBuild an evidence packetARead-onlyIdempotentInspect
Collects the evidence relevant to a research question about NYC sidewalk injury or traffic accident law as of a date: propositions, the statutes and cases behind them, sources, relationships, conflicts, limitations, and what was left out and why. Deterministic: the same question and dataset give the same packet_id. Every object carries a cite_as block (canonical URL + content hash). Check status first: INSUFFICIENT_EVIDENCE means the dataset does not cover the question.
| Name | Required | Description | Default |
|---|---|---|---|
| as_of | No | Date the law should be applied as of (YYYY-MM-DD). Defaults to today. | |
| topics | No | Optional topic IDs to include in addition to those matched from the question (see /topics) | |
| question | Yes | A research question about the law, not about a particular person's case | |
| jurisdiction | No | Jurisdiction to research. Parent jurisdictions (us-ny, us) are included automatically. | us-ny-nyc |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| as_of | Yes | |
| cases | Yes | |
| flags | Yes | |
| status | Yes | |
| sources | Yes | |
| excluded | Yes | |
| question | Yes | |
| conflicts | Yes | |
| packet_id | Yes | |
| provenance | Yes | |
| authorities | Yes | |
| limitations | Yes | |
| jurisdiction | Yes | |
| propositions | Yes | |
| relationships | Yes | |
| interpretation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnly, idempotent, and closed-world; the description adds substantive behavior on top: determinism ('the same question and dataset give the same packet_id'), provenance guarantees (every object carries a cite_as block with canonical URL and content hash), negative-space reporting ('what was left out and why'), and status semantics. These are exactly the traits an agent cannot derive from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the verb and scope, then determinism/provenance, then the status caveat. The enumeration of packet contents is dense but justified because it tells the agent what will come back. Slightly overstuffed for one paragraph but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value enumeration is technically redundant, yet the description still usefully covers determinism, provenance, and the INSUFFICIENT_EVIDENCE status an agent must branch on. Given a four-parameter read-only tool with full schema coverage, an agent has everything needed to call it correctly; only the sibling-routing context is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters are already documented, and the description largely restates them ('as of a date', 'research question'). It adds the framing that the question is about the law rather than a person's case, but that constraint already appears in the schema's question description, so value beyond the schema is marginal — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('collects') plus a precisely bounded resource ('evidence relevant to a research question about NYC sidewalk injury or traffic accident law as of a date'), and it enumerates the packet contents (propositions, statutes, cases, sources, relationships, conflicts, limitations, omissions). It does not, however, distinguish itself from siblings like search_evidence or get_evidence, so an agent still has to infer why it should build a packet rather than query evidence directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides one concrete operating instruction — check the returned status first, and INSUFFICIENT_EVIDENCE signals the dataset does not cover the question — which implies when the tool is and isn't useful. It offers no explicit when-to-use-vs-alternatives routing against get_evidence, search_evidence, or get_relationships, so usage selection is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_evidenceGet one evidence objectARead-onlyIdempotentInspect
Fetches one object by ID (prop_, auth_, case_, src_, rel_), optionally at a specific editorial version and for a date (as_of). The full view includes verbatim passages with their sources, trust fields, applicability on as_of, relationships, and the cite_as block. Its content_hash can be recomputed from the object minus url, links, trust, cite_as, graph, applicability, and provenance.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| view | No | full | |
| as_of | No | Date the law should be applied as of (YYYY-MM-DD). Defaults to today. | |
| version | No | Editorial version; defaults to the current one |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| type | Yes | |
| title | Yes | |
| trust | Yes | |
| status | Yes | |
| cite_as | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and closed-world behavior, so the description correctly spends its space elsewhere: it discloses what the full view returns (passages, sources, trust fields, relationships, cite_as) and gives the content_hash recomputation rule, which is real verification context not derivable from annotations or schema. It omits failure behavior (unknown ID, version out of range) and whether trust/applicability are entitlements-gated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the retrieval verb and the ID vocabulary before the optional modifiers. The content_hash sentence is dense and jargon-heavy but each clause carries information; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description doesn't need to restate return values, and it does enough: it identifies the addressable ID space, the two refinements (version, as_of), the view choice, and the hash-integrity check. The only meaningful hole is the compact-vs-full tradeoff, which matters for a tool whose default view is 'full'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
It explains as_of as 'applicability on as_of' and clarifies the ID prefix vocabulary that the schema only expresses as an opaque regex, which adds genuine meaning. However, the view parameter's critical difference is left half-stated: it describes what 'full' contains but never says what 'compact' omits or why an agent would choose it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Fetches one object by ID') and enumerates the ID prefixes (prop_, auth_, case_, src_, rel_), which pins down exactly what entity types are addressable. It implicitly separates itself from search_evidence by emphasizing single-object retrieval, but never names a sibling, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It signals that version and as_of are optional refinements ('optionally at a specific editorial version and for a date'), which hints at the point-in-time lookup use case. There is no explicit when-to-use/when-not guidance and no routing to search_evidence, build_evidence_packet, or get_relationships for related needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_relationshipsGet relationshipsBRead-onlyIdempotentInspect
Lists typed relationships between objects: establishes, supports, interprets, applies, limits, distinguishes, supersedes, conflicts_with, cites. Filter by from, to, relation, and as_of (only relationships that hold on that date). Use it to find what limits or supersedes a rule.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ||
| from | No | ||
| as_of | No | Date the law should be applied as of (YYYY-MM-DD). Defaults to today. | |
| relation | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| query | Yes | |
| dataset_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, idempotent, closed-world operation. The description adds useful behavioral context by explaining that as_of restricts results to relationships holding on that date, but it does not cover ordering, result shape, or other retrieval behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the core listing behavior stated first and the use case second. The long relation enumeration is somewhat redundant with the schema enum, but it remains readable and purposeful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists and annotations cover safety, the description does not need to explain return values. However, for a four-parameter relationship query, it leaves from/to semantics and sibling-tool routing implicit, which keeps it at minimum viable rather than fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description needs to compensate. It does explain as_of semantics well and names all four filters, but it does not clarify the meaning or expected format of from and to beyond their names, and the relation list largely duplicates the enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb and resource: it lists typed relationships between objects. It also enumerates the relationship types, which makes the tool distinguishable in substance, though it does not explicitly differentiate itself from the sibling evidence tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete use case: finding what limits or supersedes a rule. That is helpful implied guidance, but there are no explicit when-not rules, prerequisites, or named alternatives among search_evidence, get_evidence, resolve_citation, or build_evidence_packet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_citationResolve a citationARead-onlyIdempotentInspect
Checks a citation you were handed: an evidence ID (optionally id@vN), a canonical URL (optionally /v/N), or a legal citation such as '10 NY3d 517'. Pass content_hash from the cite_as block to confirm the content is unchanged. status is current, revised, superseded, hash_mismatch, version_not_found, or not_found. not_found for a legal citation means it is not in this dataset; it may also not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| citation | Yes | An evidence ID (prop_..., optionally with @v2), a canonical URL (optionally ending in /v/{n}), or a legal citation such as '10 NY3d 517' | |
| content_hash | No | The content_hash from the cite_as block you received, to check the object has not changed |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| type | Yes | |
| input | Yes | |
| status | Yes | |
| current | Yes | |
| message | Yes | |
| requested | Yes | |
| matched_by | Yes | |
| superseded_by | Yes | |
| current_version | Yes | |
| matched_version | Yes | |
| requested_version | Yes | |
| content_hash_matches | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. Beyond that, the description discloses the full status vocabulary (current, revised, superseded, hash_mismatch, version_not_found, not_found) and the non-obvious caveat that not_found on a legal citation only means it is absent from this dataset. It doesn't say what an agent should do on hash_mismatch, which is the one behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences, front-loaded with the accepted input forms and the verification hint, with the status vocabulary at the end. Some of the parameter phrasing duplicates the schema text, which is minor waste but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read-only lookup with an output schema, the description covers input forms, the hash-verification use case, and the status meanings, so nothing essential for calling it is missing. The only omission is guidance on how to react to a hash_mismatch or superseded result, which an agent would have to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented, including the sha256 pattern and the id@vN / /v/N version syntax. The description's parameter content largely restates the schema ('Pass content_hash ... to confirm the content is unchanged') rather than adding new semantics, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Checks a citation you were handed') and enumerates the exact input forms accepted: evidence ID with optional @vN, canonical URL with optional /v/N, or a legal citation string. That enumeration makes it clearly distinguishable from get_evidence (which retrieves) and search_evidence (which finds).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a citation you were handed' plus 'Pass content_hash from the cite_as block to confirm the content is unchanged' gives a clear triggering context for verification work. It does not explicitly say when to prefer get_evidence instead, so the alternative-routing advice is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_evidenceSearch evidenceARead-onlyIdempotentInspect
Searches propositions, authorities, and cases by words and topics (deterministic whole-word topic matching, no language model). Results that apply on as_of come first. Use get_evidence for the full object, or build_evidence_packet for a complete answer set.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | ||
| type | No | ||
| as_of | No | Date the law should be applied as of (YYYY-MM-DD). Defaults to today. | |
| limit | No | ||
| cursor | No | Opaque cursor from a previous page's next_cursor | |
| jurisdiction | No | Jurisdiction to research. Parent jurisdictions (us-ny, us) are included automatically. | us-ny-nyc |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| total | Yes | |
| results | Yes | |
| next_cursor | Yes | |
| interpretation | Yes | |
| dataset_version | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, closed-world behavior, so the bar is lower, and the description adds real value beyond them: deterministic whole-word topic matching with no LLM, and a ranking rule ('Results that apply on as_of come first'). It does not mention pagination behavior or the shape of returned items beyond implying they are partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and its matching behavior, followed by ordering and then routing to alternatives. No filler or redundant restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value documentation is unnecessary, and annotations cover the safety profile. Given six parameters and an enum, the description is nearly complete; the residual gap is that type, limit, and cursor are left entirely to an unevenly described schema, and 'source'/'relationship' result kinds are unnamed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, with q, type, and limit undescribed. The description adds meaning to as_of (results applicable on that date sort first) and partially maps the type enum by naming propositions, authorities, and cases, but omits 'source' and 'relationship' and says nothing about limit or cursor semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Searches propositions, authorities, and cases by words and topics') and immediately qualifies the matching semantics as deterministic whole-word, no language model. It also distinguishes itself from 'get_evidence' and 'build_evidence_packet' by naming them, so an agent can differentiate without opening sibling schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent: use this to search, then 'get_evidence for the full object' or 'build_evidence_packet for a complete answer set' — clarifying that this tool returns lightweight results. No explicit when-not-to-use or prerequisite statement, but the alternative-condition mapping is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- First observed
build_evidence_packet - First observed
get_evidence - First observed
get_relationships - First observed
resolve_citation - First observed
search_evidence
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceRemote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.MIT
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs115 npm58 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1623 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.