supplier-directory

A supplier directory that does not rot: contacts, payment terms, lead times, due-review report.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
90%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,090Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (1.63% 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": {
    "supplier-directory": {
      "command": "uvx",
      "args": [
        "https://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/supplier-list.mcpb"
      ]
    }
  }
}

Runnable packages

mcpbhttps://github.com/theluckystrike/mcp-servers/releases/download/v0.22.0/supplier-list.mcpb0.22.0stdio

Remote endpoints

https://mcp.zovo.one/mcp/supplier-directorystreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡supplier_add(name, category, contact_name, email, phone, ...)

Add a supplier to the directory and return its SUP-YYYY-NNNN number: the name, what they supply, who to contact and how, the payment terms, the lead time in days, and notes. Free tier: 10 suppliers; removing one you no longer use frees its slot.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 200,
      "description": "Who you buy from, e.g. Shenzhen Box Co, or Acme Fasteners"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "What they supply, e.g. Packaging, Raw materials, Print. Free-form; supplier_list filters on it"
    },
    "contact_name": {
      "type": "string",
      "maxLength": 200,
      "description": "Your person there, e.g. Maria Chen"
    },
    "email": {
      "type": "string",
      "maxLength": 200,
      "description": "Orders or accounts email"
    },
    "phone": {
      "type": "string",
      "maxLength": 60,
      "description": "Phone number as you would dial it"
    },
    "website": {
      "type": "string",
      "maxLength": 400,
      "description": "Website or storefront URL"
    },
    "address": {
      "type": "string",
      "maxLength": 400,
      "description": "Postal or visiting address"
    },
    "payment_terms": {
      "type": "string",
      "maxLength": 200,
      "description": "The terms you buy on, e.g. Net 30, 50% upfront, Due on receipt"
    },
    "lead_time_days": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650,
      "description": "Typical days from order to delivery, e.g. 14"
    },
    "notes": {
      "type": "string",
      "maxLength": 2000,
      "description": "Anything worth remembering: minimum orders, who to escalate to, why you dropped them last time"
    }
  },
  "required": [
    "name",
    "category"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢supplier_list(category, q)

List the supplier directory A to Z by name: contact, payment terms, lead time, when each record was last reviewed and how many days ago that was. Filter by category and by free text across every field. Reads only.

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "Only suppliers in exactly this category, case-insensitive"
    },
    "q": {
      "type": "string",
      "maxLength": 200,
      "description": "Only suppliers whose name, category, contact, terms or notes contain this text, case-insensitive"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢supplier_get(supplier)

Read one supplier record in full by SUP number or name: every contact field, the payment terms, the lead time, the notes, and when the record was last reviewed. Reads only.

Input Schema

{
  "type": "object",
  "properties": {
    "supplier": {
      "type": "string",
      "maxLength": 200,
      "description": "The supplier id, e.g. SUP-2026-0003, or the name when only one supplier has it"
    }
  },
  "required": [
    "supplier"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡supplier_update(supplier, name, category, contact_name, email, ...)

Change any of a supplier's fields by SUP number or name: name, category, the contact fields, payment terms, lead time, notes. Only the fields you pass change; pass at least one. The SUP number and the review stamp are not writable here -- supplier_mark_reviewed does the stamp.

Input Schema

{
  "type": "object",
  "properties": {
    "supplier": {
      "type": "string",
      "maxLength": 200,
      "description": "The supplier id, e.g. SUP-2026-0003, or the name when only one supplier has it"
    },
    "name": {
      "type": "string",
      "maxLength": 200,
      "description": "Rename the supplier"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "What they supply, e.g. Packaging, Raw materials, Print. Free-form; supplier_list filters on it"
    },
    "contact_name": {
      "type": "string",
      "maxLength": 200,
      "description": "Your person there, e.g. Maria Chen"
    },
    "email": {
      "type": "string",
      "maxLength": 200,
      "description": "Orders or accounts email"
    },
    "phone": {
      "type": "string",
      "maxLength": 60,
      "description": "Phone number as you would dial it"
    },
    "website": {
      "type": "string",
      "maxLength": 400,
      "description": "Website or storefront URL"
    },
    "address": {
      "type": "string",
      "maxLength": 400,
      "description": "Postal or visiting address"
    },
    "payment_terms": {
      "type": "string",
      "maxLength": 200,
      "description": "The terms you buy on, e.g. Net 30, 50% upfront, Due on receipt"
    },
    "lead_time_days": {
      "type": "integer",
      "minimum": 0,
      "maximum": 3650,
      "description": "Typical days from order to delivery, e.g. 14"
    },
    "notes": {
      "type": "string",
      "maxLength": 2000,
      "description": "Anything worth remembering: minimum orders, who to escalate to, why you dropped them last time"
    }
  },
  "required": [
    "supplier"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴supplier_remove(supplier)

Remove a supplier from the directory by SUP number or name, returning the record as it stood so nothing is lost silently. The SUP number is never reissued. On the free tier the slot is freed for another supplier.

Input Schema

{
  "type": "object",
  "properties": {
    "supplier": {
      "type": "string",
      "maxLength": 200,
      "description": "The supplier id, e.g. SUP-2026-0003, or the name when only one supplier has it"
    }
  },
  "required": [
    "supplier"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
supplier_mark_reviewed(supplier, date)

Stamp a supplier's record as reviewed on a date, today by default: you have checked the contact, the terms and the lead time are still true. This is the stamp supplier_due_review reads, so a reviewed record stops being flagged as stale.

Input Schema

{
  "type": "object",
  "properties": {
    "supplier": {
      "type": "string",
      "maxLength": 200,
      "description": "The supplier id, e.g. SUP-2026-0003, or the name when only one supplier has it"
    },
    "date": {
      "type": "string",
      "maxLength": 10,
      "description": "The date you reviewed the record, YYYY-MM-DD. Default today"
    }
  },
  "required": [
    "supplier"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
supplier_due_review(days)

The due-review report: every supplier whose record has not been reviewed in the last N days -- 90 unless you say otherwise -- most overdue first. A record never reviewed is always due, whatever its age. This is the report that keeps the directory from rotting. Pro feature.

Input Schema

{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 3650,
      "description": "A record is due when its last review is older than this many days. Default 90"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢supplier_export(format, category, q)

Export the supplier directory as CSV or a Markdown table: every field, one row per supplier, A to Z by name. CSV opens in any spreadsheet; Markdown drops into a doc, a wiki or a README. Filter by category and free text first if you only want part of it. CSV is free; Markdown is Pro.

Input Schema

{
  "type": "object",
  "properties": {
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "markdown"
      ],
      "description": "csv (default) or markdown"
    },
    "category": {
      "type": "string",
      "maxLength": 200,
      "description": "Only suppliers in exactly this category, case-insensitive"
    },
    "q": {
      "type": "string",
      "maxLength": 200,
      "description": "Only suppliers whose fields contain this text, case-insensitive"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢license_status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
license_activate(key)

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

Input Schema

{
  "type": "object",
  "properties": {
    "key": {
      "type": "string",
      "description": "License key from checkout, MCPL1.<payload>.<signature>"
    }
  },
  "required": [
    "key"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools