Skip to main content
Glama
stellaraccident

digikey-list-mcp

digikey-list-mcp

Status: working local MVP. Offline tests pass, and production OAuth, Product Information V4, and read-only MyLists access were verified on 2026-09-12.

A personal, agent-friendly interface for finding electronic parts and preparing order-ready DigiKey MyLists. The agent does the tedious catalog work; the human reviews the resulting list and completes checkout on DigiKey.

The project is named digikey-list-mcp to distinguish its MyLists-centered scope from the existing community project named digikey-mcp.

The working name says “MCP,” but MCP is the service boundary, not the product goal. The deliverable should be a turnkey personal plugin that works in ChatGPT and Codex and remains usable by other MCP clients.

What is implemented

  • Python 3.12+ package with no Node.js or npm dependency.

  • Product Information V4 search, exact details, substitutions, and recommendations.

  • MyLists list/read/create/add/update/remove operations, including paginated list reads.

  • Exact-SKU normalization, quantity/attrition/MOQ calculations, pricing, and warnings.

  • Signed, expiring preview tokens and retry-safe add operations.

  • Automatic OAuth refresh-token rotation with Keychain/keyring storage and a mode-0600 fallback.

  • Eleven MCP tools over local stdio or streamable HTTP, with read/write/destructive annotations.

  • A validated Codex personal-plugin bundle under plugins/digikey-list-mcp.

  • Offline HTTP, auth, normalization, planning, CLI, pagination, and MCP discovery tests.

No tool can place an order or check out.

Related MCP server: DigiKey MCP Server

Quick start

Prerequisites are Python 3.12+ and uv. direnv is optional.

uv sync --extra dev
uv run digikey-list-mcp --help
uv run pytest

For optional direnv defaults, copy .envrc.example to .envrc and run direnv allow. The example deliberately contains no credentials.

Create an organization and production application in the DigiKey Developer Portal, subscribe the application to Product Information V4 and MyLists, and register the callback URI you intend to use. Find your Account ID under your profile information on the main DigiKey website—not in the developer portal. Then:

uv run digikey-list-mcp configure
uv run digikey-list-mcp auth login
uv run digikey-list-mcp doctor --live

The login command opens DigiKey and asks you to paste the full redirected URL. With the default https://localhost callback, the final browser page may fail to load; copy its address-bar URL anyway. The command verifies OAuth state before saving tokens.

When configuring production, answer no to the sandbox prompt. Sandbox is useful for validating OAuth and response shapes, but its synthetic user may not map to a MyLists account; this can appear as MyLists.Api Error with an internal AccountId: 0. Production MyLists requires the real Account ID described above. Sandbox and production applications have separate credentials and tokens, so run auth login again after switching applications.

Run the MCP server directly with:

uv run digikey-list-mcp serve --transport stdio

The checked-in plugin points at this repository through uv, so it does not need a separately installed executable. It is intentionally not installed into a personal marketplace yet: live write-path verification should happen first. The streamable-HTTP transport is available for development, but it must not be exposed beyond localhost until an MCP authentication layer is added.

Architecture decision

The implementation is a small Python service against DigiKey's official APIs with workflow-oriented MCP tools and a local personal-plugin bundle.

Version 1 uses:

  • Product Information V4 for search, exact product details, live price and stock, quantity/package pricing, substitutions, recommendations, and product documents.

  • MyLists v1 for listing, creating, reading, and updating private lists.

  • OAuth 2.0 authorization-code flow (three-legged) for both products. MyLists requires it, and one consistent user-authorized session is simpler than mixing auth modes.

It will not manipulate DigiKey's web cart, automate checkout, or place orders. MyLists is the handoff to the human-facing purchasing flow.

This is the best-supported path because DigiKey describes MyLists as external access to the same API used by its My Lists web application. Its API can create lists, add parts, fetch priced list contents, and update or remove lines. By contrast, the official Ordering API places orders directly, requires an active DigiKey Credit account, and solves a problem we do not currently have.

What the experience should feel like

Example requests to an agent:

  • “Find an in-stock 3.3 V, 500 mA LDO in SOT-23-5 with at least 12 V input tolerance. Prefer parts with a healthy stock buffer and a readable datasheet.”

  • “Price this BOM for five assemblies, add 10% attrition to passives, and flag every minimum-order or packaging mismatch.”

  • “Compare these three regulators at quantities 1, 10, and 25. Include lifecycle status and plausible substitutes.”

  • “Create a private list called soil-sensor-r2, add the selected parts, and preserve my reference designators and notes.”

  • “Revalidate soil-sensor-r2 against current stock and pricing and tell me what changed before I order.”

The result should contain exact manufacturer and DigiKey part numbers, selected packaging, requested and orderable quantities, unit and extended prices, current stock, lifecycle status, minimum order quantity, datasheet/product links, and a checked_at timestamp. Every DigiKey-derived result must identify DigiKey as its source.

Why this approach

Option

Verdict

Reason

Official Product Information + MyLists APIs behind MCP

Choose

Covers search through order-ready list creation without browser automation or checkout risk.

Existing community digikey-mcp

Learn from it, do not adopt as the base

It currently focuses on Product Information V4, offline BOM generation, and two-legged auth; it does not provide the MyLists write workflow that is central here.

Browser automation against digikey.com

Fallback only

Fragile, slow, difficult to make idempotent, and unnecessary for the v1 workflow.

DigiKey Ordering API

Defer

It queues real orders, uses three-legged OAuth, and requires an active DigiKey Credit account. We explicitly want manual checkout.

Quote API

Possible later

Useful for locking pricing, but not needed to build and review a MyList.

Cross-distributor aggregator

Later, behind a separate provider adapter

Helpful for Mouser and others, but it should not delay a clean DigiKey implementation or blur data provenance.

No relevant turnkey DigiKey integration appears in the plugin options available to this workspace, and the community implementation reviewed does not cover MyLists. A purpose-built personal integration is justified.

Supported workflow

project requirements or BOM
          |
          v
search and shortlist (Product Information V4)
          |
          v
exact-SKU validation: stock, price, MOQ, packaging, lifecycle
          |
          v
preview proposed MyList changes
          |
          v
create/update private MyList (human-confirmed write)
          |
          v
revalidate immediately before purchase
          |
          v
human reviews and checks out on DigiKey

Search results are discovery candidates, not purchase-ready facts. DigiKey's keyword search does not return account-specific MyPricing; exact product/pricing endpoints do. Before a line is proposed or written, the server must resolve it to an exact DigiKey SKU and refresh its details.

MCP tools

Tools expose procurement concepts rather than mirroring DigiKey's API one endpoint at a time.

Discovery and validation (read-only)

  • digikey_search_parts

    • Input: query, result limit, in-stock flag, and marketplace-exclusion flag.

    • Output: normalized discovery candidates with standard pricing.

  • digikey_get_part

    • Input: manufacturer or DigiKey part number and optional manufacturer ID.

    • Output: exact product, pricing options, availability, MOQ, packaging, lifecycle, parameters, product URL, and datasheet URL.

  • digikey_compare_parts

    • Input: two to twelve exact part numbers.

    • Output: normalized current details with an explicit compatibility warning.

  • digikey_find_alternates

    • Input: exact part number and result limit.

    • Output: DigiKey substitutions/recommendations clearly labeled as candidates requiring compatibility review.

  • digikey_list_mylists

  • digikey_get_mylist

  • digikey_validate_mylist

    • Rechecks every line's current price, stock, MOQ, packaging, and lifecycle; reports shortages and deltas from the previous validation if locally available.

MyLists changes (writes)

  • digikey_preview_mylist_changes

    • Input: target list or new list name, assembly count, and lines containing exact part number, per-assembly quantity or total quantity, packaging preference, reference designators, customer reference, notes, target price, and attrition.

    • Output: normalized, orderable lines; warnings; estimated total; and an expiring preview/confirmation token.

  • digikey_apply_mylist_changes

    • Input: preview token.

    • Applies only the reviewed diff. The token binds the list ID, exact lines, and quantities so a later tool call cannot change the proposal.

  • digikey_update_mylist_line

    • Update quantity, selected package, references, notes, target price, or attrition for one line.

  • digikey_remove_mylist_line

    • Destructive; always requires explicit user confirmation.

Creating a list or appending reviewed parts is reversible and low risk, but it still changes the user's DigiKey account. The default workflow is preview then apply. Replacing a list, removing lines, or reducing quantities must never happen as a side effect of an “add” operation.

MCP safety metadata

The server declares:

  • read operations: readOnlyHint: true;

  • preview: read-only and idempotent;

  • create/add/update: not read-only, normally idempotent at our layer;

  • remove/replace: destructiveHint: true;

  • all DigiKey calls: openWorldHint: true.

MyLists mapping

The adapter translates the stable tool schema into DigiKey's current RequestedPart structure:

Our field

DigiKey field

exact requested SKU

RequestedPartNumber

project/BOM identity

CustomerReference

PCB references

ReferenceDesignator

selection rationale or assembly notes

Notes

scrap/spares percentage

Attrition

quantity and target price

Quantities[].Quantity, Quantities[].TargetPrice

package choice

Quantities[].SelectedPackType, SelectedSubPackType

alternate candidates

AlternateParts

The API returns a stable list ID and per-line unique IDs. We should use those IDs for updates rather than matching mutable descriptions or positions. List creation should default to private visibility and a cut-tape-friendly package preference for small projects, while allowing the user to override it.

Important integration detail: DigiKey's published MyLists Swagger describes the API as v1 and exposes it under /mylists/v1. We should check the downloaded Swagger into test fixtures only if DigiKey's terms permit redistribution; otherwise, generate a minimal internal client from documented shapes and keep contract snapshots synthetic.

Authentication and setup

One-time user setup

  1. Create or sign in to a My DigiKey account.

  2. Create a developer organization and application in the DigiKey Developer Portal.

  3. Subscribe the production application to Product Information V4 and MyLists.

  4. Register the exact callback URL shown by this project.

  5. Put the client ID and client secret in the operating system credential store through the setup command—never in .env by default, shell history, source control, or plugin metadata.

  6. Run digikey-list-mcp auth login. It opens DigiKey's authorization page, handles the short-lived authorization code, and stores the resulting rotating tokens securely.

The callback URI sent during login and token exchange must exactly match the registered value, including any trailing slash. DigiKey documents authorization codes as valid for one minute, three-legged access tokens for 30 minutes, and refresh tokens for 90 days. A refresh exchange issues a new refresh token and invalidates the old one, so token replacement must be atomic and safe across concurrent calls.

Credential storage

Preferred local storage on macOS is Keychain. A portable fallback may use a user-only file outside the repository with mode 0600. Logs must redact:

  • client secret;

  • authorization codes;

  • access and refresh tokens;

  • DigiKey account/customer IDs where not required for diagnosis;

  • shipping, contact, or order information if those APIs are added later.

The MCP server itself also needs an authorization boundary. A local stdio process inherits the local user's trust boundary. A remotely reachable streamable-HTTP endpoint must use MCP-compatible user authentication; an unguessable URL is not authentication.

Packaging and deployment

Implement one shared core with two transports:

  • stdio for local MCP clients and easy development;

  • streamable HTTP at /mcp for ChatGPT/Codex plugin use.

Recommended stack:

  • Python 3.12+ managed with uv and a committed uv.lock;

  • the official Python mcp SDK and Pydantic models;

  • HTTPX behind a small DigiKeyClient protocol;

  • Authlib where it simplifies the OAuth authorization-code flow;

  • keyring for macOS Keychain, behind a credential-store protocol with a secure portable fallback;

  • pytest and respx for offline unit and HTTP contract tests;

  • structured logs with mandatory secret redaction;

  • no database for DigiKey catalog data.

The core server must have no Node.js or npm dependency. If a rich browser UI is added later, keep its frontend optional, isolated, and independently built; the MCP tools and plugin must remain fully useful without it.

The personal plugin should bundle:

plugin.json                 portable plugin manifest
mcp.json                    MCP server connection
skills/digikey-list-mcp/    agent workflow guidance
assets/                     optional icons

Current OpenAI plugin architecture treats the plugin as the installable package and the MCP server as its live tools/data component. A custom UI is optional. We should begin headless; a small editable BOM comparison/review panel may be worth adding only after the tool workflow is reliable.

For private development, run the service locally and use the supported secure MCP tunnel or a local MCP client. A ChatGPT-accessible production endpoint needs stable HTTPS and streamable HTTP. We should not expose a temporary unauthenticated tunnel containing DigiKey credentials.

Safety and procurement rules

The server enforces these rules rather than relying only on model judgment:

  1. No checkout tools. No payment, shipping, or order-placement surface in v1.

  2. Exact SKU before write. Never add a fuzzy keyword result directly to a list.

  3. Fresh purchase facts. Refresh details before preview; include checked_at and source on every result.

  4. No false equivalence. Alternates are candidates. Flag package, pinout, voltage/current, tolerance, temperature, lifecycle, and certification differences.

  5. Quantity transparency. Return requested, attrition-adjusted, MOQ-adjusted, package-multiple-adjusted, and final list quantities separately.

  6. Idempotent writes. Retrying a timed-out apply must not duplicate lines. Store only minimal operation IDs/digests needed to achieve this.

  7. Preview-bound mutation. Applying a preview cannot silently use newer candidates or different quantities.

  8. No destructive convenience. Append/upsert and replace are distinct operations. Deletes require confirmation.

  9. Budget warnings. Warn when extended price exceeds the previewed amount by a configurable absolute or percentage threshold.

  10. Manual final review. The output always reminds the user that price, stock, suitability, taxes, and shipping can change before checkout.

Data handling and DigiKey terms

This is an internal application for personal purchasing. DigiKey's API agreement expressly includes internal applications that automate and enhance purchasing as a permitted purpose, subject to its approval and terms.

The implementation must:

  • clearly attribute DigiKey as the source of DigiKey data;

  • preserve DigiKey product links and notices;

  • avoid bulk catalog downloads;

  • avoid building a persistent local catalog database from API responses;

  • keep cross-vendor results clearly separated and attributed when Mouser or other providers are added;

  • store durable user intent (project name, requested quantities, notes, references, selected SKU, validation timestamps and digests), not a shadow copy of DigiKey's catalog;

  • use short-lived in-memory response caching only to control duplicate calls and respect rate limits, pending a final terms review;

  • stop and remove retained DigiKey data if API access is terminated, as required by the agreement.

Product Information's published standard quota is 120 calls per minute and 1,000 per day. The client must honor 429, Retry-After, and DigiKey rate-limit headers, coalesce concurrent identical lookups, and never hide stale fallback data as current. Quotas vary by API product, so they should be learned from response headers and configuration rather than hard-coded globally.

This README is technical planning, not legal advice. Re-read the live agreement before production deployment, especially before adding cross-distributor comparison or persistent analytics.

Repository layout

pyproject.toml
uv.lock
src/
  digikey_list_mcp/
    digikey/
      client.py           HTTP, locale headers, errors, throttling
      auth.py             authorization-code and rotating-token lifecycle
      product_information.py
      mylists.py
    procurement/
      normalize.py        quantities, packaging, money, lifecycle
      plan_mylist.py      preview and idempotent apply
    server/
      app.py              agent-facing tools and both transports
    credentials/
      store.py
tests/
  unit/
plugins/
  digikey-list-mcp/
    .codex-plugin/plugin.json
    .mcp.json
    skills/digikey-list-mcp/SKILL.md

The repository is also a local Codex marketplace. Register and install it with:

codex plugin marketplace add /Users/stella/projects/digikeymcp
codex plugin add digikey-list-mcp@digikey-list-mcp-local

After installation, start a new Codex task or use the composer’s add button to attach @digikey-list-mcp to an existing task. The plugin chip makes the bundled skill and MCP tools available to that task; this was verified in a running task with a live, read-only MyLists call.

Provider-specific wire types must not leak into MCP results. A future MouserClient should implement the same internal procurement model while retaining explicit field-level provenance.

Delivery status

Live-account verification — create/add/read complete

  • Production application registered with Product Information V4 and MyLists subscriptions.

  • Three-legged production OAuth completed successfully.

  • Exact production product lookup completed successfully.

  • Production MyLists listing completed successfully using the Account ID from the main DigiKey profile page.

  • Created private list digikey-list-mcp-live-test-20260912-223850, added quantity 1 of P5555-ND, and read the line back successfully. It was intentionally left in the account for manual inspection.

  • Production returns requested and calculated quantities as QuantityRequested and CalculatedQuantity, and returns the selected price under PackOptions[].CalculatedUnitPrice. The normalizer accepts these observed fields as well as the published generic shapes.

  • Next: verify update and delete behavior after the retained test list has been inspected.

Useful local MCP — implemented

  • Implement search, exact details, comparison, and alternates.

  • Implement list/read/create/add/update with preview-bound, idempotent writes.

  • Add validate_mylist and human-readable price/stock/MOQ warnings.

  • Ship stdio transport and a one-command setup/auth/doctor flow.

Personal plugin — local bundle implemented; remote deployment deferred

  • Add authentication before deploying streamable HTTP beyond localhost.

  • Install the bundled MCP server plus procurement skill as a personal plugin after the live check.

  • Add install/update scripts and a health check that explains expired login, missing subscriptions, rate limits, and locale/account configuration in plain language.

  • Test the same core scenarios in ChatGPT, Codex, and one non-OpenAI MCP inspector/client.

Phase 3 — procurement assistant features

  • Import KiCad BOMs and generic CSVs without losing reference designators.

  • Add project-level policies: preferred package sizes, marketplace exclusion, minimum stock buffer, lifecycle preferences, attrition rules, and budget thresholds.

  • Add a review UI only if conversational preview is insufficient.

  • Add Mouser behind the provider boundary, with unmistakable source attribution and a terms review.

V1 acceptance criteria

V1 is done when a fresh install can:

  1. guide the user through DigiKey developer setup without exposing secrets;

  2. authenticate once and refresh tokens without repeated browser interaction;

  3. search by requirements and return concise, attributed candidates;

  4. turn chosen candidates into exact, currently validated order lines;

  5. preview and create/update a private MyList with quantities, packaging, references, and notes;

  6. retry writes without duplicate lines;

  7. revalidate the completed list and report price, stock, MOQ, packaging, and lifecycle issues;

  8. leave checkout entirely to the user;

  9. pass offline unit/contract tests without DigiKey credentials;

  10. emit no secrets in logs, tool results, test snapshots, or error messages.

Open questions for write-path verification

  • How does MyLists behave when adding the same DigiKey SKU twice with different references or package choices?

  • Does the live list endpoint always return current pricing/availability, or should every line be revalidated through Product Information V4?

  • Which package strings does MyLists accept in practice for cut tape, tape-and-reel, Digi-Reel, tray, and bulk?

  • What are the observed MyLists-specific burst and daily quotas?

  • What is the cleanest route from a populated MyList into DigiKey's manual checkout UI?

Production read access required the Product Information V4 and MyLists subscriptions, three-legged OAuth, and X-DIGIKEY-Account-ID. The remaining questions require controlled writes or observations that the public documentation does not answer precisely enough.

Sources

Primary sources:

Existing implementation reviewed:

Available Tools

11 tools
digikey_apply_mylist_changesA
Idempotent

Apply exactly one previously reviewed preview to DigiKey MyLists idempotently.

ParametersJSON Schema
NameRequiredDescriptionDefault
preview_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, destructiveHint=false, and openWorldHint=true. The description adds that exactly one previously reviewed preview is applied, but it largely repeats the idempotency annotation and omits details such as token expiry, failure behavior, or permission requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with no wasted words. It communicates the core action, scope, and idempotent nature efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a low-complexity write tool with rich annotations and an output schema, the description is nearly sufficient. It establishes the preview prerequisite and one-preview limitation, though it leaves the preview_token source and error behavior to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for the single preview_token parameter. It links the token to a "previously reviewed preview," which adds useful context, but it does not explain where the token comes from, its format, or its validity window beyond that implication.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: apply a previously reviewed preview to DigiKey MyLists. It is clearly distinguishable from sibling preview/read/update tools because it applies a preview rather than creating, validating, or editing one. The scope is also constrained to exactly one preview.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase "previously reviewed preview" provides clear workflow context: this tool is used after a preview has been reviewed. It does not explicitly name the sibling preview_mylist_changes tool or state when not to use it, so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_compare_partsA
Read-only

Fetch exact current details for two or more parts for an attributed comparison.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_numbersYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety and external-data context is covered. The description adds that it returns 'exact current details' (implying live, not cached data) and performs an 'attributed comparison,' but gives no detail on rate limits, auth, or return structure beyond what the output schema provides.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no redundant or filler content. It communicates the core action and scope efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and read-only annotations, the description covers the basic action. However, for a comparison tool with an undocumented array parameter, it should clarify the expected product-number format and what 'attributed comparison' means, which it currently leaves vague.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It does clarify that the product_numbers array should contain 'two or more parts,' which adds a minimum-count constraint not present in the schema. However, it does not specify the expected identifier format (e.g., Digi-Key vs. manufacturer part number), leaving a key semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Fetch'), resource ('details for two or more parts'), and scope ('for an attributed comparison'). It distinguishes the tool from single-part siblings like digikey_get_part by requiring two or more parts, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for two or more parts for an attributed comparison' implies the use case (comparing multiple parts), but the description gives no explicit when-to-use guidance, no alternatives, and no conditions for choosing this over digikey_get_part or digikey_find_alternates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_find_alternatesB
Read-only

Return DigiKey substitutions and recommendations as unverified candidates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
product_numberYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds a meaningful behavioral caveat: results are 'unverified candidates', telling the agent not to treat them as validated. This is valuable context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence that is front-loaded and contains no filler. It gets to the point immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return values need not be explained. But with low schema coverage and no usage guidance or parameter details, the description is minimal for a tool with a required input and a limit parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description mentions no parameter details. It doesn't clarify the meaning or format of 'product_number' or what 'limit' controls. This leaves the agent guessing about input semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb (find) and resource (alternates) and names the source (DigiKey substitutions and recommendations). However, it does not differentiate from siblings like digikey_compare_parts or digikey_search_parts, leaving overlap that could confuse selection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no conditions, and no mention of alternatives. The phrase 'unverified candidates' implies caution but doesn't specify when this tool is appropriate over a validated alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_get_mylistB
Read-only

Read one DigiKey MyList and its current list-line data.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds that list-line data is returned alongside the list itself, which is modest but useful context about payload scope; it says nothing about permissions, rate limits, or whether the read is a live call to DigiKey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with the operation front-loaded and no filler. It is efficient, though the extreme brevity is also what leaves the gaps in usage and parameter guidance.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the annotations cover the safety profile. What remains missing is how list_id is obtained and how this read relates to the enumerate/validate/apply siblings — enough to make the definition only minimally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is one required parameter (list_id) with 0% schema description coverage, and the description does not characterize it at all — no format hint, no statement that it comes from digikey_list_mylists. With a low-coverage schema the description should compensate and does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Read') and resource ('one DigiKey MyList') plus the payload ('its current list-line data'), which is clearer than a bare name restatement. It implicitly distinguishes the singular read from the sibling digikey_list_mylists (plural enumerate), though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance is given: nothing says this is the fetch-one-list operation to use after enumerating lists or before mutating lines. Siblings like digikey_list_mylists, digikey_validate_mylist and digikey_preview_mylist_changes are not referenced, so the agent must infer the routing itself.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_get_partA
Read-only

Get current exact product, variation, stock, lifecycle, and pricing data from DigiKey.

ParametersJSON Schema
NameRequiredDescriptionDefault
product_numberYes
manufacturer_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. The description adds the useful context that data is 'current' and 'exact,' suggesting live external lookups. However, it does not mention rate limits, authentication requirements, or what happens when a part number is not found.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, well-structured sentence that front-loads the core purpose and lists the data categories retrieved. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. However, with zero schema description coverage on two parameters, the description is incomplete for an agent to call this tool correctly without guessing parameter formats and the role of manufacturer_id.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning neither parameter is documented in the schema. The description adds no information about what product_number or manufacturer_id should contain, how to format them, or when manufacturer_id is needed. With two parameters and zero schema coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Get) and resource (product/part data) with the exact data categories retrieved: product, variation, stock, lifecycle, and pricing. An agent can distinguish this from digikey_search_parts because the description emphasizes retrieving 'current exact' data for a known part rather than searching.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'exact' implies this is for retrieving a specific known part rather than searching, which differentiates it slightly from digikey_search_parts. However, there is no explicit statement of when to use this versus digging through search results, and no mention of prerequisites or error conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_list_mylistsC
Read-only

List the authenticated user's DigiKey MyLists.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so safety and reach are covered structurally. The description adds the useful detail that results are scoped to the authenticated user, but says nothing about pagination behavior despite the presence of a limit parameter, nor about ordering or what happens when the user has no lists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or redundancy. It is appropriately sized for a simple list operation, though brevity here edges toward under-specification rather than disciplined conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return value shape need not be explained, and annotations cover the read-only profile. What remains missing is any treatment of the limit parameter and pagination, which for a list endpoint with a default page size is a meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the single 'limit' parameter (default 50) is undocumented in both the schema and the description. The description never mentions limiting or pagination, leaving the agent to guess what the parameter controls and whether more results can be fetched.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource (list MyLists) and scopes it to the authenticated user, which is more precise than the bare name. However, it offers no differentiation from the closely named sibling digikey_get_mylist, so an agent cannot tell from the description alone which one to pick for a single list vs. all lists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus digikey_get_mylist or the other mylist siblings (validate, preview, apply, update_line, remove_line). The only implied context is that the user must be authenticated, which is inferred from 'authenticated user's' rather than stated as a precondition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_preview_mylist_changesB
Read-onlyIdempotent

Validate exact SKUs and return an expiring, signed preview without changing DigiKey.

ParametersJSON Schema
NameRequiredDescriptionDefault
linesYes
list_idNo
list_nameNo
assembly_countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds genuinely non-obvious behavior beyond that: the preview is 'expiring' and 'signed', implying a time-limited token returned to the caller. It still omits what happens on invalid SKUs and how list_id vs list_name interact.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with a clear verb and no filler; the key non-mutating guarantee is stated up front. It is efficient, though arguably too terse given the schema's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool taking a nested array of line items with target price, attrition, packaging and reference fields at 0% schema coverage, one sentence is not enough. An output schema exists so return values need not be explained, but the input contract is largely unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 4 top-level params and a 9-field nested RequestedLine object. The description only hints that part numbers must be 'exact' SKUs and says nothing about lines, list_id/list_name selection, or assembly_count, leaving the nested pricing/attrition fields entirely undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Validate exact SKUs', 'return an expiring, signed preview') and contrasts itself with the write path via 'without changing DigiKey'. It is distinguishable from apply_mylist_changes, though it does not explicitly differentiate itself from the similarly named sibling digikey_validate_mylist.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'without changing DigiKey' and 'preview' imply this is a dry-run step before apply_mylist_changes, so the usage context is inferable. However, no sibling is named and there is no explicit when/when-not guidance versus validate_mylist or apply_mylist_changes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_remove_mylist_lineA
DestructiveIdempotent

Delete one MyList line only when the user explicitly confirms the exact IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
confirmNo
list_idYes
unique_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true and idempotentHint=true, so the destructive nature is known. The description adds the requirement for explicit user confirmation, which is useful context, but it doesn't elaborate on what else gets destroyed or any side effects. With annotations providing the safety profile, a 3 is appropriate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence with no waste. It states the action and the critical condition directly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is destructive and has an output schema, so return values need not be explained. However, the description is minimal for a destructive operation, and it doesn't clarify the role of the 'confirm' parameter, which is crucial for safety. It provides some context but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate but does not. It mentions 'exact IDs' implying list_id and unique_id are needed, but adds no format or semantics beyond what parameter names suggest. The 'confirm' flag is not explained in the description. Baseline is 3 because the schema itself defines the parameters, but description could do more.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (delete) and resource (MyList line), differentiating it from siblings like update_mylist_line or apply_mylist_changes. It is slightly vague about the scope ('line' rather than 'part entry'), but the core purpose is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear condition for using the tool: only when the user explicitly confirms the exact IDs. It does not name alternative tools, but the gate condition is explicit and useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_search_partsC
Read-only

Search DigiKey for discovery candidates using standard pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
in_stockNo
exclude_marketplaceNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnlyHint=true, openWorldHint=true), so the bar is lowered, but the description adds nothing beyond that: it doesn't explain the effect of the in_stock and exclude_marketplace defaults, pagination/limit behavior, or the 'standard pricing' distinction. For an external-API search tool, this leaves meaningful behavior undisclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with no padding, but that brevity comes at the cost of substance rather than being earned conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values needn't be described, but with 0% parameter coverage, unexplained defaults, and no usage guidance, the definition is not complete enough for an agent to call it confidently alongside ten siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and none of the four parameters (query, limit, in_stock, exclude_marketplace) are explained in the description. The one added phrase, 'standard pricing', corresponds to no parameter, so the description does not compensate for the schema gap at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a verb (Search) and resource (DigiKey parts), but the qualifier 'discovery candidates using standard pricing' is vague jargon that doesn't tell the agent what makes this different from digikey_get_part, digikey_compare_parts, or digikey_find_alternates. The purpose is inferable but not sharply defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no mention of any sibling tool as an alternative. The agent must guess whether this is the entry point for part lookup versus the get/compare/alternates tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_update_mylist_lineB
Idempotent

Preview or explicitly confirm replacement of one existing MyList line.

ParametersJSON Schema
NameRequiredDescriptionDefault
lineYes
confirmNo
list_idYes
unique_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already covering readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true, the description adds the important two-mode behavior: preview by default or explicit confirmation to replace an existing line. It does not describe permissions or side effects in detail, but it adds meaningful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence with zero wasted words. It states the operation and mode switch efficiently, making it easy to scan before opening the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema and annotations, so return values and safety hints are partially covered. However, for a four-parameter mutation-like operation with 0% schema description coverage, the description is too thin: it omits parameter semantics, consequences of replacement, and guidance against sibling alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate for parameter meaning, but it only hints at confirm and the target line. It does not explain list_id, unique_id, or the fields within the nested RequestedLine object, leaving most required parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action (preview or explicitly confirm replacement) and a tightly scoped resource (one existing MyList line). It does not explicitly contrast with siblings like apply_mylist_changes or remove_mylist_line, but the singular line and replacement framing are clear enough to distinguish the operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'Preview or explicitly confirm' implies a two-phase usage model, with confirm controlling commit versus preview. However, it never states when this tool is preferable to sibling tools such as preview_mylist_changes, apply_mylist_changes, or remove_mylist_line, so the guidance remains implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

digikey_validate_mylistB
Read-only

Refresh every MyList line against exact DigiKey product data and report warnings.

ParametersJSON Schema
NameRequiredDescriptionDefault
list_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, so the safety profile is covered. 'Refresh' implies re-fetching external data (consistent with openWorldHint) and 'report warnings' hints at a non-mutating validation output, adding modest context. However, it doesn't explain what a warning looks like, whether results are cached, or rate/credential constraints for the external DigiKey call.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single front-loaded sentence with a specific verb and outcome, zero filler. Efficient, though it could be slightly richer given the tool's role.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values needn't be explained. But for a parameter that is entirely undocumented (0% coverage) and a read-only external validation tool with no usage guidance, the description leaves gaps an agent would need to fill elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is one required parameter (list_id) that the description never mentions or explains. The tool's name implies a MyList context, but the description does not clarify list_id's format or source, leaving the sole parameter undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb ('Refresh... against exact DigiKey product data') and resource ('every MyList line'), with an explicit output ('report warnings'). Distinguishes itself from siblings like digikey_update_mylist_line (which mutates) and digikey_get_mylist (which just reads), though it doesn't name an alternative directly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this is a validation/refresh operation for a MyList, but it offers no explicit when-to-use guidance, no condition selecting it over digikey_preview_mylist_changes or digikey_get_mylist, and no statement of prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.0
    • First observeddigikey_apply_mylist_changes
    • First observeddigikey_compare_parts
    • First observeddigikey_find_alternates
    • First observeddigikey_get_mylist
    • First observeddigikey_get_part
    • First observeddigikey_list_mylists
    • First observeddigikey_preview_mylist_changes
    • First observeddigikey_remove_mylist_line
    • First observeddigikey_search_parts
    • First observeddigikey_update_mylist_line
    • First observeddigikey_validate_mylist

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation4/5

Most tools target distinct resource+action pairs, but the MyList mutation family (validate_mylist, preview_mylist_changes, apply_mylist_changes, update_mylist_line) has fuzzy boundaries since all deal with previewing/confirming line changes. Similarly get_part, compare_parts, and find_alternates overlap since compare could be done by repeated get_part calls, though descriptions do clarify intent.

Naming Consistency5/5

Every tool uses the digikey_ prefix followed by a consistent snake_case verb_noun pattern (search_parts, get_mylist, apply_mylist_changes). No mixed conventions or casing deviations.

Tool Count5/5

11 tools is well within the ideal 3-15 range and each tool maps to a concrete catalog or MyList workflow step with no obvious filler.

Completeness4/5

The surface covers catalog lookup (search/get/compare/alternates) and MyList lifecycle (list/get/validate/preview/apply/update/remove) thoroughly. Minor gaps remain, such as no explicit tool to create a new MyList or add a fresh line outside the preview/apply flow.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables searching for electronic components through the Nexar Supply API, providing detailed part information including manufacturer, pricing, specifications, and datasheets.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to the DigiKey Product Search API v4, allowing users to search for electronic components and retrieve detailed product specifications. It supports keyword searches, pricing inquiries, manufacturer lookups, and access to technical datasheets.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables searching and filtering over 1.5 million electronic components across JLCPCB, Mouser, and DigiKey using parametric queries and smart parsing. It supports finding alternative parts, accessing pinout data, and downloading KiCad footprints directly through AI coding assistants.
    11
    112
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables searching and retrieving product information from DigiKey's API, including part lookup, keyword search, product details, and pricing.
    -