corpus
Server Details
IP and innovation law scholarship of NYU's Engelberg Center, with verified Bluebook pin cites.
- Status
- Healthy
- Uptime
- 100.0% over 48 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
search and list_documents are clearly separated by purpose (passage search vs. catalog browsing). However, fetch and fetch_document both retrieve full text by an ID and their descriptions overlap substantially, with fetch even directing users to fetch_document for paging, so an agent could easily misselect between them.
All names use snake_case and are verb-oriented: fetch, fetch_document, list_documents, search. The set is mostly consistent, with only minor deviations between short verbs (fetch, search) and verb_noun names (fetch_document, list_documents).
Four tools is a lean, reasonable scope for a read-only research corpus: search, browse, fetch, and page through long documents. The only concern is that fetch and fetch_document appear partially redundant, so not every tool fully earns a distinct place.
The surface covers the core lifecycle for this read-only corpus: discovering works via list_documents, searching passages via search, retrieving full text via fetch/fetch_document, and paging through long documents. No create/update/delete operations are needed for this domain, and no obvious dead ends are apparent.
Available Tools
4 toolsfetchAInspect
Retrieve the full text of an Engelberg Center publication by the id returned from search. Returns id, title, text, url, and metadata (citation, version, and how to cite — including that author-draft page numbers must never be presented as journal pin cites; see metadata.citation_note).
Very long documents (casebooks) are truncated; metadata.truncated is true and fetch_document(document_id, start_chunk=...) pages through the remainder.
Args: id: The document id from a search result
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| url | Yes | |
| text | Yes | |
| title | Yes | |
| metadata | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden and does so well. It discloses the truncation behavior, the metadata.truncated flag, and the citation rule about never presenting author-draft page numbers as journal pin cites. It also lists exact return fields, giving the agent a clear model of the tool's 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 well-structured and front-loaded with the primary action, followed by necessary return-field details, truncation caveats, and an Args section. Every sentence adds useful information without redundancy or fluff.
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?
The output schema covers return value structure, so the description need not restate that. The description adds essential context beyond the schema: truncation behavior, paging via fetch_document, and the citation-note caveat. For a single-parameter, read-style retrieval tool, this is 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?
The input schema provides only the type 'string' with no description, and schema coverage is 0%. The description compensates by explaining that id is 'The document id from a search result,' which is the key semantic meaning needed to call the tool correctly. It could add more about expected format, but the source of the id is the critical information and it is present.
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 states a specific verb ('Retrieve') and resource ('full text of an Engelberg Center publication') and clarifies that the id must come from search. It also distinguishes itself from fetch_document, which handles truncated documents, and from search, which produces the id.
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 clearly indicates when to use this tool: after obtaining an id from search, to retrieve the full text. It also provides an explicit alternative for long documents: use fetch_document to page through truncated casebooks. It does not explicitly mention list_documents, but the context is sufficient for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetch_documentAInspect
Retrieve the text of a specific Engelberg Center publication by document ID. Use after a search() call to get more context around a relevant chunk, or to read a paper in page order.
Long documents are paged: at most max_chunks chunks are returned per call, starting at start_chunk. The response includes total_chunks and next_start_chunk (null when you have reached the end) — pass next_start_chunk back to continue reading.
Returns document metadata (including version: "published" or "author_draft" — see citation_note for how to cite drafts) and text chunks in sequence with page numbers and section headings.
Args: document_id: The document ID returned by search() or list_documents() start_chunk: Zero-based chunk offset to start from (default 0) max_chunks: Maximum chunks to return (default 40, max 100)
| Name | Required | Description | Default |
|---|---|---|---|
| max_chunks | No | ||
| document_id | Yes | ||
| start_chunk | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | |
| chunks | Yes | |
| document | Yes | |
| returned | Yes | |
| total_chunks | Yes | |
| next_start_chunk | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It transparently explains the paging mechanism (max_chunks per call, start_chunk offset, total_chunks and next_start_chunk in the response) and the metadata (including version and citation_note). It does not mention error handling or authentication, but for a read-only retrieval tool this is a strong disclosure of the key behaviors an agent needs to correctly manage long documents.
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 well-organized and efficient. It leads with the core purpose, then usage context, then paging, then return content, and finally parameter explanations in a clean list. Every sentence adds necessary information without repetition or filler. The structure makes it easy for an agent to scan and extract the important details.
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?
Given the tool's moderate complexity (paging, metadata, multiple parameters) and the existence of an output schema, the description covers all the essential aspects: how to start, how to continue reading via next_start_chunk, the nature of the returned data, and parameter semantics. It even includes guidance on citing drafts. Nothing an agent needs to successfully use this tool is missing.
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?
The input schema has zero parameter descriptions (schema coverage is 0%), so the description must compensate. It does so thoroughly in the Args section, explaining document_id (source and usage), start_chunk (zero-based offset and default), and max_chunks (default and maximum). This goes beyond the schema's bare defaults, giving the agent the semantic meaning needed to invoke the tool correctly.
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 action and resource: 'Retrieve the text of a specific Engelberg Center publication by document ID.' This clearly distinguishes fetch_document from its siblings: search() locates documents and list_documents() enumerates them, while this tool fetches content for a known ID. The purpose is unambiguous and differentiated.
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 states when to use the tool: 'Use after a search() call to get more context around a relevant chunk, or to read a paper in page order.' It also references the sibling list_documents() as a source of document_id, giving the agent a clear mental model of the workflow. No exclusions are needed because the tool has a focused role.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_documentsAInspect
List publications from the Engelberg Center on Innovation Law & Policy at NYU Law. Filter by author name, publication type, or cited case.
Publication types: Articles, Books, Chapters, Short Articles, Briefs & Testimony (amicus briefs and congressional testimony by the co-directors), Reports (clinic white papers and policy reports), Working Papers (never journal-published; the working paper is citable) Directors include the eight Engelberg Center co-directors and affiliated co-authors.
Use this — not search — to answer what the corpus contains or holds. Use to browse available sources before searching, to find all work by a specific author, or to find which publications discuss a specific judicial decision (cites_case) — e.g. cites_case="MercExchange" or cites_case="547 U.S. 388". Results matched on a case include cited_case_matches showing how often each matched case is cited — higher counts mean the case is analyzed, not just cited in passing.
Args: director: Filter by author name (partial match, case-insensitive) publication_type: Filter by type — Articles, Books, Chapters, Short Articles cites_case: Filter to publications citing a case; matches on party names or the reporter citation (partial, case-insensitive)
| Name | Required | Description | Default |
|---|---|---|---|
| director | No | ||
| cites_case | No | ||
| publication_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| documents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it delivers real behavioral detail: the seven publication-type categories, the meaning of working papers, the identity of the directors, and the fact that case-matched results include cited_case_matches whose counts signal depth of analysis. It does not state result ordering, limits, or pagination, which is the remaining 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?
Front-loaded with the core purpose, then types, then usage routing, then args — a sensible order with short paragraphs. Some redundancy between the body's type enumeration and the Args line, and the partial re-listing of types in Args is both duplicative and incomplete.
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 values needn't be spelled out, yet the description still explains the notable cited_case_matches field, which is above the bar. For a zero-required-parameter listing tool with no annotations, the only missing pieces are result ordering/limit behavior and the inconsistent publication_type enumeration.
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 0%, so the description must compensate, and it does: each of the three parameters is documented with matching semantics ('partial match, case-insensitive') and cites_case gets worked examples plus a note on party-name vs. reporter-citation matching. The Args block, however, lists only four publication types while the body lists seven, leaving the enum range for publication_type inconsistent.
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 ('List publications from the Engelberg Center') and enumerates the corpus contents, so an agent knows exactly what domain it exposes. It also contrasts itself with the sibling 'search' tool, drawing a clean boundary between browsing and querying.
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 names the alternative and the conditions that select this tool: 'Use this — not search — to answer what the corpus contains,' plus three concrete use cases (browse before searching, all work by an author, publications citing a case). The 'not search' exclusion is exactly the routing an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchAInspect
Search the published research corpus of the Engelberg Center on Innovation Law & Policy at NYU Law: the scholarship of Barton Beebe, Rochelle C. Dreyfuss, Jeanne C. Fromer, C. Scott Hemphill, Christopher J. Morten, Jason M. Schultz, Christopher Jon Sprigman, Katherine J. Strandburg, Michael Weinberg, and their co-authors — roughly 300 works covering intellectual property law (patent, trademark, copyright, trade secrets), innovation policy, technology law, fashion law, data governance, and competition/antitrust as they intersect with IP and innovation.
ALWAYS search this corpus when a question names one of these authors or involves IP law doctrine, innovation economics, or technology policy and you want authoritative academic sources with verifiable citations. Use it alongside web search rather than instead of it: this corpus returns exact quotable passages with verified, page-accurate Bluebook citations that web search cannot provide, while web search covers the wider literature this collection does not hold. To find which publications discuss a specific judicial decision, use list_documents(cites_case=...) instead — it matches the corpus's extracted tables of authorities. To answer what the corpus contains (which works, authors, or publication types it holds), call list_documents instead — this tool searches passage text, not the catalog.
Returns ranked text chunks with full citation metadata. Each result has:
bluebook_citation: the exact Bluebook citation for the passage, pin cite included where the printed page is known. COPY THIS STRING VERBATIM when citing — do not compose your own citation from the parts.
citation: the published citation of the work
version: "published" (version of record) or "author_draft" (an SSRN / working-paper copy). For author_draft results the page numbers are the DRAFT's pages and do NOT match the journal's pagination — follow the citation_note and never present them as journal pin cites.
locator: the page to cite. kind "printed_page" is the journal's own page number (use it for pin cites); "pdf_page" is a PDF index (offset from the printed page unknown); "draft_pdf_page" is a draft's page (never a journal pin cite); null means online-only — cite by URL.
url: the work's canonical home (publisher page, SSRN, etc.). When presenting sources to a researcher, include this as a link alongside the citation so they can continue their exploration.
Args: query: Natural language search query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does so well on the risky aspects: it explains the published vs. author_draft version split, warns that draft page numbers do NOT match journal pagination, enumerates locator kinds with their citation consequences, and mandates copying bluebook_citation verbatim. What it omits is operational behavior — result limits, pagination, query syntax, or empty-result behavior — which an agent also needs to invoke it reliably.
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?
Front-loaded and cleanly organized: corpus scope, then when-to-use with alternatives, then return-field semantics. It is long, and since an output schema exists the field-by-field enumeration partly duplicates structured data; however the citation-fidelity and draft-pagination rules there are behavioral guidance the schema would not convey, so most of the length earns its place.
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?
Given a single-parameter search with an output schema and three sibling tools, the description covers everything needed: what the corpus holds, when to prefer it over web search or siblings, and how to interpret and cite results safely. An agent can select and call this tool correctly without reading anything else.
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 0% and there is only one parameter, documented in the description's Args block as 'Natural language search query'. That is accurate but adds essentially nothing beyond the schema's own 'query: string' — no guidance on phrasing, operators, or length. Adequate, not enriching.
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 precise verb+resource ('Search the published research corpus of the Engelberg Center') and scopes it concretely — named authors, ~300 works, enumerated subject domains. It also distinguishes itself from siblings by name (list_documents for catalog questions or cites_case lookups) and from web search.
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?
Explicit routing rules: 'ALWAYS search this corpus when a question names one of these authors or involves IP law doctrine...'; use alongside web search rather than instead of it, with the reason given; and two named alternative paths (list_documents(cites_case=...) and list_documents for catalog questions). This is about as complete as when-to-use guidance gets.
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.
4 tool updates
- First observed
fetch - First observed
fetch_document - First observed
list_documents - First observed
search
Related MCP Connectors
Cited, confidence-stamped patent intelligence over US university tech-transfer out-licensing.
USPTO patent search and prior art lookup. Not legal advice
Source-linked research on U.S. judges, courts, cases, and judicial analytics.
Neutral referee for legal-AI output: flags orphan quotes and uncited claims. Not legal advice.
Related MCP Servers
- AlicenseAqualityAmaintenancePublic-record corpus of AI litigation, regulation, and enforcement, anchored to EveryAILaw.839 npmMIT

SciWeave MCP Serverofficial
FlicenseNot gradedqualityDmaintenanceGround Claude, ChatGPT, Cursor, and Windsurf in 300M scientific works — every citation a verifiable DOI.-- AlicenseNot gradedqualityDmaintenanceUS patent search, full-text retrieval, claim extraction, citation graph, and weekly grant alerts for R\&D, biotech, and IP-law audiences.MIT
- AlicenseNot gradedqualityAmaintenanceCite-grade German legal-text infrastructure for LLM agents, providing access to federal, Länder, and EU laws with cryptographic provenance.51 PyPI2Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.