digi-mouse-search
eparts-search-mcp
DigiKey, LCSC, Mouser에서 전자 부품을 검색하는 MCP 서버입니다. 각 유통사는 개별적으로 또는 모두 함께 조회할 수 있으며, 동일한 부품 번호에 대한 오퍼는 단일 항목으로 병합되어 가격을 비교할 수 있습니다.
도구
도구 | 용도 |
| 하나 또는 여러 유통사에 걸친 키워드 검색 |
| 제조사 또는 유통사 부품 번호로 단일 부품 조회 |
| 구성된 소스와 남은 요청 예산 확인 |
| 캐시된 응답을 삭제하여 최신 재고와 가격 강제 조회 |
search_parts는 sources 목록을 받습니다. 생략하면 구성된 모든 유통사를 검색하고, ["mouser"]를 전달하면 해당 유통사만 검색합니다. 결과는 기본적으로 부품 번호별로 병합되며 cheapest_at_quantity 비교가 적용됩니다. merge=false를 전달하면 각 유통사의 결과를 별도 목록으로 유지합니다.
비교는 요청한 수량에서 가격이 있는 오퍼만 고려합니다. LCSC는 많은 부품을 10개 단위로 판매하므로 수량 1에서는 해당 오퍼에 적용 가능한 브레이크가 없어 비교에서 제외되며 무료로 계산되지 않습니다.
한 유통사가 실패하거나, 구성되지 않았거나, 할당량을 소진한 경우에도 다른 유통사는 결과를 반환하며 실패는 errors 아래에 보고됩니다.
Related MCP server: Nexar MCP Server
설치
시스템 어디에서든 서버를 사용하려면 독립 실행형 도구로 설치하세요. 실행 파일은 ~/.local/bin($XDG_BIN_HOME이 설정된 경우 해당 경로)에 설치되며, 의존성은 ~/.local/share/uv/tools 아래의 자체 환경에 설치됩니다:
uv tool install .mise run install-tool도 동일한 작업을 수행하며, mise run uninstall-tool은 제거합니다. 설치 후 eparts-search-mcp는 어떤 디렉터리에서든 stdio로 서버를 실행하며, 아래 설명된 XDG 구성 파일에서 자격 증명을 읽습니다. ~/.local과 ~/.config 외부의 어떤 것도 건드리지 않으므로 권한 있는 설치 단계가 필요하지 않습니다.
~/.local/bin이 PATH에 있는지 확인하세요:
export PATH="$HOME/.local/bin:$PATH"개발 설정
서버를 사용하는 대신 개발하려면:
mise install
mise run install
mise run test자격 증명은 구성 파일 또는 환경 변수에서 가져올 수 있습니다. 파일은 자격 증명을 환경 및 프로세스 목록에서 보호합니다. 기본적으로 ~/.config/eparts-search-mcp/config.toml(또는 $XDG_CONFIG_HOME이 설정된 경우 해당 경로)에서 읽히므로 EPARTS_CONFIG가 필요하지 않습니다:
# ~/.config/eparts-search-mcp/config.toml
[providers.digikey]
# DigiKey: register an app at developer.digikey.com with Product Information enabled
client_id = "..."
client_secret = "..."
[providers.lcsc]
# LCSC: partner credentials issued by an account manager
key = "..."
secret = "..."
[providers.mouser]
# Mouser: request a Search API key from mouser.com/api-hub
api_key = "..."파일에는 비밀이 포함되어 있으므로 본인만 읽을 수 있게 유지하세요. 서버는 그룹 또는 다른 사용자가 접근할 수 있는 경우 시작 시 경고합니다:
chmod 600 ~/.config/eparts-search-mcp/config.toml동일한 값은 대신 환경 변수로 제공할 수 있으며, 이는 파일보다 우선합니다:
export DIGIKEY_CLIENT_ID=...
export DIGIKEY_CLIENT_SECRET=...
export LCSC_KEY=...
export LCSC_SECRET=...
export MOUSER_API_KEY=...실제로 사용하려는 유통사의 자격 증명만 필요합니다. 자격 증명이 없는 소스는 검색을 실패시키지 않고 구성되지 않은 것으로 보고됩니다.
자격 증명 얻기
DigiKey. 개인 개발자 앱은 샌드박스 액세스만 얻을 수 있으며 샌드박스는 합성 데이터를 반환합니다. 실제 재고와 가격을 보려면 Organization 아래에 있는 Production 앱이 필요합니다:
developer.digikey.com에 DigiKey 계정으로 로그인합니다.
탐색 모음에서 Organizations를 열고 아직 회원이 아니면 생성합니다.
Operations 아래에서 Production Apps를 선택한 다음 Create Production App을 선택합니다.
앱에 Product Information을 활성화합니다.
앱을 열어 Client ID와 Client Secret을 복사합니다.
OAuth 콜백 필드는 3-legged OAuth에서만 사용됩니다. 이 서버는 2-legged 클라이언트 자격 증명 흐름을 사용하므로 콜백으로 리디렉션되지 않습니다. https://localhost는 양식을 충족합니다.
샌드박스와 프로덕션 자격 증명은 서로 교환할 수 없습니다. 샌드박스 자격 증명은 DIGIKEY_SANDBOX=true가 선택하는 sandbox-api.digikey.com에서만 작동합니다.
LCSC. Open API는 셀프 서비스 가입이 아닌 파트너 통합이므로 자격 증명은 호출 IP 주소가 화이트리스트에 등록된 후 LCSC 계정 관리자로부터 받습니다. 온보딩은 시뮬레이션된 카탈로그 데이터로 응답하는 별도 호스트(fatapi.lcsc.com)의 테스트 환경에서 시작됩니다. LCSC_SANDBOX=true가 이를 선택합니다. 프로덕션 자격 증명은 통합이 승인된 후 도착하며 api.lcsc.com에 대해 사용됩니다.
호출은 요청 매개변수, 키, 요청별 nonce 및 타임스탬프에 대한 SHA-256 서명으로 인증됩니다. 비밀은 해당 해시의 입력이며 전송되지 않으므로 URL이나 로그에 나타나지 않습니다. 타임스탬프가 확인되므로 시스템 시계가 크게 잘못된 경우 키 거부가 아닌 만료된 요청으로 읽힙니다.
Mouser. mouser.com/api-hub에서 Search API 키를 요청하세요. 단일 키이며 쿼리 매개변수로 전송되고 이메일로 도착합니다.
MCP 클라이언트 구성
위와 같이 설치하면 명령이 PATH에 있으므로 경로나 환경이 필요하지 않습니다. 자격 증명은 구성 파일에서 오기 때문입니다:
{
"mcpServers": {
"eparts-search-mcp": {
"command": "eparts-search-mcp"
}
}
}일부 클라이언트는 ~/.local/bin을 포함하지 않는 빈 환경으로 서버를 시작합니다. 해당 경우 절대 경로를 대신 지정하세요:
{
"mcpServers": {
"eparts-search-mcp": {
"command": "/home/you/.local/bin/eparts-search-mcp"
}
}
}설치 없이 소스 체크아웃에서 실행하거나 구성 파일 대신 클라이언트를 통해 자격 증명을 전달하려면:
{
"mcpServers": {
"eparts-search-mcp": {
"command": "/path/to/eparts-search-mcp/.venv/bin/python",
"args": ["-m", "eparts_search_mcp"],
"env": {
"DIGIKEY_CLIENT_ID": "...",
"DIGIKEY_CLIENT_SECRET": "...",
"MOUSER_API_KEY": "..."
}
}
}
}속도 제한
각 유통사는 하루에 약 천 번의 호출을 허용하므로 모든 요청에 예산이 적용됩니다. 초당 및 분당 창은 대기로 강제되며, 일일 창은 호출자가 자정에 재설정되는 할당량을 기다릴 수 없으므로 대신 오류를 보고하는 하드 스톱입니다. 일일 카운터는 영속화되므로 서버를 다시 시작해도 재설정되지 않습니다.
기본값:
창 | DigiKey | LCSC | Mouser |
초당 | 2 | 1 | 1 |
분당 | 60 | 45 | 25 |
일당 | 1000 | 1000 | 1000 |
버스트 | 5 | 5 | 3 |
최대 대기 | 10초 | 10초 | 10초 |
LCSC는 분당 60회 키워드 검색과 하루 천 번을 문서화하며 성공한 호출만 계산합니다. 분당 기본값은 문서화된 상한보다 낮게 설정되는데, 유통사에 의해 제한되는 것이 로컬에서 대기하는 것보다 비용이 더 들기 때문입니다. LCSC 자체 카운터가 호출을 거부하는 경우에도 로컬 예산과 구별하기 위해 오류에 명시됩니다.
모든 값은 환경 변수 또는 TOML 파일로 공급자별로 구성할 수 있습니다. none, off, unlimited 또는 0을 사용하여 창을 비활성화합니다:
export DIGIKEY_RATE_PER_DAY=250
export DIGIKEY_RATE_PER_MINUTE=30
export LCSC_RATE_PER_MINUTE=20
export MOUSER_RATE_PER_SECOND=none
export MOUSER_RATE_BURST=5
export MOUSER_RATE_MAX_WAIT=30이 값들은 구성 파일(기본적으로 ~/.config/eparts-search-mcp/config.toml 또는 EPARTS_CONFIG가 가리키는 위치)에도 있으며 config.example.toml을 참조하세요. 환경 변수는 파일보다 우선하므로 클라이언트 실행 명령이 디스크의 구성을 편집하지 않고 제한을 조정할 수 있습니다.
캐시된 응답은 예산을 소비하지 않고 제공됩니다. source_status는 하루 중 남은 예산을 보고합니다.
기타 설정
변수 | 기본값 | 의미 |
|
| TOML 구성 파일 경로; 설정되지 않은 경우 기본 위치가 읽힘 |
|
| 캐시 및 사용량 데이터베이스 |
| 3600 | 캐시된 응답 수명(초) |
| 30 | HTTP 타임아웃(초) |
| false | 합성 데이터를 반환하는 DigiKey 샌드박스 호스트 사용 |
| US | 검색할 DigiKey 사이트 |
| USD | DigiKey 가격 통화 |
| en | DigiKey 결과 언어 |
| false | 시뮬레이션된 데이터를 반환하는 LCSC 테스트 호스트 사용 |
| USD | LCSC 가격 통화: USD, EUR, HKD 또는 CNY |
| EN | LCSC 결과 언어: EN 또는 CN |
디스크의 파일
서버가 유지하는 모든 것은 XDG 기본 디렉터리 아래에 있으므로 설치가 홈 디렉터리 외부의 어떤 것도 소유하지 않습니다:
항목 | 위치 |
실행 파일 |
|
도구 환경 |
|
자격 증명 및 설정 |
|
캐시 및 일일 사용량 카운터 |
|
XDG_CONFIG_HOME과 XDG_STATE_HOME은 설정되지 않은 경우 각각 ~/.config와 ~/.local/state로 기본 설정됩니다. EPARTS_CONFIG와 EPARTS_CACHE_PATH는 마지막 두 항목을 재정의합니다. uv tool uninstall eparts-search-mcp로 제거하면 구성과 캐시가 그대로 유지됩니다. 해당 디렉터리도 삭제하려면 직접 삭제하세요.
아키텍처
classDiagram
class MCPServer {
search_parts(keyword, sources, merge)
part_details(part_number, sources)
source_status()
clear_cache(source)
}
class SearchService {
+providers: dict
+limiters: dict
+resolve_sources(sources)
+search(...) SearchResult
+details(...) list~Part~
}
class Provider {
<<abstract>>
+name: str
+configured: bool
+search(...) list~Part~
+details(...) Part
#_cached_request(...)
}
class DigiKeyProvider {
-_token: str
-_access_token()
-_manufacturer_filter_id(name)
-_pick_variation(product)
}
class LCSCProvider {
-_headers(payload)
-_to_part(entry)
+sign(payload, key, secret, nonce, timestamp)
}
class MouserProvider {
-_parse_response(response)
+parse_price(raw)
}
class RateLimiter {
+acquire()
+remaining_today()
}
class Cache {
+get(key)
+set(key, provider, value, ttl)
+get_daily_usage(provider, day)
+increment_daily_usage(provider, day)
}
class Part {
+source, mpn, manufacturer
+stock, price_breaks, specs
+unit_price_at(quantity)
}
class MergedPart {
+mpn
+offers: list~Part~
+sources
}
MCPServer --> SearchService
SearchService --> Provider
SearchService --> RateLimiter
SearchService --> Cache
Provider <|-- DigiKeyProvider
Provider <|-- LCSCProvider
Provider <|-- MouserProvider
Provider --> RateLimiter : acquire before call
Provider --> Cache : read before spending budget
RateLimiter --> Cache : persist daily counter
Provider --> Part : produces
MergedPart o-- Part : groups offers by part number한 공급자 호출의 요청 흐름:
sequenceDiagram
participant C as MCP client
participant S as SearchService
participant P as Provider
participant K as Cache
participant L as RateLimiter
participant A as Distributor API
C->>S: search_parts(keyword, sources)
S->>S: resolve_sources
par each source
S->>P: search(keyword)
P->>K: get(key)
alt cached
K-->>P: payload
else not cached
P->>L: acquire()
alt budget available
L-->>P: ok
P->>A: HTTP request
A-->>P: response
P->>K: set(key, payload)
else daily quota spent
L--)P: RateLimitExceeded
end
end
P-->>S: parts or error
end
S->>S: merge by part number
S-->>C: results plus per source errors세 가지 API에 대한 참고 사항
DigiKey는 OAuth2 클라이언트 자격 증명을 사용합니다. 토큰은 10분 동안 유효하며 메모리에 캐시됩니다. 요청에는 bearer 토큰과 함께 클라이언트 ID 헤더가 필요합니다. 필터는 불투명한 ID로 표현되므로 제조사 이름은 먼저 manufacturers 엔드포인트를 통해 확인됩니다.
LCSC는 토큰 대신 각 요청에 서명합니다. 키, nonce, 타임스탬프 및 정렬된 쿼리 매개변수가 비밀로 해시되고 다이제스트가 헤더로 전송됩니다. Mouser와 마찬가지로 요청이 실패해도 HTTP 200으로 응답하며 실제 결과는 본문의 code 필드에 있으며 어댑터는 이를 권위 있는 것으로 취급합니다. 부품별 엔드포인트가 없으므로 세부 정보 조회는 키워드 검색에서 정확히 일치하는 항목을 선택하는 방식입니다. 근사 일치만 반환하는 키워드 검색은 그럴듯한 잘못된 결과 대신 결과 없음을 산출합니다. 제조사 필터도 없으므로 제조사는 키워드에 포함되고 결과는 반환 시 필터링됩니다.
Mouser는 쿼리 매개변수로 전달되는 API 키를 사용하며 요청이 실패해도 HTTP 200으로 응답하고 실패를 Errors 배열에 넣습니다. 어댑터는 해당 배열을 권위 있는 것으로 취급합니다. 가격은 숫자가 아닌 지역화된 표시 문자열로 도착합니다.
매개변수 사양은 세 유통사 간에 공유 어휘가 없으므로 공통 스키마로 정규화하는 대신 이름/값 맵으로 전달됩니다. LCSC의 릴 할증료도 단위 가격 사다리로 표현할 수 없는 주문당 수수료이므로 동일한 방식으로 보고됩니다.
이 도구는 Claude Code를 사용하여 제작되었습니다.
Available Tools
4 toolsclear_cacheA
Drop cached distributor responses to force fresh stock and pricing.
Cached responses do not count against the daily quota, so clearing the cache makes subsequent searches spend real request budget.
| Name | Required | Description | Default |
|---|---|---|---|
| source | No | Clear one source only; omit to clear everything |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that cached responses are dropped (a destructive action) and that doing so affects the quota of subsequent searches, which is a meaningful behavioral trait. It does not mention undoability, but for a cache clear that is acceptable. No contradictions with annotations exist since none are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise paragraphs, front-loaded with the primary action and then explaining the quota implication. There is no fluff or redundancy; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (one optional parameter, no required parameters) and that an output schema exists, the description adequately covers purpose, effect, and quota behavior. There is nothing missing that an agent would need to decide when and how to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents the 'source' parameter with 'Clear one source only; omit to clear everything' (100% schema coverage). The description adds no extra meaning about the parameter, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (drop cached distributor responses) and the goal (force fresh stock and pricing). This is a distinct resource and action, and none of the sibling tools (search_parts, source_status, part_details) perform cache clearing, so it's easily differentiated without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that clearing the cache forces fresh data and makes subsequent searches consume real request budget, implying the tool should be used when fresh data is required. However, it does not explicitly name alternative tools or state when not to use it, so it falls short of the 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.
part_detailsA
Look up one part by part number, with full specifications and pricing.
Distributor part numbers only resolve at the distributor that issued them, so a lookup by one distributor's number will normally return a result from that source alone.
| Name | Required | Description | Default |
|---|---|---|---|
| sources | No | Which distributors to query. Omit to query all configured sources. | |
| part_number | Yes | Manufacturer part number, or a distributor part number such as 296-1234-ND for DigiKey, C22452 for LCSC or 511-LM317T for Mouser |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavioral trait: distributor part numbers only resolve at the issuing distributor, and results will normally come from that source alone. This is genuinely non-obvious and valuable. It does not mention auth, rate limits, or error handling, but for a lookup tool with an output schema, this covers the main gotcha.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place. The first states the core purpose; the second delivers a critical behavioral caveat. No filler, no repetition, and the purpose is front-loaded. This is an efficient, well-structured description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, 1 optional), the existence of an output schema, and the key distributor caveat being addressed, the description is functionally complete. It lacks only more explicit usage routing, which is covered under usage guidelines, but overall nothing essential is missing for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already includes detailed descriptions for both parameters, including concrete examples for part_number (e.g., '296-1234-ND' for DigiKey) and the meaning of sources. The description adds no additional parameter-specific meaning beyond what the schema provides, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('look up one part by part number'), the resource ('part'), and the scope ('full specifications and pricing'). It distinguishes from sibling tools: search_parts is for searching, source_status is for status, and clear_cache is for cache management. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description hints at when to use this tool (when you have a specific part number) versus searching, but it does not explicitly name alternatives or exclusion conditions. The distributor-resolution note gives behavioral context but not direct routing. Sibling differentiation is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_partsA
Search DigiKey, LCSC and Mouser for electronic components.
Searches every configured distributor by default and merges offers for the
same part number so prices can be compared. Pass sources to query one
distributor on its own. If a distributor fails or is out of quota, results
from the others are still returned and the failure is listed under errors.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum parts per source | |
| merge | No | Group offers for the same part number into one entry with a price comparison. Set false to keep each distributor's results separate. | |
| keyword | Yes | Part number, description or search phrase | |
| sources | No | Which distributors to query: ['digikey'], ['lcsc'], ['mouser'], or any combination. Omit to search every configured source. | |
| quantity | No | Quantity used for the price comparison | |
| manufacturer | No | Restrict results to one manufacturer, by name | |
| in_stock_only | No | Exclude parts with no stock | |
| include_specs | No | Include parametric specifications |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the full burden falls on the description — and it delivers. It discloses aggregation (merges offers by part number), default scope (every configured distributor), and importantly the partial-failure semantics (a failing or quota-exhausted distributor still yields results from others, with the failure surfaced under errors). These are non-obvious behaviors not visible in the schema. No contradictions exist since no annotations were declared.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight, front-loaded sentences: purpose first, then merge behavior, then source-scoping and failure tolerance. Each sentence adds a distinct piece of information with no padding or repetition. Minor nit — 'electronic components' is slightly generic — but overall the structure is efficient and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter multi-distributor tool with a 100%-coverage schema and an output schema present, the definition is largely complete: it covers default behaviors, the sources override, quantity/limit context, and edge-case handling. The one genuine gap is sibling routing — when the keyword is an exact part number, an agent may need guidance that part_details is the better fit. Minor given the overall richness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% — every one of the 8 parameters already carries a descriptive schema entry (limit, merge, keyword, sources, quantity, manufacturer, in_stock_only, include_specs). Baseline is therefore 3. The description adds marginal value by explaining the sources override and the merge default, but it does not compensate beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource set: 'Search DigiKey, LCSC and Mouser for electronic components.' This is precise and clearly distinguishes the tool from its siblings — source_status checks health, part_details fetches a single part, clear_cache manages cache. An agent can tell this is the multi-distributor search tool without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description thoroughly explains the tool's own operating behavior: default all-sources search, merging of same-part offers, the `sources` override, and failure tolerance. However, it never names an alternative or states when NOT to use it. Critically, since the `keyword` field accepts a part number, an agent could be torn between search_parts and part_details, and nothing here routes that choice. Context is strong, but explicit exclusions/alternatives are absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
source_statusA
Report which distributors are configured and how much request budget is left.
Use this when a search reports a rate limit error, to see the configured limits and how many requests remain for the day.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden of disclosing behavior. It states the tool reports configuration and budget, which implies a read-only operation, but it does not explicitly clarify that it has no side effects or mention any caveats (e.g., caching, staleness). This is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the primary purpose front-loaded and the usage guidance immediately following. Every sentence earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters) and the existence of an output schema (so return values need not be described), the description fully covers what the tool does and when to use it. Nothing an agent needs to know to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters and 100% coverage (empty object), so the description has nothing to add for parameters. Per calibration, a tool with 0 parameters gets a baseline of 4, and the description does not detract from that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') followed by the precise resource ('which distributors are configured and how much request budget is left'). It uniquely distinguishes this from sibling tools like search_parts or clear_cache, which clearly have different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger condition ('Use this when a search reports a rate limit error'), making the intended context clear. However, it does not name alternatives or explicitly state when not to use it, so it misses the full when/when-not/alternatives structure that would merit a 5.
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.
4 tool updates
v0.1.0- First observed
clear_cache - First observed
part_details - First observed
search_parts - First observed
source_status
TDQS
Scored across 4 tools
Each tool serves a distinct purpose: searching across distributors, reporting status/quotas, fetching detailed part info, and clearing cache. There is no overlap or ambiguity between actions.
All tool names follow a consistent verb_noun pattern (search_parts, source_status, part_details, clear_cache), making the API predictable and easy to navigate.
With 4 tools, the server is well-scoped for its purpose of component search and comparison. Each tool earns its place, covering search, details, status, and cache management without bloat.
The core workflow is covered: search, view details, check quota, and manage cache. Minor gaps exist (e.g., no bulk operation or category browsing), but the essential lifecycle for a search-focused server is present.
Maintenance
Related MCP Connectors
Find electronic parts with live Mouser, DigiKey and JLCPCB stock and prices, check BOMs, order.
Search real parts with datasheet-provenance specs, check compatibility and compose priced BOMs.
Electronic component sourcing, BOM management, and PCB design workflows.
Electronic component datasheets for AI agents: pinouts, specs, package info and design checks.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceEnables searching for electronic components through the Nexar Supply API, providing detailed part information including manufacturer, pricing, specifications, and datasheets.-
- FlicenseNot gradedqualityCmaintenanceEnables searching for electronic components, comparing prices across distributors, checking availability, and retrieving datasheets through the Nexar/Octopart API with specialized tools for resistors, capacitors, inductors, semiconductors, crystals, and connectors.11-
- AlicenseAqualityAmaintenanceEnables 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.11139MIT
- FlicenseAqualityBmaintenanceEnables AI assistants to search JLCPCB's 450K+ electronic component catalog with real-time stock levels and pricing, supporting keyword search, filtering, and detailed component information.440 PyPI8-