{
  "schema_version": 1,
  "type": "skill",
  "slug": "digikey",
  "title": "DigiKey Search",
  "brief": "Search DigiKey's catalog of millions of electronic components from thousands of manufacturers. Real-time pricing, stock, lead times, and product links.",
  "version": "1.0.1",
  "tags": [],
  "license": "MIT",
  "discovery_triggers": [
    "digikey",
    "digi-key",
    "digikey part",
    "digikey number",
    "digikey pricing",
    "digikey stock",
    "us distributor",
    "where to buy",
    "price breaks",
    "find datasheet"
  ],
  "discovery_pitch": "DigiKey has it — I can search their catalog for stock, pricing, and datasheets, and paste the product URL into our convo.",
  "source_path": "SKILL.md",
  "readme": "---\nname: digikey\ndescription: Search DigiKey for components, pricing, stock, and part numbers. Use when the user asks to find components on DigiKey, check DigiKey pricing, look up a DigiKey part number, search for in-stock parts, get price breaks, compare alternatives, or find a datasheet or product page for a specific part.\n---\n\n# DigiKey Component Search\n\nSearch DigiKey's catalog of millions of electronic components from thousands of manufacturers. Real-time pricing, stock, lead times, and product links.\n\n## Architecture\n\nThe DigiKey search runs as a **shared remote service** on a dedicated container. User containers access it via the `adom-digikey` MCP server, which proxies requests to the shared service over HTTP.\n\n```\nDedicated Service Container (john/service-digikey)\n  DigiKey Products API v4 proxy (port 8777, OAuth 2.0, 10-min LRU cache)\n    ↓ (proxied via Coder)\n  HTTP API: https://coder.john-service-digikey-5fe3ed11d045380c.containers.adom.inc/proxy/8777\n  MCP:      https://coder.john-service-digikey-5fe3ed11d045380c.containers.adom.inc/proxy/8778/mcp\n\nUser Containers (any Gallia-enabled container)\n  MCP Tools (adom-digikey) ──→ HTTP fetch to shared service URL\n    ↓\n  pushToViewer() ──→ Viewer API (port 8771) ──→ WebSocket ──→ Gallia Viewer\n```\n\nThe service URL is hardcoded in `digikey/mcp/tools.js` — no `DIGIKEY_CLIENT_ID` / `DIGIKEY_CLIENT_SECRET` env vars needed on user containers. OAuth credentials live only on the service container.\n\n### Service Container Details\n\n- **Container:** `john/service-digikey` on Adom (`john-service-digikey-5fe3ed11d045380c`)\n- **Hydrogen:** https://hydrogen.adom.inc/john/service-digikey/edit\n- **Port 8777:** HTTP API — `GET /health`, `GET /search?keyword=...`, `GET /part?partNumber=...`, or `POST /` with JSON body\n- **Port 8778:** Streamable HTTP MCP endpoint at `/mcp` — add to `.mcp.json` as `{ \"type\": \"streamable-http\", \"url\": \"...proxy/8778/mcp\" }`\n- **Bootstrap:** `bash <(curl -fsSL https://coder.john-gallia-f280e93ffec7e79d.containers.adom.inc/proxy/9999/bootstrap.sh) --service digikey`\n- **Update:** `cd ~/gallia && git pull && pkill -f 'node.*services/digikey/server.js'; bash services/digikey/start-digikey.sh`\n\n## Available MCP Tools\n\n### `digikey_search` — Keyword / Part Number Search\n\nSearch by keyword, description, manufacturer part number (MPN), or DigiKey part number.\n\n**Parameters:**\n| Parameter | Type | Default | Description |\n|-----------|------|---------|-------------|\n| `keyword` | string | required | Part number, keyword, description, or category + specs |\n| `limit` | number | 10 | Max results (1–50) |\n| `inStockOnly` | boolean | false | Only return parts currently in stock |\n\n**Example uses:**\n- `keyword: \"STM32F103RBT6\"` — find by MPN\n- `keyword: \"497-STM32F103RBT6-ND\"` — find by DigiKey PN\n- `keyword: \"ESP32 WiFi Bluetooth\"` — keyword search\n- `keyword: \"LDO 3.3V 500mA SOT-23\"` — parametric-style search\n- `keyword: \"STM32F4 microcontroller\"`, `inStockOnly: true` — in-stock only\n\n### `digikey_part` — Exact Part Lookup\n\nGet full details for a specific part by DigiKey PN or MPN. Returns complete price break table, packaging options, RoHS status, lifecycle, datasheet URL, and product page.\n\n**Parameters:**\n| Parameter | Type | Description |\n|-----------|------|-------------|\n| `partNumber` | string | DigiKey PN (e.g. `497-STM32F103RBT6-ND`) or MPN (e.g. `STM32F103RBT6`) |\n\nUse `digikey_search` first to discover parts, then `digikey_part` to get full details.\n\n### `digikey_health` — Health Check\n\nVerify the API credentials are set and DigiKey API is reachable. No parameters.\n\n## What's in a Result\n\nEach part includes:\n- **DigiKey part number** — use this for BOM ordering\n- **Manufacturer part number (MPN)** — use this in schematics/footprints\n- **Manufacturer name**\n- **Description and category**\n- **Stock** — in-stock quantity at DigiKey (live)\n- **Lead time** — estimated delivery in weeks if ordering from factory\n- **Price breaks** — quantity pricing tiers (1+, 10+, 25+, 100+, etc.)\n- **Min order qty**\n- **RoHS status** — compliance flag\n- **Lifecycle status** — e.g. Active, Last Time Buy, Obsolete\n- **Product page URL** — direct link to DigiKey product listing\n- **Datasheet URL** — direct PDF link if available\n\n## Workflow\n\n### Finding a part from scratch\n1. Use `digikey_search` with a keyword or description\n2. Scan results for the right part (check stock, price, lifecycle)\n3. Use `digikey_part` to get full pricing and product details\n4. Copy the **DigiKey PN** for BOM and the **MPN** for schematic/footprint use\n\n### Checking price for a known MPN\nUse `digikey_search` with the MPN as the keyword — typically returns exact or near-exact matches as the first results.\n\n### Checking in-stock alternatives\nUse `digikey_search` with `inStockOnly: true` and a descriptive keyword (e.g. `\"32-bit ARM Cortex-M3 flash 128KB LQFP-48\"`).\n\n## Files\n\n| File | Purpose |\n|------|---------|\n| `services/digikey/server.js` | HTTP API server (port 8777), DigiKey OAuth 2.0 proxy, landing page |\n| `services/digikey/start-digikey.sh` | Idempotent start script (used by container boot) |\n| `services/digikey/test.js` | 14-test integration suite with GV output |\n| `digikey/mcp/server.js` | MCP stdio transport entry point |\n| `digikey/mcp/tools.js` | 3 MCP tools + fire-and-forget push to Gallia Viewer (hardcoded service URL) |\n| `digikey/mcp/remote.js` | MCP streamable-http transport (port 8778) |\n\n## Notes\n\n- Results are sorted by DigiKey's internal relevance algorithm (not necessarily by stock)\n- DigiKey prices are in USD and do not include shipping\n- Stock levels are live at time of query (10-minute cache on the service)\n- OAuth credentials live only on the service container — user containers don't need them\n- Authentication uses OAuth 2.0 client_credentials flow (tokens cached with 80% TTL safety margin)\n",
  "author": {
    "id": "695820315b5f1e4db2fcf602",
    "name": "Kyle Bergstedt",
    "email": "[email protected]"
  },
  "visibility": {
    "public": true
  },
  "hero": null,
  "sample_prompts": [],
  "metadata": {},
  "created_at": "2026-05-28T05:30:08.260Z",
  "updated_at": "2026-05-28T05:30:08.260Z",
  "sub_skills": [],
  "parent_app": null
}