
Gives Claude structured access to electronic component datasheets without touching PDFs. You can search parts, pull pinouts and electrical specs on demand, validate design parameters against abs max ratings, compare alternatives, and even upload private datasheets for extraction. The compare_parts and check_design_fit tools are especially useful during component selection when you need to verify operating conditions or find drop-in replacements. Ships with prompts for common workflows like BOM review and thermal analysis. Supports OAuth and API key auth, works over stdio or HTTP. Built for hardware engineers who want agents to reason about real component data instead of hallucinating specs or choking on 200-page PDFs.
claude mcp add --transport http sheetsdata-mcp https://mcp.sheetsdata.com/mcpRun in your terminal. Add --scope user to make it available in every project.
Review the command, arguments, and environment values before installing — MCP servers run with your local permissions.
Verified live against the running server on Jun 10, 2026.
search_partsSearch for electronic components by part number, description, or keyword. Start here — this is the best entry point for finding components. Queries all configured providers in parallel. Results are merged by MPN with indicative pricing and stock from each source. Each result i...3 paramsSearch for electronic components by part number, description, or keyword. Start here — this is the best entry point for finding components. Queries all configured providers in parallel. Results are merged by MPN with indicative pricing and stock from each source. Each result i...
limitintegerprovidersstringall · jlcpcb · mouser · digikeydefault: allquery*stringsearch_datasheetsSemantic search across all extracted datasheets. Finds components matching natural language queries about specifications, features, or capabilities. Best for broad spec-based discovery across all parts (e.g. 'low-noise LDO with PSRR above 70dB'). Only searches datasheets that...3 paramsSemantic search across all extracted datasheets. Finds components matching natural language queries about specifications, features, or capabilities. Best for broad spec-based discovery across all parts (e.g. 'low-noise LDO with PSRR above 70dB'). Only searches datasheets that...
limitintegerquery*stringsection_typestringall · electrical_characteristics · features · description · pin_configuration · absolute_maximum_ratingsdefault: allprefetch_datasheetsTrigger background datasheet extraction for multiple parts at once (up to 20). Non-blocking — returns immediately with the status of each part. Use this to warm up datasheets for a BOM before calling read_datasheet. Example: prefetch_datasheets(['TPS54302', 'ADS1115', 'LP5907'...1 paramsTrigger background datasheet extraction for multiple parts at once (up to 20). Non-blocking — returns immediately with the status of each part. Use this to warm up datasheets for a BOM before calling read_datasheet. Example: prefetch_datasheets(['TPS54302', 'ADS1115', 'LP5907'...
part_numbers*arraycheck_extraction_statusCheck the extraction status of one or more parts. Free. Each entry includes the current extraction step, elapsed seconds, and document ID. Use after prefetch_datasheets or after read_datasheet triggers a new extraction. Recommended polling cadence: every 5-10 seconds. Extracti...1 paramsCheck the extraction status of one or more parts. Free. Each entry includes the current extraction step, elapsed seconds, and document ID. Use after prefetch_datasheets or after read_datasheet triggers a new extraction. Recommended polling cadence: every 5-10 seconds. Extracti...
part_numbers*arrayget_part_detailsGet full details for a specific electronic component by manufacturer part number (MPN) or LCSC number. Returns specs, pricing, and stock from all configured providers, plus the cached datasheet summary if available. Includes datasheet_status and available_sections when ready....3 paramsGet full details for a specific electronic component by manufacturer part number (MPN) or LCSC number. Returns specs, pricing, and stock from all configured providers, plus the cached datasheet summary if available. Includes datasheet_status and available_sections when ready....
part_number*stringprefetch_datasheetbooleanproviderstringall · jlcpcb · mouser · digikeydefault: allread_datasheetRead from a component's datasheet. Two modes: **Section mode** (default): Returns a named section. Start with section='summary' to get an overview and a list of available_sections. Then request specific sections by name. Section names are dynamic — any heading in the actual da...5 paramsRead from a component's datasheet. Two modes: **Section mode** (default): Returns a named section. Start with section='summary' to get an overview and a list of available_sections. Then request specific sections by name. Section names are dynamic — any heading in the actual da...
limitintegermodestringsection · searchdefault: sectionpart_number*stringquerystringsectionstringcompare_partsCompare 2-5 electronic components side by side in a single call. For each part, returns merged provider data (pricing, stock, structured parameters, package) plus the cached datasheet summary if one exists, plus datasheet_status ('ready', 'extracting', or 'not_extracted'). Use...1 paramsCompare 2-5 electronic components side by side in a single call. For each part, returns merged provider data (pricing, stock, structured parameters, package) plus the cached datasheet summary if one exists, plus datasheet_status ('ready', 'extracting', or 'not_extracted'). Use...
part_numbers*arraycheck_design_fitValidate whether a component will work within your operating conditions. Compares your design parameters against the datasheet's absolute maximum ratings and recommended operating conditions. Returns PASS/FAIL/WARNING per parameter with margin percentages. Parameter mapping by...7 paramsValidate whether a component will work within your operating conditions. Compares your design parameters against the datasheet's absolute maximum ratings and recommended operating conditions. Returns PASS/FAIL/WARNING per parameter with margin percentages. Parameter mapping by...
ambient_tempnumberinput_voltagenumberoutput_currentnumberoutput_voltagenumberpart_number*stringsupply_voltagenumberswitching_frequencynumberanalyze_imageAnalyze an image from a component's datasheet using vision AI. Use this when read_datasheet returns a section containing images and you need to extract data from a graph, package drawing, pin diagram, or circuit schematic. Pass the image_key from the read_datasheet response (t...3 paramsAnalyze an image from a component's datasheet using vision AI. Use this when read_datasheet returns a section containing images and you need to extract data from a graph, package drawing, pin diagram, or circuit schematic. Pass the image_key from the read_datasheet response (t...
image_key*stringpart_number*stringquestionstringfind_alternativeFind alternative / second-source components for a given MPN. Returns parts ranked by how closely their specs, package, and category match the reference part, with a match_score and match_notes explaining each match. When to use: - Original part is out of stock or end-of-life....3 paramsFind alternative / second-source components for a given MPN. Returns parts ranked by how closely their specs, package, and category match the reference part, with a match_score and match_notes explaining each match. When to use: - Original part is out of stock or end-of-life....
constraintsarraylimitintegerpart_number*stringrequest_datasheet_uploadRequest a signed URL to upload a datasheet PDF for a component whose datasheet we don't have. Use this when search_parts / get_part_details / prefetch_datasheets return datasheet_status='no_source' (and a retry didn't help) or 'unsupported'. Free — the upload fee is only charg...4 paramsRequest a signed URL to upload a datasheet PDF for a component whose datasheet we don't have. Use this when search_parts / get_part_details / prefetch_datasheets return datasheet_status='no_source' (and a retry didn't help) or 'unsupported'. Free — the upload fee is only charg...
expected_sha256*stringmanufacturerstringpart_number*stringsize_bytes*integerconfirm_datasheet_uploadConfirm a datasheet upload started via request_datasheet_upload. Pass the upload_token you got back from the request step. The server downloads the uploaded bytes, re-hashes to verify integrity, validates that it's a real PDF with the MPN on the first page, creates the private...1 paramsConfirm a datasheet upload started via request_datasheet_upload. Pass the upload_token you got back from the request step. The server downloads the uploaded bytes, re-hashes to verify integrity, validates that it's a real PDF with the MPN on the first page, creates the private...
upload_token*stringElectronic component datasheets for AI agents — pinouts, specs, package info and design checks from manufacturer PDFs.
SheetsData is a hosted MCP server. Your agent finds parts across JLCPCB, Mouser and DigiKey, reads any section of a part's datasheet as text and tables, compares parts, checks a BOM, and checks your operating conditions against the datasheet's ratings. The agent never sees a PDF, and you don't have to find or paste one.
Server URL: https://mcp.sheetsdata.com/mcp (Streamable HTTP)
Sign-in: MCP OAuth (browser), or an API key as "Authorization: Bearer <key>"
This repository holds the install configs, the @sheetsdata/mcp stdio proxy for clients that only start local servers, and the Claude Desktop bundle. The server itself is a hosted service.
Create a free account · Install in your client · Pricing · Docs
"Is the TPS54302 fine with 24 V in and 2.5 A out?"
check_design_fit("TPS54302", input_voltage=24, output_current=2.5)
overall: WARNING
input_voltage 24 V PASS within the recommended range 4.5–28 V (14.3% margin)
datasheet row: "| V I | | 4.5 | 28 | V |"
unmatched: output_current
A condition the tool can't find a limit for is listed as unmatched and keeps the verdict at WARNING: a clean PASS means every condition was checked against the datasheet.
"Buck converters that take 24 V in and give at least 2 A" (free):
find_parts("buck converter", constraints=[vin_max >= 24 V, iout >= 2 A])
AP63357DV-7 32 V 3.5 A pass@digikey stock: DigiKey 49,457 datasheet: ready
LM2596S-5.0/NOPB 40 V 3 A pass@digikey stock: DigiKey 4,460 datasheet: ready
LMR33630ADDAR 36 V 3 A pass@digikey stock: JLCPCB 17,768 datasheet: ready
read_datasheet("TPS54302", section="pinout")
→ GND (1), SW (2), VIN (3), FB (4), EN (5), BOOT (6)
Prices are per call and the same on every plan. A call that fails is not charged. Current prices are on sheetsdata.com/pricing.
| Tool | Price | What it does |
|---|---|---|
search_parts | Free | Find parts by part number or keyword across JLCPCB, Mouser and DigiKey, merged by MPN, with stock, price and datasheet status from each. |
find_parts | Free | Find parts that meet numeric specs with units (e.g. Vin ≥ 24 V, Iout ≥ 2 A), package or stock; each constraint reports pass, fail or unknown with its source. |
get_part_details | 3¢ | A part's key parameters, package, pricing, stock and datasheet status, by MPN or LCSC number. |
check_bom | 3¢ | Check up to 20 BOM lines for lifecycle, stock against quantity, single-distributor sourcing, datasheet status and stale prices. |
prefetch_datasheets | 1¢ | Start reading up to 20 datasheets at once, so a whole BOM is ready before you ask about it. |
check_extraction_status | Free | Report how far a datasheet that is still being read has got. |
read_datasheet | 10¢ | Any section of a datasheet as text and tables (summary, pinout, electrical, absolute maximum ratings, package, or any heading), or a search within one datasheet. |
search_datasheets | 2¢ | Search every datasheet read so far by meaning, e.g. "LDO with PSRR above 70 dB". |
compare_parts | 8¢ | Compare 2–5 parts side by side: parameters, package, pricing, stock and datasheet summaries. |
find_alternative | 6¢ | Find drop-in and functional substitutes for a part, ranked by spec, package and stock match. |
check_design_fit | 12¢ | Check operating conditions against the absolute maximum and recommended ratings: PASS, WARNING or FAIL per condition, with the datasheet row it used. |
analyze_image | 10¢ | Read values off a datasheet figure: a characteristic graph, package drawing or pin diagram. |
request_datasheet_upload | Free | Get a private upload link for a datasheet PDF we couldn't find. |
confirm_datasheet_upload | 50¢ | Verify the uploaded PDF (hash, valid PDF, MPN on page one) and read it into your organisation's private library. Not charged if the file fails the checks. |
Pass manufacturer part numbers (TPS54302, STM32F446RCT6) or LCSC numbers (C2837938), not values like 100nF or reference designators like R1. A datasheet nobody has asked for yet is read on first request (poll check_extraction_status); after that it is cached for everyone.
Built-in prompts that walk the agent through common hardware tasks:
| Prompt | What it does |
|---|---|
component-selection | Select a component: define requirements, search candidates, compare specs, validate design fit. |
bom-review | Review a bill of materials: look up each part, check stock and lifecycle, flag risks, suggest alternatives. |
datasheet-deep-dive | Summarise a part and extract its pinout, electrical specs, absolute maximum ratings and application circuit. |
design-validation | Check each component against its operating conditions and flag out-of-spec parameters. |
second-source | Find second-source alternatives that match package, specs and availability. |
interface-check | Check electrical and protocol compatibility between two ICs on a shared bus (SPI, I2C, UART): logic levels, timing, pull-ups, level shifters. |
firmware-kickstart | Extract the register map, initialisation sequence and protocol details of a peripheral IC into a firmware integration guide. |
thermal-review | Thermal and derating analysis: absolute maximum and recommended limits, junction temperature from RθJA, SOA derating, exposed-pad needs. |
| Resource | What it holds |
|---|---|
sheetsdata://workflow | The recommended tool order for component selection and design validation. |
sheetsdata://tips/datasheet-pitfalls | The eight most common datasheet reading mistakes: absolute maximum vs recommended, typical vs worst case, thermal derating, logic levels, I2C/SPI gotchas, decoupling, exposed pads, lifecycle. |
sheetsdata://tips/design-review-checklist | A hardware design review checklist (power, signal interfaces, component selection, firmware), pointing at the tool or prompt for each check. |
search_parts, find_parts) is free.Plans, limits and fees: sheetsdata.com/pricing.
Use whichever your client supports; both bill the same organisation.
| OAuth (recommended) | API key | |
|---|---|---|
| Best for | Interactive clients | CI, scripts, headless agents, clients without MCP OAuth |
| What you do | Add the URL, then sign in to SheetsData in the browser tab that opens | Create a key at sheetsdata.com/dashboard/keys and send Authorization: Bearer <key> |
| Standards | OAuth 2.1 with PKCE, dynamic client registration (RFC 7591), discovery (RFC 8414, RFC 9728) | Bearer token (RFC 6750) |
| Revoke | Per app, from the dashboard | Delete the key |
If a client asks how to register an OAuth client, choose automatic (dynamic) registration; SheetsData doesn't support client ID metadata documents yet.
One-click installs (sign in on first use):
Every client below was checked against its own documentation on 2026-10-16 (linked in each section). In the snippets, replace YOUR_API_KEY with a key from sheetsdata.com/dashboard/keys.
Custom connector (OAuth). Open Customize → Connectors, click + Add, then Add custom connector. Name it SheetsData, paste https://mcp.sheetsdata.com/mcp and click Continue. Under OAuth client, choose Register automatically: SheetsData doesn't support the default "Use Claude's published identity" option yet. Click Add, then Connect, and sign in to SheetsData in the browser tab that opens. On Team and Enterprise plans an owner adds it under Organization settings → Connectors → Add → Custom → Web. Free plans can add one custom connector.
Claude Desktop bundle. Download sheetsdata-x.y.z.mcpb from the latest release and drop it onto the Claude Desktop window. Leave the API key field blank to sign in with OAuth, or paste a key.
In the custom connector dialog, add the request header Authorization: Bearer YOUR_API_KEY. Or, in Claude Desktop, open Settings → Developer → Edit Config and add the stdio proxy (needs Node.js; claude_desktop_config.json only starts local servers, so it cannot hold the remote URL):
{
"mcpServers": {
"sheetsdata": {
"command": "npx",
"args": ["-y", "@sheetsdata/mcp"],
"env": { "SHEETSDATA_API_KEY": "YOUR_API_KEY" }
}
}
}
Restart Claude. The proxy sends the key in a header, never on the command line.
Docs: Custom connectors using remote MCP
claude mcp add --transport http sheetsdata https://mcp.sheetsdata.com/mcp
Start Claude Code, run /mcp, choose sheetsdata → Authenticate and sign in (or run claude mcp login sheetsdata from your shell). Add --scope user to have SheetsData in every project.
claude mcp add --transport http sheetsdata https://mcp.sheetsdata.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
In a project's .mcp.json, give the entry "type": "http"; an entry without a type is treated as a local server.
Docs: Claude Code MCP
On the web, open chatgpt.com/plugins, click +, then Add custom MCP server. Name it SheetsData, paste https://mcp.sheetsdata.com/mcp and choose OAuth. Accept the warning, choose Create as a plugin, install it and sign in to SheetsData. Your plan and workspace settings decide whether custom servers are available. ChatGPT cannot send an API key.
Docs: Custom MCP servers in ChatGPT
codex mcp add sheetsdata --url https://mcp.sheetsdata.com/mcp
codex mcp login sheetsdata
The second command opens your browser to sign in. The Codex IDE extension and app read the same ~/.codex/config.toml.
Add to ~/.codex/config.toml, and set SHEETSDATA_API_KEY in your shell:
[mcp_servers.sheetsdata]
url = "https://mcp.sheetsdata.com/mcp"
bearer_token_env_var = "SHEETSDATA_API_KEY"
Docs: Codex MCP
Click Install in Cursor, or add to ~/.cursor/mcp.json (every project) or .cursor/mcp.json (one project):
{
"mcpServers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp"
}
}
}
Cursor opens your browser to sign in when it first connects.
{
"mcpServers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Docs: Cursor MCP
Click Install in VS Code, run code --add-mcp '{"name":"sheetsdata","type":"http","url":"https://mcp.sheetsdata.com/mcp"}', or add to .vscode/mcp.json (run MCP: Open User Configuration for every workspace):
{
"servers": {
"sheetsdata": {
"type": "http",
"url": "https://mcp.sheetsdata.com/mcp"
}
}
}
Start the server; VS Code asks you to sign in. Use it from Copilot Chat in agent mode.
VS Code asks for the key the first time the server starts and keeps it out of the file:
{
"inputs": [
{ "type": "promptString", "id": "sheetsdata-key", "description": "SheetsData API key", "password": true }
],
"servers": {
"sheetsdata": {
"type": "http",
"url": "https://mcp.sheetsdata.com/mcp",
"headers": { "Authorization": "Bearer ${input:sheetsdata-key}" }
}
}
}
Docs: VS Code MCP configuration
copilot mcp add --transport http sheetsdata https://mcp.sheetsdata.com/mcp
Or run /mcp add in a session, choose HTTP and paste the URL. Copilot CLI signs in with OAuth when the server asks.
copilot mcp add --transport http sheetsdata https://mcp.sheetsdata.com/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Docs: Adding MCP servers to Copilot CLI
gemini mcp add --transport http --scope user sheetsdata https://mcp.sheetsdata.com/mcp
Start Gemini CLI, run /mcp auth sheetsdata and sign in.
gemini mcp add --transport http --scope user \
--header "Authorization: Bearer YOUR_API_KEY" \
sheetsdata https://mcp.sheetsdata.com/mcp
Editing ~/.gemini/settings.json by hand? Use "httpUrl" for the address; "url" means the older SSE transport.
Docs: Gemini CLI MCP servers
Open the … menu → MCP Servers → Manage MCP Servers → View raw config (~/.gemini/config/mcp_config.json, or .agents/mcp_config.json in a workspace) and add:
{
"mcpServers": {
"sheetsdata": {
"serverUrl": "https://mcp.sheetsdata.com/mcp"
}
}
}
Antigravity needs serverUrl; it rejects url. Then open Agent settings → Customizations and click Authenticate next to sheetsdata. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Docs: Antigravity MCP
In the Cascade panel, open the … menu → MCPs → Open MCP config file (~/.config/devin/mcp_config.json; %APPDATA%\devin\mcp_config.json on Windows; older Windsurf versions use ~/.codeium/windsurf/mcp_config.json) and add:
{
"mcpServers": {
"sheetsdata": {
"serverUrl": "https://mcp.sheetsdata.com/mcp"
}
}
}
You sign in to SheetsData in your browser when it connects. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Docs: Cascade MCP
Add to your Zed settings.json (or Settings → AI → MCP Servers → Add Server → Add Remote Server):
{
"context_servers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp"
}
}
}
Zed asks you to sign in. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Docs: Zed MCP
Open MCP Servers → Remote Servers, name it SheetsData, paste https://mcp.sheetsdata.com/mcp, choose Streamable HTTP and click Add Server; complete the browser sign-in when prompted. In Cline CLI, run cline mcp and choose Authorize OAuth for sheetsdata.
Open MCP Servers → Configure → Configure MCP Servers (cline_mcp_settings.json) and add the entry below. Without "type", Cline assumes SSE.
{
"mcpServers": {
"sheetsdata": {
"type": "streamableHttp",
"url": "https://mcp.sheetsdata.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Or from Cline CLI: cline mcp add sheetsdata https://mcp.sheetsdata.com/mcp --transport http --header "Authorization: Bearer YOUR_API_KEY" --yes
Docs: Cline MCP
Roo Code's docs don't describe MCP OAuth, so use an API key. Open MCP → Edit Global MCP (mcp_settings.json) or the project's .roo/mcp.json:
{
"mcpServers": {
"sheetsdata": {
"type": "streamable-http",
"url": "https://mcp.sheetsdata.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Docs: Using MCP in Roo Code
Continue's docs don't describe MCP OAuth, so use an API key. Save as .continue/mcpServers/sheetsdata.yaml in your workspace and add SHEETSDATA_API_KEY to your Continue secrets:
name: SheetsData
version: 0.0.1
schema: v1
mcpServers:
- name: SheetsData
type: streamable-http
url: https://mcp.sheetsdata.com/mcp
requestOptions:
headers:
Authorization: "Bearer ${{ secrets.SHEETSDATA_API_KEY }}"
Docs: Continue MCP
In Goose Desktop, open Extensions → Add custom extension and choose Streamable HTTP with the URL https://mcp.sheetsdata.com/mcp; in the CLI, run goose configure → Add Extension → Remote Extension (Streamable HTTP). Goose runs the OAuth sign-in when it connects. Or add to ~/.config/goose/config.yaml:
extensions:
sheetsdata:
name: SheetsData
type: streamable_http
uri: https://mcp.sheetsdata.com/mcp
enabled: true
timeout: 300
For an API key, add headers: { Authorization: "Bearer YOUR_API_KEY" } to the entry.
Docs: Using extensions in Goose
amp mcp add sheetsdata https://mcp.sheetsdata.com/mcp
Amp opens your browser to sign in.
Add to ~/.config/amp/settings.json (or .amp/settings.json in a project, then run amp mcp approve sheetsdata):
{
"amp.mcpServers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Docs: Amp MCP
Click Install in Kiro, or add to ~/.kiro/settings/mcp.json (or .kiro/settings/mcp.json in a workspace):
{
"mcpServers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp"
}
}
}
Kiro asks you to sign in. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Docs: Kiro MCP configuration
Junie (IDE and CLI): add to ~/.junie/mcp/mcp.json (or .junie/mcp/mcp.json in a project), then run /mcp and choose Authorize. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" }.
{
"mcpServers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp"
}
}
}
AI Assistant: its docs describe neither OAuth nor headers for remote servers, so run the local proxy. Open Settings → Tools → AI Assistant → Model Context Protocol (MCP) → Add and paste the stdio entry below.
Docs: Junie MCP, AI Assistant MCP
Add to opencode.json:
{
"mcp": {
"sheetsdata": {
"type": "remote",
"url": "https://mcp.sheetsdata.com/mcp",
"enabled": true
}
}
}
opencode signs in automatically, or run opencode mcp auth sheetsdata. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Docs: opencode MCP servers
LM Studio's docs don't describe MCP OAuth, so use an API key. Open the Program tab → Install → Edit mcp.json:
{
"mcpServers": {
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
Docs: LM Studio MCP
Open Settings → Agents → MCP servers → + Add and paste:
{
"sheetsdata": {
"url": "https://mcp.sheetsdata.com/mcp"
}
}
Warp opens your browser to sign in when the server starts. For an API key, add "headers": { "Authorization": "Bearer YOUR_API_KEY" } to the entry.
Docs: Warp MCP
The @sheetsdata/mcp package (Node.js 18+) proxies stdio to the hosted server. Without SHEETSDATA_API_KEY it opens your browser to sign in with OAuth and caches the token.
{
"mcpServers": {
"sheetsdata": {
"command": "npx",
"args": ["-y", "@sheetsdata/mcp"],
"env": { "SHEETSDATA_API_KEY": "YOUR_API_KEY" }
}
}
}
From a shell: SHEETSDATA_API_KEY=YOUR_API_KEY npx -y @sheetsdata/mcp, or npx -y @sheetsdata/mcp --api-key YOUR_API_KEY.
Connect with the MCP TypeScript SDK over Streamable HTTP (the SDK can also run the OAuth flow):
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
const transport = new StreamableHTTPClientTransport(new URL("https://mcp.sheetsdata.com/mcp"), {
requestInit: { headers: { Authorization: "Bearer YOUR_API_KEY" } },
});
const client = new Client({ name: "my-agent", version: "1.0.0" });
await client.connect(transport);
const result = await client.callTool({ name: "search_parts", arguments: { query: "TPS54302" } });
1. search_parts / find_parts → candidates by part number, keyword or spec
2. get_part_details → parameters, package, pricing, stock
3. read_datasheet → "summary" first, then the sections you need
4. check_design_fit → your operating conditions against the ratings
5. find_alternative → substitutes, if needed
6. compare_parts → finalists side by side
7. check_bom → lifecycle, stock and sourcing for the whole BOM
Data is extracted from publicly available manufacturer datasheets by automated tools, including AI. It may contain errors, omissions or inaccuracies.
SheetsData and Octoco Ltd provide this data on an "as is" basis and make no warranties, express or implied, regarding its accuracy, completeness or fitness for any particular purpose. Always verify critical specifications against the official manufacturer datasheet before making design, purchasing or manufacturing decisions.
By using this service, you acknowledge that:
For terms of use, see sheetsdata.com/terms.
MIT (this repository: install configs, the npm proxy and the Claude Desktop bundle). The hosted service is covered by the terms of use.
SHEETSDATA_API_KEYsecretOptional — if omitted, OAuth login opens in your browser. Get a key at https://sheetsdata.com/dashboard/keys