Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SHEETSDATA_API_KEYYesYour SheetsData API key. Sign up at https://sheetsdata.com/signup to get one.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
find_partsA

Free. Find candidates by function and numeric specs with units, package or stock. Example: query='buck converter', constraints=[{parameter:'vin_max',op:'>=',value:'24 V'}, {parameter:'iout',op:'>=',value:'2 A'}]. Also accepts vds, rds_on, canonical parameter names and text constraints (interface contains I2C). Uses catalogue/JLCPCB parameters and DigiKey parametric filters when configured. Ranks pass/fail/unknown evidence; unknown is unverified. Values retain sources and test conditions. Compact columns/rows by default; verbose returns objects. Does not validate design fit.

check_bomA

Costs 2¢ per call. Check up to 20 BOM lines for lifecycle, stock against quantity, observed single-distributor sourcing, datasheet status and stale/missing prices. Accepts MPNs or LCSC numbers; duplicate MPN quantities are aggregated. Uses exact identities, catalogue snapshots and available distributor details. Unknown remains unknown; single_source does not prove only one supplier exists. Compact columns/rows by default; verbose returns objects. No extraction.

search_partsA

Free. Start here. Searches components by part number or keyword (e.g. 'STM32F103', 'buck converter 3A') across JLCPCB, Mouser and DigiKey in parallel. Results are merged by MPN with indicative price and stock per source and a datasheet_status. For an MPN query, eval boards and dev kits come back separately as related_kits. Parts in your organisation's private library whose MPN, manufacturer, description, type, category or tag matches are appended with source='private_library' and their tags. For spec-based discovery in plain language, use search_datasheets. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

search_datasheetsA

Costs 2¢ per call. Semantic search across every datasheet already extracted (not every part that exists), for spec-based discovery such as 'low-noise LDO with PSRR above 70dB'. Returns matching chunks with part_number and a 0-100 relevance_score. To find a specific part by number, use search_parts.

prefetch_datasheetsA

Free. Starts background extraction for up to 20 parts at once, e.g. a BOM, so they are ready before you read them. Returns immediately with each part's status. A datasheet nobody has read before usually takes 1-3 minutes, 5 or more for a large one or a busy queue. These are estimates, not deadlines. Poll check_extraction_status (free). A part without a known datasheet comes back 'queued' while we look for its PDF, and reads 'resolving' until the search ends; only then is 'no_source' final: check the part number, or attach the PDF with request_datasheet_upload (org-private). The Free plan has a daily cap on new datasheets ('trial_limit'). MPNs or LCSC numbers only; resolve value-only BOM rows with search_parts first. Example: prefetch_datasheets(['TPS54302', 'ADS1115', 'LP5907']) datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

check_extraction_statusA

Free. Extraction status of 1-20 parts. A part being read reports current_step, elapsed_seconds, estimated_remaining_seconds with a range, and poll_after_seconds; a failed one reports its error; a part that isn't ready may list related_ready part numbers whose datasheet is readable now. A datasheet nobody has read before usually takes 1-3 minutes, 5 or more for a large one or a busy queue. These are estimates, not deadlines. A part whose PDF is still being looked for reads 'resolving'. Not final. Keep polling while the status is 'resolving', 'queued', 'pending' or 'extracting' (after poll_after_seconds); stop at 'ready', 'failed', 'no_source' or 'unsupported'. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

get_part_detailsA

