DatasheetVend MCP
An MCP server that extracts engineering datasheets into machine-readable JSON contracts and KiCad CAD files. It provides tools for decoding part numbers, extracting pinouts, analog specs, thermal limits, and generating component twins with source-grounded confidence scores.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://datasheetvend.com/api/mcpWhat you can do with it
- Extract datasheet pinouts and pin cautions
- Generate KiCad schematic symbols and footprints
- Decode manufacturer part numbers
- Extract absolute maximum ratings and timing characteristics
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- datasheetvend 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 24 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
24 advertised
datasheetvend_extract_document_map — Map a datasheet (deterministic index)
Build the Document Map of a datasheet PDF: a deterministic, machine-readable index of WHERE the topics live (pinout, package, mechanical, electrical, timing, thermal, absolute_max, registers, cautions …) and WHAT each page physically looks like (table / prose / vector_drawing / raster_image / blank / honest unknown), including a per-page geometry census (vector paths, ruling lines, raster coverage). No LLM is involved — the same document yields the same map, cached by SHA-256, so repeat calls are served from the cache. USE IT FIRST, before reading any page of a datasheet: read the candidate pages it recommends and pick your tool per page from anatomy.dominant_form. The result is wrapped as { contractVersion, documentRef, review, map }; inside `map` it names `map.document.total_pages` (the physical page count) and, per topic, `map.module_targets[].primary_pages` — so it answers 'how many pages' and points to the pages likely to hold the absolute-max ratings / pinout / package drawing (a primary page can miss, so read the candidates and check the warnings). Do NOT use it to get pin names, dimensions, or ratings — it contains no extracted values (use datasheetvend_extract_pinout for pins). Page numbers are physical 1-based PDF pages, not printed labels. Check review.required and the warnings before trusting a degraded map.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve).."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contractVersion",
"documentRef",
"cached",
"review",
"map"
],
"properties": {
"map": {
"type": "object",
"description": "The versioned Document Map agent delivery envelope (document_map_agent_v1): document.{total_pages,sha256}, module_targets[], toc[], page_grid_summary, warnings. The top-level envelope also carries `cached` (true on a repeat call for the same document).",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"cached": {
"type": "boolean",
"description": "True when served from the deterministic SHA-256 cache"
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Review reasons if required"
},
"required": {
"type": "boolean",
"description": "Whether human review is required"
}
},
"additionalProperties": false
},
"documentRef": {
"type": "string",
"description": "Echo of the documentPath/URL that was mapped"
},
"contractVersion": {
"type": "string",
"description": "Contract schema identifier: dmap_evidence_v1"
}
},
"additionalProperties": false
}{
"title": "Map a datasheet (deterministic index)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_read_document_map_instructions — Document Map usage instructions
Return the versioned usage instructions for Document Map consumers: the binding rule (SHA-256 + physical pages), field semantics, the dominant_form action table, and the measured routing discipline. Call once per session before working with maps from datasheetvend_extract_document_map; do not call repeatedly — the text is static per contract version.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"instructions"
],
"properties": {
"instructions": {
"type": "string",
"description": "The Document Map markdown guidelines and dominant_form action matrix"
}
},
"additionalProperties": false
}{
"title": "Document Map usage instructions",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_inspect_document_page — Inspect one mapped page (Tier-2 detail)
Tier-2 detail for ONE page of an already-mapped datasheet: the full measured anatomy (text metrics, MuPDF geometry census, structural geometry signals), the page's own headings and first lines, and which modules claim the page. Use it AFTER datasheetvend_extract_document_map, when the Tier-1 index says a page matters and its one-line summary is not enough. Pass the document.sha256 from the map (served free from cache). Set include_physical=true ONLY when you truly need the raw positioned tokens/vector paths — that payload can weigh hundreds of KB for one dense page. Read-only; never rebuilds, never bills.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentRef",
"page"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1,
"description": "Physical 1-based PDF page number to inspect."
},
"documentRef": {
"type": "string",
"minLength": 1,
"description": "The document.sha256 from a prior datasheetvend_extract_document_map result (preferred), or the same document path/URL."
},
"include_physical": {
"type": "boolean",
"description": "Include the raw MuPDF physical reconstruction (positioned tokens, vector paths). Heavy — default false."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"cached",
"status"
],
"properties": {
"page": {
"type": "number",
"description": "status page_out_of_range: the page that was asked for"
},
"cached": {
"type": "boolean",
"description": "Whether served from the Document Map cache"
},
"status": {
"enum": [
"ok",
"page_out_of_range"
],
"type": "string",
"description": "ok, or page_out_of_range when the map has no such page"
},
"inspection": {
"type": "object",
"description": "status ok: document_map_page_inspection_v1 (page, form, headings, claimed_by_modules, anatomy, physical_map)",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"total_pages": {
"type": [
"number",
"null"
],
"description": "status page_out_of_range: the map's page count"
}
},
"additionalProperties": false
}{
"title": "Inspect one mapped page (Tier-2 detail)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_pinout — Extract datasheet pinout
Extract a component's pin/pad table from a datasheet PDF as verifiable, provenance-tracked evidence — not raw PDF text to re-interpret. Returns a PinoutEvidence document (contract pinout_evidence_v1): the canonical pins and special pads with names/types/functions. It also RESOLVES THE PACKAGE from the terminals — `package.family`, `package.variant` (e.g. SOT-223, TQFP-32) and `package.pin_count` — so use this tool to answer package-variant and pin-count questions, not extract_package_dimensions (mechanical geometry) or decode_part_number (ordering codes). A review-state flags when the result must be human-checked (e.g. no pins recovered, or the module raised warnings). Prefer this over reading the PDF yourself; trust `review.required` before acting. Runs DatasheetVend Fast Extraction: a page scout routes targeted reads of the pin tables, cross-checked against the package drawing where the document prints one, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot extract the pinout, the slower deep engine re-runs pinout alone (engine.runtime is then `monolith_rescue`; a rescue can take several minutes, so set a client timeout of 10 minutes). Only if that also fails does it come back as an error with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a datasheet that covers several parts."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
},
"packageSelection": {
"type": [
"string",
"null"
],
"description": "Optional package/variant (e.g. 'LQFP48') when the datasheet lists more than one; Fast Extraction reads that package's pin column."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contractVersion",
"documentRef",
"review",
"evidence"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Review reasons if required"
},
"required": {
"type": "boolean",
"description": "Whether human review is required before CAD integration"
}
},
"additionalProperties": false
},
"evidence": {
"type": "object",
"description": "The pinout module's canonical output: component, package (family/variant/pin_count), pins[] with capability mappings, special_pads[], enriched_fields, normalized_output, engineering_summary, warnings.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"documentRef": {
"type": "string",
"description": "Echo of the documentPath/URL that was extracted"
},
"contractVersion": {
"type": "string",
"description": "Contract schema identifier: pinout_evidence_v1"
}
},
"additionalProperties": false
}{
"title": "Extract datasheet pinout",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_thermal_limits — Extract thermal resistance and operating limits
Extract thermal characteristics: junction-to-ambient (θJA) and junction-to-case (θJC) thermal resistance, power dissipation limits, and operating/junction/storage temperature ranges — with the datasheet page where one was recorded. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract thermal resistance and operating limits",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_absolute_max — Extract absolute maximum ratings
Extract the Absolute Maximum Ratings: never-exceed supply/pin voltages, max currents, and storage temperatures. Use extract_logic_levels for the OPERATING supply range, not these stress limits. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract absolute maximum ratings",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_logic_levels — Extract DC logic levels and operating conditions
Extract DC electrical characteristics: VIH/VIL/VOH/VOL thresholds, Schmitt hysteresis, AND the VCC/VDD operating supply voltage range. Use this for supply-range questions; extract_absolute_max gives never-exceed limits. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract DC logic levels and operating conditions",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_timing_characteristics — Extract AC timing characteristics
Extract AC timing: setup/hold (tSU, tH), propagation delays, maximum clock frequencies (fMAX), rise/fall times, and bus timing. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract AC timing characteristics",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_register_map — Extract hardware register map
Extract the register map: memory addresses, reset values, access permissions (RO/RW/W1C), and per-bit field definitions. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract hardware register map",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_package_dimensions — Extract package dimensions and land geometry
Extract mechanical package outline dimensions (D, E, A, A1, e, L, b) and a nominal land geometry estimate in the spirit of IPC-7351B (review-level, not a manufacturer land pattern). For the package variant/pin count from the pin table, prefer extract_pinout. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract package dimensions and land geometry",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_decode_part_number — Decode manufacturer ordering part numbers
Decode the ordering nomenclature: per-position suffix meanings (temp grade, package, speed, packaging) and, where the datasheet's ordering information supports it, the enumerated orderable_part_numbers list — the direct answer to 'which/how many orderable part numbers'. Codes the document's ordering legend lists that the decode lacks come back as deterministic_harvest_only_rules, each with its source page: text-layer evidence to check, not decoded rules. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Decode manufacturer ordering part numbers",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_peripheral_matrix — Extract on-chip peripheral matrix
Extract the on-chip peripheral inventory, one row per instance, in 13 classes: serial/communication (UART/USART, SPI, I2C, CAN, USB, Ethernet, SDIO, I2S/SAI), analog blocks (ADC, DAC, comparator, op-amp, voltage reference, temperature sensor), timers and watchdogs, DMA, security/math accelerators (crypto, RNG, CRC), external memory interfaces (FMC/FSMC/EMC, memory-mapped QSPI), display/camera/touch, interrupt controllers, GPIO, clock/reset, low-power modes, debug/trace and device identity. Each row carries the datasheet page it was read from, where one was recorded. For ADC/DAC/comparator electrical specs (resolution, sampling rate, INL/DNL, propagation delay) use datasheetvend_extract_analog_specs. For per-mode current draw, wakeup timing, and reset/brown-out threshold voltages use datasheetvend_extract_power_domains. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract on-chip peripheral matrix",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_analog_specs — Extract analog domain specifications (ADC/DAC, Op-Amps, VREF)
Extract analog conversion and signal-conditioning specs: ADC/DAC resolution, sampling rates (MSPS/kSPS), channel counts, input-voltage ranges, static non-linearity (INL/DNL), dynamic specs (ENOB, SINAD, SNR, SFDR, THD), operational amplifiers (GBW, slew rate, rail-to-rail, CMRR/PSRR), internal voltage references (nominal voltage, tempco ppm/°C), and operating supply/temp envelopes, plus comparator propagation delay and hysteresis. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract analog domain specifications (ADC/DAC, Op-Amps, VREF)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_power_domains — Extract power domains and consumption
Extract power supply domains (VDD/VDDA/VBAT), low-power/sleep modes and their consumption, and battery-backup configuration. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract power domains and consumption",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_passive_bom — Extract passive support BOM
Extract the recommended passive support components: decoupling/bypass capacitors, crystal load caps, and pull-up/down resistors, with their values and the pins they connect to. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract passive support BOM",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_pin_cautions — Extract pin cautions and design rules
Extract hardware design cautions: bootstrap/mode-strapping requirements, 5V-tolerant vs 3.3V-only pin boundaries, reset/debug pin precautions (NRST filtering, SWD pull-ups), oscillator/crystal PCB guardrails, analog/power-domain isolation (VDDA/VBAT), and unconnected/reserved-pin handling. Each caution row includes source_page, source_text_snippet, and verified source_evidence bounding box coordinates ([x0, y0, x1, y1] in PDF points and normalized 0..1000 space) for visual inspector auditability. Runs DatasheetVend Fast Extraction: a page scout routes targeted model reads and the module's own deterministic readers, then the same normalization and completion checks as a dashboard job finish the result, usually in seconds; `engine` names the engine on every result. If Fast Extraction cannot complete the module, the slower deep engine re-runs that module alone (engine.runtime is then `monolith_rescue`; the result says so, and it is billed as delivered). A rescue can take several minutes, so set a client timeout of 10 minutes. Only if the deep engine also cannot deliver does the module return status FAILED with the reason.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate a multi-part datasheet."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"module_id",
"status",
"review",
"extracted_data",
"canonical_output",
"engineering_summary",
"warnings"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Why review is required, if it is"
},
"required": {
"type": "boolean",
"description": "Whether a human should verify before trusting this wholesale"
}
},
"additionalProperties": false
},
"status": {
"type": "string",
"description": "The module's completion status (for example approved, approved_with_warnings or empty), or FAILED when Fast Extraction could not extract the module"
},
"contract": {
"type": "string",
"description": "Contract id, e.g. thermal_evidence_v2"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Public engineering warnings from the extraction."
},
"module_id": {
"type": "string",
"description": "Canonical module id"
},
"extracted_data": {
"description": "The module's extraction after its own normalization — values with the datasheet page they came from (source_page, where one was recorded) and, where the module provides them, confidence_score and source_text_snippet."
},
"canonical_output": {
"description": "The module's canonical (CAD-ready normalized) output block."
},
"engineering_summary": {
"type": [
"string",
"null"
],
"description": "Concise human-readable engineering summary, when emitted."
}
},
"additionalProperties": false
}{
"title": "Extract pin cautions and design rules",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_kicad_footprint — Extract KiCad PCB footprint (.kicad_mod)
Write a KiCad PCB footprint (.kicad_mod) from a datasheet's package mechanical drawing: pad geometry, pitch, thermal tabs and courtyard, using the datasheet's own recommended land pattern when it prints one, otherwise simplified IPC-7351B fillet math. Emitted files are loaded with kicad-cli (sym/fp upgrade) where it is installed, which is a file-format check, not a DRC or ERC. Only bundle_status "completed" (with final_readiness.physical_truth_approved true) means the placement was independently proven against this document; "needs_review" covers everything else that still produced a file, including one built from the KiCad library or JEDEC/IPC-7351B math instead of this document (see footprint_provenance).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate package variants."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve).."
},
"packageSelection": {
"type": [
"string",
"null"
],
"description": "Optional package/variant (e.g. 'LQFP48', 'SOIC8', 'QFN32')."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"manufacturer_part_number",
"package_variant",
"kicad_mod",
"validation",
"review",
"warnings",
"status",
"bundle_status",
"requested",
"inputs",
"status_detail",
"human_warnings",
"footprint_provenance",
"symbol_provenance",
"final_readiness"
],
"properties": {
"inputs": {
"type": "object",
"required": [
"filename"
],
"properties": {
"filename": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Review reasons if required"
},
"required": {
"type": "boolean",
"description": "Whether human review is required before fabrication"
}
},
"additionalProperties": false
},
"status": {
"enum": [
"COMPLETE",
"PARTIAL",
"NOT_PRESENT",
"FAILED"
],
"type": "string",
"description": "The pipeline's own run status. FAILED means nothing usable was produced and the credits for this call are refunded automatically."
},
"contract": {
"type": "string",
"description": "Contract schema identifier: kicad_evidence_v1"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Engineering warnings emitted during generation"
},
"kicad_mod": {
"type": [
"string",
"null"
],
"description": "Complete KiCad PCB footprint (.kicad_mod) file content, or null if withheld/not produced."
},
"requested": {
"type": "object",
"required": [
"part_name",
"package_selection"
],
"properties": {
"part_name": {
"type": [
"string",
"null"
]
},
"package_selection": {
"type": [
"string",
"null"
]
}
},
"description": "Exactly what the caller sent, kept distinct from the resolved identity above.",
"additionalProperties": false
},
"validation": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "kicad-cli file-load result (sym/fp upgrade — a format check, not a DRC)."
},
"bundle_status": {
"anyOf": [
{
"enum": [
"completed",
"needs_review",
"cannot_extract"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "completed = both requested files were proven against this document. needs_review = a run finished (or a fallback file was attached) without that proof. cannot_extract = nothing usable. null = the pipeline never reached a stage that could compute this."
},
"status_detail": {
"type": "object",
"required": [
"gaps",
"not_present_evidence",
"failed"
],
"properties": {
"gaps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"stage",
"severity",
"message"
],
"properties": {
"id": {
"type": "string"
},
"stage": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"type": "string"
}
},
"additionalProperties": false
}
},
"failed": {
"anyOf": [
{
"type": "object",
"required": [
"stage",
"reason",
"recoverable"
],
"properties": {
"stage": {
"type": "string"
},
"reason": {
"type": "string"
},
"recoverable": {
"type": "boolean"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"not_present_evidence": {
"anyOf": [
{
"type": "object",
"required": [
"pages_scanned",
"strongest_score",
"reason"
],
"properties": {
"reason": {
"type": "string"
},
"pages_scanned": {
"type": "array",
"items": {
"type": "number"
}
},
"strongest_score": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"human_warnings": {
"type": "array",
"items": {
"type": "object",
"required": [
"severity",
"area",
"message",
"action"
],
"properties": {
"area": {
"type": "string"
},
"action": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"enum": [
"info",
"review",
"blocked"
],
"type": "string"
}
},
"additionalProperties": false
}
},
"final_readiness": {
"anyOf": [
{
"type": "object",
"required": [
"physical_truth_approved",
"syntax_valid",
"native_kicad_valid",
"placement_structurally_valid",
"terminal_census_consistent",
"package_identity_consistent",
"dimension_evidence_coherent",
"placement_reconciliation_authority",
"blocking_reasons",
"review_reasons"
],
"properties": {
"syntax_valid": {
"type": "boolean",
"description": "The emitted file is well-formed for its type (kicad-cli loaded it)."
},
"review_reasons": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string",
"description": "Stable diagnostic code (never matched by prose)."
},
"detail": {
"type": "string",
"description": "Human-readable detail for this code."
}
},
"additionalProperties": false
}
},
"blocking_reasons": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string",
"description": "Stable diagnostic code (never matched by prose)."
},
"detail": {
"type": "string",
"description": "Human-readable detail for this code."
}
},
"additionalProperties": false
}
},
"native_kicad_valid": {
"type": "boolean",
"description": "kicad-cli accepted the file. Tooling acceptance only, not a design-rule or electrical check."
},
"physical_truth_approved": {
"type": "boolean",
"description": "The artifact may be presented as physically true. This is the ONLY field that means 'proven correct' — kicad-cli acceptance alone does not."
},
"terminal_census_consistent": {
"type": "boolean"
},
"dimension_evidence_coherent": {
"type": "boolean"
},
"package_identity_consistent": {
"type": "boolean"
},
"placement_structurally_valid": {
"type": "boolean",
"description": "The emitted pads reconcile with the resolved package's pad map."
},
"placement_reconciliation_authority": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The emit gate's full verdict. null when the pipeline never reached this stage."
},
"package_variant": {
"type": [
"string",
"null"
],
"description": "Resolved package code."
},
"symbol_provenance": {
"anyOf": [
{
"type": "object",
"required": [
"tier",
"confidence",
"reason"
],
"properties": {
"tier": {
"enum": [
"local_synthesis",
"library_fetch"
],
"type": "string"
},
"reason": {
"type": "string"
},
"confidence": {
"type": "number"
},
"library_id": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Set only when this file did NOT come from this document's own extraction (a KiCad-library match or JEDEC/IPC-7351B math instead). null means the file was built from this document."
},
"footprint_provenance": {
"anyOf": [
{
"type": "object",
"required": [
"tier",
"confidence",
"reason"
],
"properties": {
"tier": {
"enum": [
"local_synthesis",
"library_fetch"
],
"type": "string"
},
"reason": {
"type": "string"
},
"confidence": {
"type": "number"
},
"library_id": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Set only when this file did NOT come from this document's own extraction (a KiCad-library match or JEDEC/IPC-7351B math instead). null means the file was built from this document."
},
"manufacturer_part_number": {
"type": [
"string",
"null"
],
"description": "Resolved by the pipeline's identity resolution — not an echo of the input. See requested.part_name for what was sent."
}
},
"additionalProperties": false
}{
"title": "Extract KiCad PCB footprint (.kicad_mod)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_kicad_symbol — Extract KiCad schematic symbol (.kicad_sym)
Write a KiCad schematic symbol library (.kicad_sym) with logical pin groupings (Power, Ground, Reset, Clocks, GPIO, Analog, Bus interfaces) from a datasheet's pinout. Symbol layout is generated from the pin functions the pinout module resolved; there is no IEEE/IEC symbol-drawing standard applied. The emitted file is loaded with kicad-cli (sym upgrade) where it is installed, a file-format check, not a DRC or ERC.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate package variants."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve).."
},
"packageSelection": {
"type": [
"string",
"null"
],
"description": "Optional package/variant (e.g. 'LQFP48', 'SOIC8', 'QFN32')."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"manufacturer_part_number",
"package_variant",
"kicad_sym",
"review",
"warnings",
"status",
"bundle_status",
"requested",
"inputs",
"status_detail",
"human_warnings",
"footprint_provenance",
"symbol_provenance",
"final_readiness"
],
"properties": {
"inputs": {
"type": "object",
"required": [
"filename"
],
"properties": {
"filename": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Review reasons if required"
},
"required": {
"type": "boolean",
"description": "Whether human review is required"
}
},
"additionalProperties": false
},
"status": {
"enum": [
"COMPLETE",
"PARTIAL",
"NOT_PRESENT",
"FAILED"
],
"type": "string",
"description": "The pipeline's own run status. FAILED means nothing usable was produced and the credits for this call are refunded automatically."
},
"contract": {
"type": "string",
"description": "Contract schema identifier: kicad_evidence_v1"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Engineering warnings emitted during generation"
},
"kicad_sym": {
"type": [
"string",
"null"
],
"description": "Complete KiCad schematic symbol (.kicad_sym) file content, or null if withheld/not produced."
},
"requested": {
"type": "object",
"required": [
"part_name",
"package_selection"
],
"properties": {
"part_name": {
"type": [
"string",
"null"
]
},
"package_selection": {
"type": [
"string",
"null"
]
}
},
"description": "Exactly what the caller sent, kept distinct from the resolved identity above.",
"additionalProperties": false
},
"bundle_status": {
"anyOf": [
{
"enum": [
"completed",
"needs_review",
"cannot_extract"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "completed = both requested files were proven against this document. needs_review = a run finished (or a fallback file was attached) without that proof. cannot_extract = nothing usable. null = the pipeline never reached a stage that could compute this."
},
"status_detail": {
"type": "object",
"required": [
"gaps",
"not_present_evidence",
"failed"
],
"properties": {
"gaps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"stage",
"severity",
"message"
],
"properties": {
"id": {
"type": "string"
},
"stage": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"type": "string"
}
},
"additionalProperties": false
}
},
"failed": {
"anyOf": [
{
"type": "object",
"required": [
"stage",
"reason",
"recoverable"
],
"properties": {
"stage": {
"type": "string"
},
"reason": {
"type": "string"
},
"recoverable": {
"type": "boolean"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"not_present_evidence": {
"anyOf": [
{
"type": "object",
"required": [
"pages_scanned",
"strongest_score",
"reason"
],
"properties": {
"reason": {
"type": "string"
},
"pages_scanned": {
"type": "array",
"items": {
"type": "number"
}
},
"strongest_score": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"human_warnings": {
"type": "array",
"items": {
"type": "object",
"required": [
"severity",
"area",
"message",
"action"
],
"properties": {
"area": {
"type": "string"
},
"action": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"enum": [
"info",
"review",
"blocked"
],
"type": "string"
}
},
"additionalProperties": false
}
},
"final_readiness": {
"anyOf": [
{
"type": "object",
"required": [
"physical_truth_approved",
"syntax_valid",
"native_kicad_valid",
"placement_structurally_valid",
"terminal_census_consistent",
"package_identity_consistent",
"dimension_evidence_coherent",
"placement_reconciliation_authority",
"blocking_reasons",
"review_reasons"
],
"properties": {
"syntax_valid": {
"type": "boolean",
"description": "The emitted file is well-formed for its type (kicad-cli loaded it)."
},
"review_reasons": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string",
"description": "Stable diagnostic code (never matched by prose)."
},
"detail": {
"type": "string",
"description": "Human-readable detail for this code."
}
},
"additionalProperties": false
}
},
"blocking_reasons": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string",
"description": "Stable diagnostic code (never matched by prose)."
},
"detail": {
"type": "string",
"description": "Human-readable detail for this code."
}
},
"additionalProperties": false
}
},
"native_kicad_valid": {
"type": "boolean",
"description": "kicad-cli accepted the file. Tooling acceptance only, not a design-rule or electrical check."
},
"physical_truth_approved": {
"type": "boolean",
"description": "The artifact may be presented as physically true. This is the ONLY field that means 'proven correct' — kicad-cli acceptance alone does not."
},
"terminal_census_consistent": {
"type": "boolean"
},
"dimension_evidence_coherent": {
"type": "boolean"
},
"package_identity_consistent": {
"type": "boolean"
},
"placement_structurally_valid": {
"type": "boolean",
"description": "The emitted pads reconcile with the resolved package's pad map."
},
"placement_reconciliation_authority": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The emit gate's full verdict. null when the pipeline never reached this stage."
},
"package_variant": {
"type": [
"string",
"null"
],
"description": "Resolved package code."
},
"symbol_provenance": {
"anyOf": [
{
"type": "object",
"required": [
"tier",
"confidence",
"reason"
],
"properties": {
"tier": {
"enum": [
"local_synthesis",
"library_fetch"
],
"type": "string"
},
"reason": {
"type": "string"
},
"confidence": {
"type": "number"
},
"library_id": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Set only when this file did NOT come from this document's own extraction (a KiCad-library match or JEDEC/IPC-7351B math instead). null means the file was built from this document."
},
"footprint_provenance": {
"anyOf": [
{
"type": "object",
"required": [
"tier",
"confidence",
"reason"
],
"properties": {
"tier": {
"enum": [
"local_synthesis",
"library_fetch"
],
"type": "string"
},
"reason": {
"type": "string"
},
"confidence": {
"type": "number"
},
"library_id": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Set only when this file did NOT come from this document's own extraction (a KiCad-library match or JEDEC/IPC-7351B math instead). null means the file was built from this document."
},
"manufacturer_part_number": {
"type": [
"string",
"null"
],
"description": "Resolved by the pipeline's identity resolution — not an echo of the input. See requested.part_name for what was sent."
}
},
"additionalProperties": false
}{
"title": "Extract KiCad schematic symbol (.kicad_sym)",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_kicad_bundle — Extract complete KiCad CAD bundle
Generate a KiCad footprint (.kicad_mod) and schematic symbol (.kicad_sym) from a datasheet in one call. Both files are loaded with kicad-cli where it is installed (a file-format check, not a DRC/ERC) and passed through the same deterministic copper, courtyard, pin-1 and pad-placement checks the dashboard uses. bundle_status "completed" means both files were independently proven against this document; "needs_review" means a file was produced (possibly from the KiCad library or JEDEC/IPC-7351B math instead of this document — see footprint_provenance/symbol_provenance) without that proof; "cannot_extract" means nothing usable was produced, and the credits for this call are refunded automatically (status FAILED).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to disambiguate package variants."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve).."
},
"packageSelection": {
"type": [
"string",
"null"
],
"description": "Optional package/variant (e.g. 'LQFP48', 'SOIC8', 'QFN32')."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"manufacturer_part_number",
"package_variant",
"files",
"validation_report",
"review",
"warnings",
"status",
"bundle_status",
"requested",
"inputs",
"status_detail",
"human_warnings",
"footprint_provenance",
"symbol_provenance",
"final_readiness"
],
"properties": {
"files": {
"type": "object",
"required": [
"footprint_kicad_mod",
"symbol_kicad_sym"
],
"properties": {
"symbol_kicad_sym": {
"type": [
"string",
"null"
],
"description": "Complete .kicad_sym content"
},
"footprint_kicad_mod": {
"type": [
"string",
"null"
],
"description": "Complete .kicad_mod content"
}
},
"additionalProperties": false
},
"inputs": {
"type": "object",
"required": [
"filename"
],
"properties": {
"filename": {
"type": [
"string",
"null"
]
}
},
"additionalProperties": false
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Review reasons if required"
},
"required": {
"type": "boolean",
"description": "Whether human review is required"
}
},
"additionalProperties": false
},
"status": {
"enum": [
"COMPLETE",
"PARTIAL",
"NOT_PRESENT",
"FAILED"
],
"type": "string",
"description": "The pipeline's own run status. FAILED means nothing usable was produced and the credits for this call are refunded automatically."
},
"contract": {
"type": "string",
"description": "Contract schema identifier: kicad_evidence_v1"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Engineering warnings"
},
"requested": {
"type": "object",
"required": [
"part_name",
"package_selection"
],
"properties": {
"part_name": {
"type": [
"string",
"null"
]
},
"package_selection": {
"type": [
"string",
"null"
]
}
},
"description": "Exactly what the caller sent, kept distinct from the resolved identity above.",
"additionalProperties": false
},
"bundle_status": {
"anyOf": [
{
"enum": [
"completed",
"needs_review",
"cannot_extract"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "completed = both requested files were proven against this document. needs_review = a run finished (or a fallback file was attached) without that proof. cannot_extract = nothing usable. null = the pipeline never reached a stage that could compute this."
},
"status_detail": {
"type": "object",
"required": [
"gaps",
"not_present_evidence",
"failed"
],
"properties": {
"gaps": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"stage",
"severity",
"message"
],
"properties": {
"id": {
"type": "string"
},
"stage": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"type": "string"
}
},
"additionalProperties": false
}
},
"failed": {
"anyOf": [
{
"type": "object",
"required": [
"stage",
"reason",
"recoverable"
],
"properties": {
"stage": {
"type": "string"
},
"reason": {
"type": "string"
},
"recoverable": {
"type": "boolean"
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
},
"not_present_evidence": {
"anyOf": [
{
"type": "object",
"required": [
"pages_scanned",
"strongest_score",
"reason"
],
"properties": {
"reason": {
"type": "string"
},
"pages_scanned": {
"type": "array",
"items": {
"type": "number"
}
},
"strongest_score": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"additionalProperties": false
},
"human_warnings": {
"type": "array",
"items": {
"type": "object",
"required": [
"severity",
"area",
"message",
"action"
],
"properties": {
"area": {
"type": "string"
},
"action": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"enum": [
"info",
"review",
"blocked"
],
"type": "string"
}
},
"additionalProperties": false
}
},
"final_readiness": {
"anyOf": [
{
"type": "object",
"required": [
"physical_truth_approved",
"syntax_valid",
"native_kicad_valid",
"placement_structurally_valid",
"terminal_census_consistent",
"package_identity_consistent",
"dimension_evidence_coherent",
"placement_reconciliation_authority",
"blocking_reasons",
"review_reasons"
],
"properties": {
"syntax_valid": {
"type": "boolean",
"description": "The emitted file is well-formed for its type (kicad-cli loaded it)."
},
"review_reasons": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string",
"description": "Stable diagnostic code (never matched by prose)."
},
"detail": {
"type": "string",
"description": "Human-readable detail for this code."
}
},
"additionalProperties": false
}
},
"blocking_reasons": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"detail"
],
"properties": {
"code": {
"type": "string",
"description": "Stable diagnostic code (never matched by prose)."
},
"detail": {
"type": "string",
"description": "Human-readable detail for this code."
}
},
"additionalProperties": false
}
},
"native_kicad_valid": {
"type": "boolean",
"description": "kicad-cli accepted the file. Tooling acceptance only, not a design-rule or electrical check."
},
"physical_truth_approved": {
"type": "boolean",
"description": "The artifact may be presented as physically true. This is the ONLY field that means 'proven correct' — kicad-cli acceptance alone does not."
},
"terminal_census_consistent": {
"type": "boolean"
},
"dimension_evidence_coherent": {
"type": "boolean"
},
"package_identity_consistent": {
"type": "boolean"
},
"placement_structurally_valid": {
"type": "boolean",
"description": "The emitted pads reconcile with the resolved package's pad map."
},
"placement_reconciliation_authority": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "The emit gate's full verdict. null when the pipeline never reached this stage."
},
"package_variant": {
"type": [
"string",
"null"
],
"description": "Resolved package code."
},
"symbol_provenance": {
"anyOf": [
{
"type": "object",
"required": [
"tier",
"confidence",
"reason"
],
"properties": {
"tier": {
"enum": [
"local_synthesis",
"library_fetch"
],
"type": "string"
},
"reason": {
"type": "string"
},
"confidence": {
"type": "number"
},
"library_id": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Set only when this file did NOT come from this document's own extraction (a KiCad-library match or JEDEC/IPC-7351B math instead). null means the file was built from this document."
},
"validation_report": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
],
"description": "kicad-cli file-load result (sym/fp upgrade — a format check, not a DRC)."
},
"footprint_provenance": {
"anyOf": [
{
"type": "object",
"required": [
"tier",
"confidence",
"reason"
],
"properties": {
"tier": {
"enum": [
"local_synthesis",
"library_fetch"
],
"type": "string"
},
"reason": {
"type": "string"
},
"confidence": {
"type": "number"
},
"library_id": {
"type": "string"
}
},
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Set only when this file did NOT come from this document's own extraction (a KiCad-library match or JEDEC/IPC-7351B math instead). null means the file was built from this document."
},
"manufacturer_part_number": {
"type": [
"string",
"null"
],
"description": "Resolved by the pipeline's identity resolution — not an echo of the input. See requested.part_name for what was sent."
}
},
"additionalProperties": false
}{
"title": "Extract complete KiCad CAD bundle",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_extract_altium_bundle — Parse an Altium Designer ASCII footprint export
Parse an Altium Designer ASCII footprint export (a text file — NOT a binary .PcbLib/.SchLib) and extract the footprint name, per-pad copper geometry (designator, name, coordinates, size, shape), layer map, and this module's own review/audit verdict. This reads an EXISTING Altium file; it does not build one from a datasheet PDF (for that, see the Altium Assist output pack on a completed extraction job). No model call — deterministic parsing only.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"partName": {
"type": [
"string",
"null"
],
"description": "Optional component name / MPN."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to an Altium ASCII footprint export (a text file, not a binary .PcbLib/.SchLib). The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them); a local filesystem path works solely in local stdio mode (npm run mcp:serve).."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"manufacturer_part_number",
"footprint_name",
"pads",
"review",
"warnings",
"status",
"delivery_status",
"warning_details",
"units",
"source_format_detected",
"footprints_detected",
"other_footprint_names",
"layer_map"
],
"properties": {
"pads": {
"type": "array",
"items": {
"type": "object",
"required": [
"designator",
"name",
"x",
"y",
"width",
"height",
"shape"
],
"properties": {
"x": {
"type": [
"number",
"null"
],
"description": "Pad center X, exactly as written in the source file — see units. Never converted."
},
"y": {
"type": [
"number",
"null"
],
"description": "Pad center Y, exactly as written in the source file — see units. Never converted."
},
"name": {
"type": [
"string",
"null"
],
"description": "Pad signal name"
},
"shape": {
"type": [
"string",
"null"
],
"description": "Pad shape (ROUND, RECTANGULAR, OCTAGONAL, SMD)"
},
"width": {
"type": [
"number",
"null"
],
"description": "Pad copper width, exactly as written in the source file — see units. Never converted."
},
"height": {
"type": [
"number",
"null"
],
"description": "Pad copper height, exactly as written in the source file — see units. Never converted."
},
"designator": {
"type": "string",
"description": "Pad designator / pin number"
}
},
"additionalProperties": false
}
},
"units": {
"enum": [
"mm",
"mil",
"inch",
"unknown"
],
"type": "string",
"description": "Coordinate/size units exactly as the source file stated them. Values are NEVER converted — 'unknown' means the file did not state a unit, not that the numbers are millimetres."
},
"review": {
"type": "object",
"required": [
"required",
"reasons"
],
"properties": {
"reasons": {
"type": "array",
"items": {
"type": "string"
},
"description": "Review reasons if required"
},
"required": {
"type": "boolean",
"description": "Whether human review is required"
}
},
"additionalProperties": false
},
"status": {
"enum": [
"OK",
"FAILED"
],
"type": "string",
"description": "FAILED means the credits for this call are refunded automatically: the file was unreadable, a recognized-but-unsupported format, or contained no footprint."
},
"contract": {
"type": "string",
"description": "Contract schema identifier: altium_evidence_v1"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"description": "Engineering warnings emitted"
},
"layer_map": {
"type": "array",
"items": {
"type": "object",
"required": [
"layer",
"pad_count",
"line_count",
"text_count"
],
"properties": {
"layer": {
"type": "string"
},
"pad_count": {
"type": "number"
},
"line_count": {
"type": "number"
},
"text_count": {
"type": "number"
}
},
"additionalProperties": false
}
},
"footprint_name": {
"type": [
"string",
"null"
],
"description": "Extracted Altium footprint pattern name"
},
"delivery_status": {
"anyOf": [
{
"enum": [
"approved",
"approved_with_warnings",
"blocked"
],
"type": "string"
},
{
"type": "null"
}
],
"description": "The module's own audit verdict for this file — the same one a REST/dashboard job would carry."
},
"warning_details": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"severity",
"message"
],
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
},
"severity": {
"enum": [
"critical",
"review",
"info"
],
"type": "string"
}
},
"additionalProperties": false
}
},
"footprints_detected": {
"type": "number",
"description": "How many footprint blocks the file contained. Only one (the best match) is returned above."
},
"other_footprint_names": {
"type": "array",
"items": {
"type": "string"
},
"description": "Names of the OTHER footprints in the file, not returned above — nothing is silently dropped."
},
"source_format_detected": {
"enum": [
"line_block_ascii",
"record_pipe_ascii",
"ole_compound_binary",
"unrecognized_text"
],
"type": "string",
"description": "line_block_ascii is the only format this tool actually reads."
},
"manufacturer_part_number": {
"type": [
"string",
"null"
],
"description": "The partName you sent, or the component name text found in the file — never the footprint's own name."
}
},
"additionalProperties": false
}{
"title": "Parse an Altium Designer ASCII footprint export",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_list_hardware_modules — List the hardware intelligence modules
List all available hardware extraction modules supported by DatasheetVend (KiCad footprints/symbols, Universal Pinout, Thermal Limits, Absolute Maximum Ratings, Timing Characteristics, Logic Levels, Register Maps, Decoupling Passive BOM, Part Number Decoders, etc.).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"total_modules",
"modules"
],
"properties": {
"modules": {
"type": "array",
"items": {
"type": "object",
"required": [
"module_id",
"schema_version",
"status",
"description",
"notes"
],
"properties": {
"notes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Engineering specifications"
},
"status": {
"type": "string",
"description": "Deployment status"
},
"module_id": {
"type": "string",
"description": "Unique module identifier"
},
"description": {
"type": "string",
"description": "Module description and engineering outputs"
},
"schema_version": {
"type": "string",
"description": "Schema contract version"
}
},
"additionalProperties": false
}
},
"total_modules": {
"type": "number",
"description": "Total number of available hardware extraction modules"
}
},
"additionalProperties": false
}{
"title": "List the hardware intelligence modules",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_list_component_twins — List your datasheets that have a component twin
List the datasheets in your DatasheetVend account that have a Unified Component Model (UCM) digital twin: the facts DatasheetVend already extracted from each datasheet — pins, supply rails, interfaces, registers and whole-part limits — combined across the extraction runs stored for it. Returns each datasheet's exact name, the modules its twin draws on, how many runs it has and when it was last run. Reads stored results only: never extracts, never bills. Needs a DatasheetVend API key. Pass a returned name to datasheetvend_get_component_twin. To twin a datasheet the account has not extracted, use datasheetvend_build_component_twin.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "How many datasheets to return, newest run first. Default 20."
},
"search": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Part of the datasheet's file name to filter by, case-insensitive (for example 'ATmega328P')."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"total",
"datasheets",
"next_step"
],
"properties": {
"total": {
"type": "number",
"description": "Datasheets with a twin that match, before the limit"
},
"contract": {
"type": "string",
"description": "Contract id: ucm_twin_list_v1"
},
"next_step": {
"type": "string"
},
"datasheets": {
"type": "array",
"items": {
"type": "object",
"required": [
"datasheet",
"modules",
"module_count",
"runs",
"last_run_at",
"never_extracted"
],
"properties": {
"runs": {
"type": "number",
"description": "Extraction runs stored for this datasheet"
},
"modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Module ids with stored output for this datasheet"
},
"datasheet": {
"type": "string",
"description": "Exact datasheet name — pass it to the get tool"
},
"last_run_at": {
"type": "string",
"description": "ISO time of the newest run"
},
"module_count": {
"type": "number"
},
"never_extracted": {
"type": "array",
"items": {
"type": "string"
},
"description": "Twin-ready modules never extracted for this datasheet"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}{
"title": "List your datasheets that have a component twin",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_get_component_twin — Read a datasheet's component twin
Read the Unified Component Model (UCM) digital twin of one datasheet already extracted with DatasheetVend. Every fact comes with a check ('passed', 'needs_review', 'disagrees', 'failed_sanity_check') and, where the extraction recorded one, its datasheet page, filed where it belongs: pins, whole_part (temperatures, absolute limits, package, ordering code), interfaces_rails (I2C/SPI/clock/ADC requirements and supply-rail values), registers (the register map) and checks. Call it first with no options for the summary, then ask for `sections`, one `pin` (by number, name or alternate function) or a `search` term so the answer stays small. Treat facts that did not pass as unverified and cite their page. Reads stored results only: never extracts, never bills. Needs a DatasheetVend API key; find datasheet names with datasheetvend_list_component_twins. To twin a datasheet the account has not extracted, use datasheetvend_build_component_twin.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"datasheet"
],
"properties": {
"pin": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "One pin by number, name or alternate function (for example '27', 'PC4' or 'SDA'): every fact that reaches it — its own and those of its rails and interfaces."
},
"search": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Only facts whose parameter, symbol, statement or node contains this text, case-insensitive (for example 'storage temperature' or 'TWCR'). With no sections given, searches pins, whole_part, interfaces_rails and registers."
},
"sections": {
"type": "array",
"items": {
"enum": [
"pins",
"whole_part",
"interfaces_rails",
"registers",
"checks"
],
"type": "string"
},
"maxItems": 5,
"description": "Parts of the twin to include besides the summary: pins (each pin's own facts), whole_part, interfaces_rails, registers, checks (disagreements, failed sanity checks, facts to review, facts that name no pin). Omit for the summary only."
},
"datasheet": {
"type": "string",
"maxLength": 260,
"minLength": 1,
"description": "The datasheet name exactly as datasheetvend_list_component_twins returns it. A unique part of the name also works."
},
"max_facts": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Cap on facts returned across the pin and sections (default 200). `truncated` says when it was reached."
},
"only_passed": {
"type": "boolean",
"description": "Only facts that passed every check. Default false: every fact comes with its check."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"datasheet",
"part",
"built_from",
"counts",
"checks",
"places",
"how_to_read",
"sections",
"pin",
"truncated",
"warnings"
],
"properties": {
"pin": {
"description": "The requested pin with the facts that reach it, or null when no pin was asked for."
},
"part": {
"type": "object",
"required": [
"part_number",
"vendor",
"family",
"package",
"package_pin_count"
],
"properties": {
"family": {
"type": [
"string",
"null"
]
},
"vendor": {
"type": [
"string",
"null"
]
},
"package": {
"type": [
"string",
"null"
]
},
"part_number": {
"type": [
"string",
"null"
]
},
"package_pin_count": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
"checks": {
"type": "object",
"required": [
"passed",
"needs_review",
"disagrees",
"failed_sanity_check",
"disagreements"
],
"properties": {
"passed": {
"type": "number"
},
"disagrees": {
"type": "number"
},
"needs_review": {
"type": "number"
},
"disagreements": {
"type": "number",
"description": "Parameters holding more than one value"
},
"failed_sanity_check": {
"type": "number"
}
},
"additionalProperties": false
},
"counts": {
"type": "object",
"required": [
"facts",
"pins",
"rails",
"interfaces",
"registers"
],
"properties": {
"pins": {
"type": "number"
},
"facts": {
"type": "number"
},
"rails": {
"type": "number"
},
"registers": {
"type": "number"
},
"interfaces": {
"type": "number"
}
},
"additionalProperties": false
},
"places": {
"type": "object",
"required": [
"on_pins",
"whole_part",
"interfaces",
"rails",
"registers",
"not_placed"
],
"properties": {
"rails": {
"type": "number"
},
"on_pins": {
"type": "number"
},
"registers": {
"type": "number"
},
"interfaces": {
"type": "number"
},
"not_placed": {
"type": "number"
},
"whole_part": {
"type": "number"
}
},
"additionalProperties": false
},
"contract": {
"type": "string",
"description": "Contract id: ucm_twin_v1"
},
"sections": {
"type": "object",
"description": "The requested sections: pins, whole_part, interfaces_rails, registers, checks — facts with their check and, where recorded, their page.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"datasheet": {
"type": "string"
},
"truncated": {
"type": "boolean"
},
"built_from": {
"type": "object",
"required": [
"modules",
"runs"
],
"properties": {
"runs": {
"type": "number",
"description": "Extraction runs the twin draws on"
},
"modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Module ids combined into this twin"
}
},
"additionalProperties": false
},
"how_to_read": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Read a datasheet's component twin",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}datasheetvend_build_component_twin — Extract a datasheet into a component twin
Extract a datasheet with DatasheetVend Fast Extraction and return its Unified Component Model (UCM) digital twin in one call. Fast Extraction runs once for every requested module, and the modules' facts combine into one twin, filed where they belong: pins, whole_part (temperatures, absolute limits, package, ordering code), interfaces_rails, registers and checks — every fact with a check ('passed', 'needs_review', 'disagrees', 'failed_sanity_check') and, where recorded, its datasheet page. Returns the same ucm_twin_v1 view as datasheetvend_get_component_twin, with every section unless you ask for sections, one pin or a search, plus an `extraction` block: the engine, `rescued_features` (modules Fast Extraction could not complete at turbo speed that the standard deep engine extracted instead, slower for just those modules -- still billed and still in the twin), the modules NEITHER engine could extract (no credits charged for those), the credits charged and stored=false. Treat facts that did not pass as unverified and cite their page. The twin is NOT saved to your account: datasheetvend_get_component_twin and the dashboard will not find it, and calling again extracts and bills again. Needs a DatasheetVend API key. Costs the requested modules' credits: pinout (1 credit), absolute_max (2 credits), pin_cautions (2 credits), logic_levels (2 credits), thermal (2 credits), timing (2 credits), register_map (3 credits), peripheral_matrix (2 credits), power_battery (1 credit), part_decoder (2 credits), cad_normalized (1 credit, extracted as footprint); all of them 20 credits.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"documentPath"
],
"properties": {
"pin": {
"type": "string",
"maxLength": 40,
"minLength": 1,
"description": "One pin by number, name or alternate function (for example '27', 'PC4' or 'SDA'): every fact that reaches it — its own and those of its rails and interfaces."
},
"search": {
"type": "string",
"maxLength": 80,
"minLength": 1,
"description": "Only facts whose parameter, symbol, statement or node contains this text, case-insensitive (for example 'storage temperature' or 'TWCR'). With no sections given, searches pins, whole_part, interfaces_rails and registers."
},
"modules": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 20,
"minItems": 1,
"description": "Twin modules to extract and combine: pinout, absolute_max, pin_cautions, logic_levels, thermal, timing, register_map, peripheral_matrix, power_battery, part_decoder, cad_normalized. Omit for all of them. Each costs its module credits."
},
"partName": {
"type": [
"string",
"null"
],
"description": "Optional part number / MPN to target in a datasheet that covers several parts."
},
"sections": {
"type": "array",
"items": {
"enum": [
"pins",
"whole_part",
"interfaces_rails",
"registers",
"checks"
],
"type": "string"
},
"maxItems": 5,
"description": "Parts of the twin to include besides the summary: pins, whole_part, interfaces_rails, registers, checks. Omit, with no pin or search, for every section — this twin is not stored, so there is no second read."
},
"max_facts": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Cap on facts returned across the pin and sections (default 200). `truncated` says when it was reached."
},
"only_passed": {
"type": "boolean",
"description": "Only facts that passed every check. Default false: every fact comes with its check."
},
"documentPath": {
"type": "string",
"minLength": 1,
"description": "https:// URL to the datasheet PDF. The remote /api/mcp endpoint accepts ONLY https:// URLs (it downloads them)."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"contract",
"datasheet",
"part",
"built_from",
"counts",
"checks",
"places",
"how_to_read",
"sections",
"pin",
"truncated",
"warnings",
"extraction"
],
"properties": {
"pin": {
"description": "The requested pin with the facts that reach it, or null when no pin was asked for."
},
"part": {
"type": "object",
"required": [
"part_number",
"vendor",
"family",
"package",
"package_pin_count"
],
"properties": {
"family": {
"type": [
"string",
"null"
]
},
"vendor": {
"type": [
"string",
"null"
]
},
"package": {
"type": [
"string",
"null"
]
},
"part_number": {
"type": [
"string",
"null"
]
},
"package_pin_count": {
"type": [
"number",
"null"
]
}
},
"additionalProperties": false
},
"checks": {
"type": "object",
"required": [
"passed",
"needs_review",
"disagrees",
"failed_sanity_check",
"disagreements"
],
"properties": {
"passed": {
"type": "number"
},
"disagrees": {
"type": "number"
},
"needs_review": {
"type": "number"
},
"disagreements": {
"type": "number",
"description": "Parameters holding more than one value"
},
"failed_sanity_check": {
"type": "number"
}
},
"additionalProperties": false
},
"counts": {
"type": "object",
"required": [
"facts",
"pins",
"rails",
"interfaces",
"registers"
],
"properties": {
"pins": {
"type": "number"
},
"facts": {
"type": "number"
},
"rails": {
"type": "number"
},
"registers": {
"type": "number"
},
"interfaces": {
"type": "number"
}
},
"additionalProperties": false
},
"places": {
"type": "object",
"required": [
"on_pins",
"whole_part",
"interfaces",
"rails",
"registers",
"not_placed"
],
"properties": {
"rails": {
"type": "number"
},
"on_pins": {
"type": "number"
},
"registers": {
"type": "number"
},
"interfaces": {
"type": "number"
},
"not_placed": {
"type": "number"
},
"whole_part": {
"type": "number"
}
},
"additionalProperties": false
},
"contract": {
"type": "string",
"description": "Contract id: ucm_twin_v1"
},
"sections": {
"type": "object",
"description": "The requested sections: pins, whole_part, interfaces_rails, registers, checks — facts with their check and, where recorded, their page.",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"datasheet": {
"type": "string"
},
"truncated": {
"type": "boolean"
},
"built_from": {
"type": "object",
"required": [
"modules",
"runs"
],
"properties": {
"runs": {
"type": "number",
"description": "Extraction runs the twin draws on"
},
"modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Module ids combined into this twin"
}
},
"additionalProperties": false
},
"extraction": {
"type": "object",
"required": [
"engine",
"requested_modules",
"extracted_features",
"credits",
"stored",
"rescued_features"
],
"properties": {
"engine": {
"type": "object",
"required": [
"name",
"runtime",
"duration_ms",
"lanes",
"failed_modules"
],
"properties": {
"name": {
"type": "string",
"description": "The engine the extraction started on: always \"fast_extraction\" (runtime says what answered)"
},
"lanes": {
"type": "array",
"items": {
"type": "object",
"required": [
"module",
"lane",
"reason"
],
"properties": {
"lane": {
"type": "string",
"description": "deterministic_primary, worker_with_deterministic_brain, deterministic_recovery, worker_only, or monolith_rescue"
},
"module": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"additionalProperties": false
},
"description": "How each module was answered, where the engine recorded it"
},
"runtime": {
"type": [
"string",
"null"
],
"description": "The runtime that answered: the Fast Extraction runtime, or \"monolith_rescue\" when the deep engine re-ran this module; null when no engine could run"
},
"duration_ms": {
"type": "number",
"description": "Wall time of the extraction in milliseconds"
},
"failed_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Modules that came back without a result: Fast Extraction could not extract them, and neither could the per-module deep-engine rescue where one was attempted"
}
},
"description": "Which engine produced this result",
"additionalProperties": false
},
"stored": {
"type": "boolean",
"description": "Always false: the twin is not saved to the account"
},
"credits": {
"type": "number",
"description": "Module credits this call costs an API-key caller"
},
"rescued_features": {
"type": "array",
"items": {
"type": "string"
},
"description": "Features Fast Extraction could not complete at turbo speed but the standard deep engine rescued; empty when every feature came from the fast lane"
},
"requested_modules": {
"type": "array",
"items": {
"type": "string"
},
"description": "Twin modules this call asked Fast Extraction for"
},
"extracted_features": {
"type": "array",
"items": {
"type": "string"
},
"description": "The extraction features those modules needed"
}
},
"description": "The Fast Extraction run behind this twin",
"additionalProperties": false
},
"how_to_read": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Extract a datasheet into a component twin",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 2337 ms
- 95th percentile latency
- 2337 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 2337 ms · metadata changed · 24 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http datasheetvend-mcp https://datasheetvend.com/api/mcpCodex
codex mcp add datasheetvend-mcp --url https://datasheetvend.com/api/mcpCursor
{
"mcpServers": {
"datasheetvend-mcp": {
"url": "https://datasheetvend.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"datasheetvend-mcp": {
"type": "streamableHttp",
"url": "https://datasheetvend.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"datasheetvend-mcp": {
"type": "http",
"url": "https://datasheetvend.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http datasheetvend-mcp https://datasheetvend.com/api/mcpClaude Desktop
{
"mcpServers": {
"datasheetvend-mcp": {
"url": "https://datasheetvend.com/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"datasheetvend-mcp": {
"serverUrl": "https://datasheetvend.com/api/mcp"
}
}
}Let your agent find its tools
Find servers like DatasheetVend MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other developer tools servers
Do you run DatasheetVend MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.