ironscout
Read-only ammo pricing: offer search, caliber market snapshots, retailer directory. Descriptive.
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"ironscout": {
"url": "https://mcp.ironscout.ai/mcp"
}
}
}원격 엔드포인트
https://mcp.ironscout.ai/mcpstreamable-http할 수 있는 일
도구 목록
도구 (5)
🟢search_offers(q, caliber, brand, grain, case, ...)
Search canonical ammunition products and their current per-retailer offers. Results are descriptive only — prices, availability, $/round, observation time, and provenance, with no verdicts, scores, or recommendations. Use each offer's `outUrl` for outbound links (do not rewrite it). `sort` is a mechanical ordering, never a judgement.
입력 스키마
{
"type": "object",
"properties": {
"q": {
"description": "Free-text query over product name/brand/description.",
"type": "string",
"minLength": 1,
"maxLength": 200
},
"caliber": {
"description": "Canonical caliber, e.g. \"9mm\" or \".223/5.56\".",
"type": "string",
"minLength": 1,
"maxLength": 60
},
"brand": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"grain": {
"description": "Bullet weight in grains.",
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 2000
},
"case": {
"description": "Case material, e.g. \"Brass\", \"Steel\".",
"type": "string",
"minLength": 1,
"maxLength": 40
},
"roundCountMin": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"roundCountMax": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 100000
},
"inStock": {
"description": "When true, only products with in-stock offers are returned.",
"type": "boolean"
},
"sort": {
"description": "Mechanical ordering only. Defaults to pricePerRoundAsc.",
"type": "string",
"enum": [
"pricePerRoundAsc",
"pricePerRoundDesc",
"observedAtDesc"
]
},
"page": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 1000
},
"pageSize": {
"type": "integer",
"exclusiveMinimum": 0,
"maximum": 50
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_product(canonicalProductId)
Fetch a single canonical product by its `canonicalProductId`, with current per-retailer offers. Descriptive only. Returns an `error_v1` body with `NOT_FOUND` if the id is unknown.
입력 스키마
{
"type": "object",
"properties": {
"canonicalProductId": {
"type": "string",
"minLength": 1,
"maxLength": 64,
"description": "Canonical product id (CUID) from search results."
}
},
"required": [
"canonicalProductId"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_market_snapshot(caliber, windowDays)
Caliber-level price distribution (median, p25, p75, min, max) over a rolling window. Purely descriptive statistics with methodology and sample counts; never a forecast or recommendation. Returns `error_v1` `NOT_FOUND` when no snapshot exists for the caliber/window. When `extremaSuppressedByPolicy` is `true`, `min`, `max` and both `segments.*.min` / `segments.*.max` are `null` BY POLICY rather than for lack of data: that caliber's published extremes are withheld pending revalidation. The median, quartiles, `p95`, segment medians and counts remain valid and complete — `p95` is a percentile over the whole window rather than a single observation, so it is not withheld. Do not infer or substitute a floor for those calibers, and do not treat `p95` as a stand-in for the withheld `max`. This is distinct from `dataStatus: "INSUFFICIENT_DATA"`, which means the sample was too thin to compute anything.
입력 스키마
{
"type": "object",
"properties": {
"caliber": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Canonical caliber, e.g. \"9mm\"."
},
"windowDays": {
"description": "Rolling window in days. 7 or 30; defaults to 30.",
"anyOf": [
{
"type": "number",
"const": 7
},
{
"type": "number",
"const": 30
}
]
}
},
"required": [
"caliber"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_calibers
Enumerate every canonical caliber IronScout recognizes, each flagged with whether a current market snapshot exists and its sample count. Calibers without a snapshot are still listed (with `hasSnapshot: false`).
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_retailers
List currently eligible/visible retailers. Ineligible retailers are omitted entirely (fail-closed, ADR-005). Descriptive directory only.
입력 스키마
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}권장 프롬프트
search_offerssearch_offersget_productget_productlist_calibers커뮤니티
증거