Free. Full details for one part: provider specs, price, stock and lifecycle, the per-MPN structured values (specialized_specs), the cached datasheet summary, and datasheet_status with available_sections when ready. If any of it is for a different MPN than you asked for (an orderable variant, a base part, a sibling's datasheet), resolved_as and data_quality_warning at the top of the response say so, and prose written for another part is labelled as such at the start of datasheet_summary (family_summary with compact=true): trust specialized_specs for numbers. prefetch_datasheet=true starts extraction at no extra charge. Use after search_parts to drill into one result. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

read_datasheetA

Costs 2¢ per call. Reads a part's datasheet. Section mode (default): start with section='summary' for an overview and available_sections, then ask for any section by name; names come from the datasheet's own headings (e.g. 'register_map', 'i2c_interface'); an unknown name returns the nearest section names and pages. Use max_chars and the returned next_offset to continue a long read. Search mode (mode='search' with a query): semantic search within this datasheet, for targeted questions such as a register bit field or an I2C address. Prefer specific sections to section='all', which can fill your context. The first read of a new part starts extraction and returns status='extracting' (not charged). A datasheet nobody has read before usually takes 1-3 minutes, 5 or more for a large one or a busy queue. These are estimates, not deadlines. For microcontrollers, register-level programming detail usually lives in a separate reference manual, not the datasheet; available_sections shows what is present. datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

compare_partsA

Costs 2¢ per call. Compares 2-5 parts you already know side by side in one call (find candidates with search_parts or find_alternative first). Returns each part's details (per-provider specs, price breaks and links, the cached datasheet summary), a comparison table of parameters × parts built from each part's own provider data, and per-part flags: lifecycle (obsolete, NRND, last-time-buy), stock, datasheet_status, and resolved_as when a lookup landed on a different MPN. compact=true returns only the flags and the table, a much shorter answer; add include_summaries=true for the summaries. Never starts extraction: prefetch_datasheets first if you need summaries. If any input is not a real part number, the whole call is rejected with a 'rejected' map; a valid MPN no provider knows still gets a column, with an error. Example: compare_parts(['TPS54302', 'LM2596', 'MP2359']) datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

check_design_fitA

Costs 5¢ per call. Checks your operating conditions against the part's absolute maximum ratings and recommended operating conditions; returns PASS / WARNING / FAIL / INSUFFICIENT_DATA per condition and overall. Conditions by part type: converters and LDOs take input_voltage, output_voltage, output_current, ambient_temp, efficiency; MOSFETs take supply_voltage (VDS), output_current (ID), ambient_temp, power_dissipation; logic ICs take supply_voltage (VCC). Verdicts:

  • PASS: inside the recommended range, or at or below the derated limit. By default input_voltage and supply_voltage must stay at or below 80% of the absolute-maximum rating when no recommended maximum is known (inside a recommended range is a PASS), and output_current at or below 80% of its tightest rating; derating_pct changes this. Zero headroom on a rated current always warns. This is a screening policy; derating_reference cites the reliability guidance and its limits. Each check reports margin_pct against the raw limit, derating_pct and derated_limit.

  • WARNING: within the limit but above the derated limit, above the recommended maximum but below the absolute maximum, or within 10% of an absolute maximum that isn't derated.

  • FAIL: outside the range or over the limit.

  • INSUFFICIENT_DATA: not safely checkable, usually an ambient_temp that could not be turned into a junction-temperature check. It never counts as a PASS. Each check has limit_type (max / min / range / fixed); checks read from the datasheet text (source='llm') carry source_quote, the row the limit came from. A condition with no limit is listed in unmatched and holds the overall verdict at WARNING. If the ratings came from a different MPN than you asked for, resolved_as and data_quality_warning lead the response. Temperature: ambient_temp is never silently compared with a junction limit. When the part's own dissipation is known, the tool estimates Tj = Ta + Pd × RθJA (RθJA from the datasheet's thermal table) and judges Tj against the junction limits, reported as 'temperature (junction est.)'. Pd by part type: LDO (Vin - Vout) × Iout; switching converter Vout × Iout × (1/η - 1), which needs efficiency; anything else, pass power_dissipation (for a MOSFET, ID² × RDS(on)). Without these the check is INSUFFICIENT_DATA and its note says what to pass. Current ratings are read at ambient_temp (a MOSFET's 25 °C drain current is derated towards its maximum junction temperature). temperature_basis says which basis was used. Stored parameters answer instantly; anything else is read from the datasheet's ratings tables (validation_method says which). A part not yet extracted starts extraction and returns status='extracting' (not charged). A datasheet nobody has read before usually takes 1-3 minutes, 5 or more for a large one or a busy queue. These are estimates, not deadlines. Not for: transient or full thermal analysis (the junction estimate is a steady-state screen), MOSFET SOA curves (analyze_image the SOA graph), passives with no ratings table. Example: check_design_fit('TPS54302', input_voltage=24, output_voltage=5, output_current=2.5, ambient_temp=70, efficiency=0.92)

analyze_imageA

Costs 5¢ per call. Reads a datasheet image with vision AI: a graph, package drawing, pin diagram or schematic that read_datasheet returned. Pass the image_key from that response (the storage path in the image URL), optionally with a question. For exact electrical values prefer read_datasheet's text tables; use this for what only the picture shows (package dimensions, pin assignments, curve trends, approximate values off a curve). Example: analyze_image(part_number='IRFZ44N', image_key='images/abc123.png', question='What is the drain current at Vgs=5V?')

find_alternativeA

Costs 2¢ per call. Finds alternative and second-source parts for an MPN that is out of stock, end of life or too expensive, ranked by match_score with match_notes. Candidates come from provider search and from parts with the same function in our own datasheet index; they must do the same job (an accelerometer is not offered for a 6-axis IMU) and are compared on named electrical specs. Each has a lifecycle, stock and datasheet_status; obsolete and NRND parts rank last. Constraints: 'same_package' (fuzzy: SOT-23 ≡ SOT23, SOIC-8 ≡ SOP-8), 'in_stock', 'jlcpcb'. They are never relaxed silently: a candidate that fails one is left out of alternatives, removed_by_constraints counts what each removed, and when that leaves too few, relaxed_matches lists the best ones with the constraints they failed. When nothing matches at all, the call returns error_type 'not_found' (not charged) with the parts that would match without the constraints, under matches_without_constraints. The part's own family is also searched among datasheets already read (e.g. CH340C for CH340G). A score is similarity, not verified pin or electrical compatibility: check pinout and limits before substituting. Eval boards and modules are excluded. compact=true gives shorter rows (no per-source data or price breaks) and leaves out the reference part's summary unless include_original_summary=true. For a head-to-head of candidates you already have, use compare_parts. Example: find_alternative('TPS54302', constraints=['same_package', 'in_stock']) datasheet_status: 'ready' → read it; 'extracting' / 'queued' / 'pending' / 'resolving' → poll check_extraction_status; 'not_extracted' → prefetch_datasheets; 'no_source' / 'unsupported' → request_datasheet_upload. Full list in the server instructions.

request_datasheet_uploadA

Free. The upload fee is charged by confirm_datasheet_upload, after the file is checked. Gives a signed URL to upload a datasheet PDF we don't have: use it when datasheet_status is 'no_source' (once the search has finished: not while it is 'resolving') or 'unsupported'. Three steps:

  1. Call this with the MPN, the file's SHA-256 and its byte size; you get upload_url, upload_method ('PUT'), upload_headers and an upload_token.

  2. Upload the bytes: curl -X PUT -H 'Content-Type: application/pdf' --data-binary @file.pdf "$UPLOAD_URL" (plus any upload_headers).

  3. Call confirm_datasheet_upload with the upload_token. Checked at confirm (nothing charged if a check fails): a parseable PDF, the SHA-256 and size you declared, and the MPN or its stem on the first page (scanned image-only PDFs fail this). Max 50 MB; the part's datasheet, not a dev-kit manual, schematic or app note. Uploaded datasheets are private to your organisation. Tokens expire after 15 minutes; request a new one if needed.

confirm_datasheet_uploadA

Costs 10¢ per call. That is the upload fee, charged only when the file passes its checks. Confirms an upload started with request_datasheet_upload: pass its upload_token. The server re-hashes the uploaded bytes, checks it is a PDF with the MPN on the first page, adds it to your organisation's private library and queues extraction. Success returns document_id, mpn, sha256, file_size_bytes and status='pending'; poll check_extraction_status with the MPN. A datasheet nobody has read before usually takes 1-3 minutes, 5 or more for a large one or a busy queue. These are estimates, not deadlines. Failures (not charged): 'upload_not_found' (no bytes yet; retry the PUT), 'sha256_mismatch' (re-hash and re-request), 'invalid_pdf', 'mpn_not_in_pdf' (wrong file, or scanned image-only), 'token_expired' (older than 15 minutes; start again).

Prompts

Interactive templates invoked by user choice

NameDescription
component-selectionWalk through selecting a component: define requirements, search candidates, compare specs, validate design fit.
bom-reviewReview a bill of materials: look up each part, check stock and lifecycle, flag risks, suggest alternatives.
datasheet-deep-diveDeep-dive into a specific part: summarize, extract pinout, electrical specs, absolute max ratings, and application circuit.
design-validationValidate a design: check each component against operating conditions, flag out-of-spec parameters.
second-sourceFind second-source alternatives for a part: match package, specs, and availability across providers.
interface-checkCheck electrical and protocol compatibility between two ICs on a shared bus (SPI, I2C, UART). Verifies voltage levels, timing, pull-up requirements, and flags level-shifter needs.
firmware-kickstartExtract register map, initialization sequence, and protocol details from a peripheral IC datasheet. Generates a firmware integration guide with register writes, read/write transactions, and common pitfalls. Best for sensors, PMICs, ADCs, transceivers.
thermal-reviewThermal and derating analysis: compare operating conditions against absolute maximum AND recommended limits, estimate junction temperature from RθJA, check SOA derating curves, and flag exposed-pad or heatsink requirements.

Resources

Contextual data attached and managed by the client

NameDescription
Recommended WorkflowRecommended tool workflow for component selection and design validation.
Common Datasheet PitfallsThe 8 most common datasheet interpretation mistakes engineers make — abs max confusion, typical vs worst-case, thermal derating, voltage level mismatches, I2C/SPI gotchas, and more.
Design Review ChecklistHardware design review checklist covering power, signal interfaces, component selection, and firmware integration. References SheetsData tools and prompts for each check category.

TDQS

A4.5/5.0

Scored across 14 tools

Disambiguation4/5

The three search tools (search_parts, find_parts, search_datasheets) share the 'find parts' space, but the descriptions explicitly cross-reference each other and carve out distinct modes (part number/keyword vs parametric constraints vs semantic datasheet content), so misselection is unlikely. Lifecycle tools (prefetch_datasheets vs check_extraction_status vs read_datasheet) and the two-step upload pair are also clearly delineated. Only minor residual overlap between keyword search and functional search keeps it from a 5.

Naming Consistency5/5

Every tool follows a consistent snake_case verb_noun pattern (search_parts, get_part_details, read_datasheet, compare_parts, check_design_fit, analyze_image, find_alternative, request/confirm_datasheet_upload). No casing or verb-style deviations appear.

Tool Count5/5

14 tools sits squarely in the well-scoped range, and each maps to a distinct step in the component-research lifecycle (discover, extract, poll, read, compare, verify, source alternatives, upload). Nothing looks redundant or missing for the workflow size.

Completeness4/5

The surface covers discovery (three search modes), detail retrieval, datasheet reading and image analysis, comparison, design-fit checking, alternatives, BOM checking, the extraction lifecycle, and datasheet upload. Minor gaps exist (no explicit private-library listing/browsing or BOM export/order hand-off), but core CRUD/lifecycle operations for the domain are present.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues