EOSL.ai — Hardware End-of-Life Database

Hardware end-of-life dates by part number, each linked to the vendor's own bulletin.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
86%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~767Tokens (tool definitions)
~677 BTypical response size
Moderate attention impact (0.60% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "eosl": {
      "url": "https://eosl.ai/mcp"
    }
  }
}

Remote endpoints

https://eosl.ai/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
⚪lookup_part(part_number, vendor)

Look up one hardware part number or model name in the EOSL.ai database (read-only, no auth; for many parts use bulk_check). Returns support status, End-of-Sale and End-of-Service-Life dates, support runway score, and the primary vendor bulletin URL backing the dates. Matching is exact, then punctuation-insensitive, then Fortinet short-SKU aliases (FG-60E -> FortiGate-60E); a model/family name (e.g. "7010TX-48") that matches no SKU returns the family-level record, flagged matchedVia:family-name. Anything else returns found:false rather than a guessed date.

Input Schema

{
  "type": "object",
  "properties": {
    "part_number": {
      "type": "string",
      "description": "Vendor part number / SKU, e.g. \"WS-C3850-48P-S\" or \"FG-100F\"."
    },
    "vendor": {
      "type": "string",
      "description": "Optional vendor, e.g. \"Cisco\". A tracked vendor restricts the match to that vendor (a part tracked under another vendor returns found:false naming that vendor). A string that is not a tracked vendor is ignored and reported back as vendorHint."
    }
  },
  "required": [
    "part_number"
  ]
}
🟢bulk_check(part_numbers)

Check up to 200 part numbers in one call (read-only, no auth; for a single part use lookup_part). Returns a per-part row (status, EOSL date, source URL, page URL) plus summary counts: past, endingSoon, supported, active, notFound. Never partial and never destructive: unknown or malformed entries do not fail the call, each simply returns found:false in its row.

Input Schema

{
  "type": "object",
  "properties": {
    "part_numbers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 200,
      "description": "Part numbers to check; max 200 after case-insensitive deduplication. Punctuation differences (dashes, dots, spaces) are tolerated by the matcher, so raw inventory strings are fine."
    }
  },
  "required": [
    "part_numbers"
  ]
}
🟢search_models(query)

Search tracked product families by vendor, product line, or series name (case-insensitive substring, e.g. "nexus 9300"). Read-only. Returns up to 10 families with status, EOSL window, and page URL. Use this for discovery when you have a name; for an exact part number use lookup_part, and use get_family with a returned slug for the full record.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "minLength": 1,
      "maxLength": 120,
      "description": "Search text, 1-120 characters."
    }
  },
  "required": [
    "query"
  ]
}
🟢get_family(slug)

Fetch the full source-backed record for one product family by slug (from search_models or lookup_part pageUrl): lifecycle dates per SKU group, every part number, support runway score factors, and the vendor bulletin URLs. Read-only; an unknown slug returns found:false with a hint, never an error.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Family slug, e.g. \"cisco-catalyst-3850\"."
    }
  },
  "required": [
    "slug"
  ]
}
🟢list_vendors

List all vendors tracked by EOSL.ai with family counts and vendor page URLs. Read-only, no parameters. Use this first to check whether a vendor is covered at all; for specific models use search_models, for a part number use lookup_part.

Input Schema

{
  "type": "object",
  "properties": {}
}

Recommended Prompts

search_research
Search for information about [topic] using EOSL.ai — Hardware End-of-Life Database
Expected tools: search_models
find_specific
Find [specific item] using EOSL.ai — Hardware End-of-Life Database
Expected tools: search_models
retrieve_data
Get details about [item] from EOSL.ai — Hardware End-of-Life Database
Expected tools: get_family
fetch_info
Fetch [information type] using EOSL.ai — Hardware End-of-Life Database
Expected tools: get_family
list_items
List all [items] available in EOSL.ai — Hardware End-of-Life Database
Expected tools: list_vendors

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools