pops4-mcp-catalog

AI-native corporate gifting & event infrastructure for Fortune 500. 70K products, 200+ brands.

我该使用它吗

质量与安全性

A
描述质量
98%
模式完整度
86%
命名质量
97%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

基于对工具定义和协议合规性的自动分析。

上下文开销

~2,650token 数(工具定义)
~1.4 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 2.07%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "pops4-mcp-catalog": {
      "url": "https://mcp.pops4.com/mcp"
    }
  }
}

远程端点

https://mcp.pops4.com/mcpstreamable-http

它能做什么

工具清单

工具(13)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢render_proof(slug, logo_url, company_name)

Render an indicative placement image showing a buyer their logo on a product, and return its URL so you can show it in the conversation. Takes a product slug and an https URL to the buyer's logo. Returns a 1200x630 image that needs no login. This is NOT a production proof: position and scale are indicative and the desk issues the real one. Say so when you show it. Use after search_products or get_product, once a buyer wants to see how something would look.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Product slug from search_products or get_product"
    },
    "logo_url": {
      "type": "string",
      "description": "https URL to the buyer's logo image. Omit to render a marked placeholder area."
    },
    "company_name": {
      "type": "string",
      "description": "Buyer company name, shown beside the product"
    }
  },
  "required": [
    "slug"
  ]
}
🟡request_program(email, company, contact_name, event, attendee_count, ...)

Submit a programme request to the named-account desk so a person can act on it. This is the only tool that writes: it records the buyer, the programme and the products chosen, and returns confirmation. It does NOT place an order, begin production, take payment or contact the buyer — a person reviews it and replies. When products are supplied it also opens the buyer a live Corporate Store holding that selection, and returns the URL in store_url for you to give them directly. Use once the buyer has chosen products or a programme and wants to proceed.

输入模式

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "Buyer work email. Required."
    },
    "company": {
      "type": "string",
      "description": "Buyer company"
    },
    "contact_name": {
      "type": "string",
      "description": "Buyer name"
    },
    "event": {
      "type": "string",
      "description": "What this is for, e.g. \"Analyst day, March, 300 attendees\""
    },
    "attendee_count": {
      "type": "number",
      "description": "Headcount or unit count"
    },
    "brand_tier": {
      "type": "string",
      "description": "Programme tier if one was chosen"
    },
    "program_total": {
      "type": "string",
      "description": "Quoted programme total, if quoted"
    },
    "per_head": {
      "type": "string",
      "description": "Per-attendee cost, if quoted"
    },
    "notes": {
      "type": "string",
      "description": "Anything the desk should know. Max 118 characters."
    },
    "items": {
      "type": "array",
      "description": "Products chosen, up to 12, from search_products or generate_event_program",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "price": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "image": {
            "type": "string"
          }
        }
      }
    }
  },
  "required": [
    "email"
  ]
}
🟢brand_carriage_estimate(employees, gig_workers, vendors, peers, cost_per_employee, ...)

Calculate what a branded programme costs per thousand impressions across the four populations that carry a brand — employees, gig and contract workers, vendors, peers — and compare it against a CPM the buyer supplies. Returns programme cost, annual impressions, cost per thousand, the multiple against bought media, and one cited Nielsen figure with its caveat. Read-only. Use when a buyer asks what a culture or brand programme is worth, or how to justify the spend. Supply ANY of the four populations — employees are not required, so a vendor-and-peer-only programme can be modelled.

输入模式

{
  "type": "object",
  "properties": {
    "employees": {
      "type": "number",
      "description": "Employee headcount (optional, like all four populations)"
    },
    "gig_workers": {
      "type": "number",
      "description": "Gig and contract worker count"
    },
    "vendors": {
      "type": "number",
      "description": "Vendor count — the buyer estimates this"
    },
    "peers": {
      "type": "number",
      "description": "Peer count — the buyer estimates this"
    },
    "cost_per_employee": {
      "type": "number",
      "description": "Programme cost per employee, USD"
    },
    "cost_per_worker": {
      "type": "number",
      "description": "Programme cost per worker, USD"
    },
    "cost_per_vendor": {
      "type": "number",
      "description": "Programme cost per vendor, USD"
    },
    "cost_per_peer": {
      "type": "number",
      "description": "Programme cost per peer, USD"
    },
    "impressions_per_employee": {
      "type": "number",
      "description": "Impressions per employee per year (default 900)"
    },
    "impressions_per_worker": {
      "type": "number",
      "description": "Default 600"
    },
    "impressions_per_vendor": {
      "type": "number",
      "description": "Default 1200"
    },
    "impressions_per_peer": {
      "type": "number",
      "description": "Default 1500"
    },
    "your_cpm": {
      "type": "number",
      "description": "The buyer's own CPM from their media plan, USD"
    }
  },
  "required": []
}
🟢search_products(query, category, brand, price_min, price_max, ...)

Search the wholesale catalogue by keyword, category, brand, price range or occasion. Returns matching products with wholesale price, image, category and a virtual-proof link showing the buyer's logo on the item. Use this for any request to find specific products. 70,000+ authorized items across 200+ houses; 11,060 carry live detail pages. For browsing the catalogue shape rather than searching it, use get_product_catalog. Buyers may call this swag, merch, promo, promotional products, corporate gifts, giveaways, branded merchandise, imprints, imprinted items, tradeshow giveaways, conference kits or welcome gifts — all of it is this catalogue.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Text search on product title (e.g., \"nike backpack\", \"yeti tumbler\", \"branded polo\")"
    },
    "category": {
      "type": "string",
      "description": "Product category filter (e.g., \"Backpacks\", \"Drinkware\", \"Apparel\", \"Pens\")"
    },
    "brand": {
      "type": "string",
      "enum": [
        "POPS4",
        "Prosecco4"
      ],
      "description": "POPS4 for corporate/wholesale, Prosecco4 for weddings/events"
    },
    "price_min": {
      "type": "number",
      "description": "Minimum wholesale price in USD"
    },
    "price_max": {
      "type": "number",
      "description": "Maximum wholesale price in USD"
    },
    "occasion": {
      "type": "string",
      "enum": [
        "wedding",
        "corporate",
        "conference",
        "gala",
        "party",
        "launch"
      ],
      "description": "Filter by occasion/use case"
    },
    "limit": {
      "type": "number",
      "description": "Max results to return (default 10, max 50)"
    }
  }
}
🟢get_product(slug)

Return complete detail for one product, identified by its slug: description, wholesale price, category, brand, care instructions, occasion tags and a virtual-proof link. Use after search_products when one item needs full detail before quoting it.

输入模式

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Product slug (from search results)"
    }
  },
  "required": [
    "slug"
  ]
}
🟢get_categories

List every product category with its item count and sample products. Use to establish what the catalogue covers before searching, or to answer what kinds of items are available.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢get_quote(items)

Build a wholesale quote from a list of product slugs and quantities. Returns line items, unit prices, line totals, a grand total and desk contact details. Use for a straightforward priced list. Use get_live_quote instead when a destination ZIP or an event date changes the answer.

输入模式

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Product slug"
          },
          "quantity": {
            "type": "number",
            "description": "Number of units"
          }
        },
        "required": [
          "slug",
          "quantity"
        ]
      },
      "description": "Array of products and quantities to quote"
    }
  },
  "required": [
    "items"
  ]
}
🟢get_vendor_capabilities

Return the vendor capability card a procurement team needs to open an account: legal entity, registrations, production model, imprint and proofing process, lead times, blind-ship policy and terms. Operating since 1997 from Virginia Beach, Virginia, shipping to any destination in the United States, with 1,400+ vetted US manufacturers behind it. Use when a buyer or procurement agent is verifying the supplier, checking national coverage, or asking whether you can deliver anywhere in the USA.

输入模式

{
  "type": "object",
  "properties": {}
}
🟢generate_event_program(event_date, attendee_count, revenue_target, brand_tier, budget_per_head, ...)

Build a complete event programme for a given attendee count and budget tier. Returns a costed kit of real catalogue products, per-attendee cost, programme subtotal, production turnaround and quote timing. Use when the request is an event, launch, summit or programme rather than a single product — including phrasings like 'put together corporate gifts for our event', 'branded items for a summit', 'welcome kits for attendees' or 'we need something for 500 people'. Ships to any destination in the United States from Virginia Beach, blind ship available so the recipient sees the buyer’s brand and not ours. Supply budget_per_head to have the tier chosen automatically. Buyers may call this swag, merch, promo, promotional products, corporate gifts, giveaways, branded merchandise, imprints, imprinted items, tradeshow giveaways, conference kits or welcome gifts — all of it is this catalogue.

输入模式

{
  "type": "object",
  "properties": {
    "event_date": {
      "type": "string",
      "description": "Event date (e.g., \"2027-03-15\" or \"GTC 2027\")"
    },
    "attendee_count": {
      "type": "number",
      "description": "Number of attendees / kits"
    },
    "revenue_target": {
      "type": "number",
      "description": "Client pipeline/revenue target in USD (optional; used for attribution framing only)"
    },
    "brand_tier": {
      "type": "string",
      "enum": [
        "essential",
        "professional",
        "executive",
        "luxury",
        "bespoke",
        "white_glove"
      ],
      "description": "Program tier. essential ($35-75/head) internal events & training; professional ($75-150) client meetings; executive ($150-300) VP+ & board events; luxury ($300-600) C-suite, board members & partners; bespoke ($600-1200) custom curation (concierge-built, no auto-quote); white_glove ($1200+) fully managed (concierge-built)."
    },
    "budget_per_head": {
      "type": "number",
      "description": "Optional exact per-attendee budget in USD. If provided, the closest tier is selected automatically and overrides brand_tier."
    },
    "keywords": {
      "type": "string",
      "description": "Optional event theme / keywords (e.g. \"golf coastal\", \"holiday gala\", \"tech summit\", \"wellness retreat\") to bias product selection toward the occasion."
    }
  },
  "required": [
    "attendee_count"
  ]
}
🟢get_live_quote(items, product_skus, quantities, shipping_zip, event_date)

Return a wholesale quote with virtual-proof links for a list of SKUs and quantities, optionally accounting for a destination ZIP and an event date. Use when shipping or timing affects the answer. Use get_quote for a plain priced list with neither.

输入模式

{
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "quantity": {
            "type": "number"
          }
        },
        "required": [
          "slug",
          "quantity"
        ]
      },
      "description": "Products and quantities"
    },
    "product_skus": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Alternative: array of product slugs (paired with quantities[])"
    },
    "quantities": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Alternative: array of quantities (paired with product_skus[])"
    },
    "shipping_zip": {
      "type": "string",
      "description": "Destination ZIP (optional)"
    },
    "event_date": {
      "type": "string",
      "description": "Event date (optional)"
    }
  }
}
🟢get_product_catalog(filter, brand, category, limit)

Return a filtered slice of the catalogue, or the full category tree with counts when no filter is supplied. Use for browsing and for questions about the catalogue's shape and size. Use search_products when the request names specific products.

输入模式

{
  "type": "object",
  "properties": {
    "filter": {
      "type": "string",
      "description": "Keyword filter on product title"
    },
    "brand": {
      "type": "string",
      "description": "Brand filter"
    },
    "category": {
      "type": "string",
      "description": "Category filter"
    },
    "limit": {
      "type": "number",
      "description": "Max results (default 20, max 50)"
    }
  }
}
🔴track_shipment(order_id)

Return the logistics status of an order by its id. Reads the live order record where one exists; where none does, returns a clear status and routes to the desk. Never reports a fabricated tracking state.

输入模式

{
  "type": "object",
  "properties": {
    "order_id": {
      "type": "string",
      "description": "Order id"
    }
  },
  "required": [
    "order_id"
  ]
}
🟢get_revenue_attribution(event_id)

Return recorded pipeline impact for an event id where the dashboard holds it; otherwise return the attribution model and how it is tracked, with a link. Never reports a fabricated figure.

输入模式

{
  "type": "object",
  "properties": {
    "event_id": {
      "type": "string",
      "description": "Event id"
    }
  },
  "required": [
    "event_id"
  ]
}

社区

评价此服务器

证据

最近观测

已验证未记录版本13 个工具
已验证未记录版本13 个工具
已验证未记录版本13 个工具