# discovery MCP server

Search and discover advertiser products through an open marketplace for AI agents.

## Links
- Registry page: https://www.getdrio.com/mcp/dev-nexbid-discovery
- Repository: https://github.com/nexbid-dev/protocol-commerce

## Install
- Endpoint: https://mcp.nexbid.dev/mcp
- Auth: Not captured

## Setup notes
- Remote endpoint: https://mcp.nexbid.dev/mcp

## Tools
- nexbid_search - <tool_description>
Search and discover products, recipes AND services in the Nexbid marketplace. Nexbid Agent Discovery — search and discover advertiser products through an open marketplace. Returns ranked results matching the query — products with prices/availability/links, recipes with ingredients/targeting signals/nutrition, and services with provider/location/pricing details.
</tool_description>

<when_to_use>
Primary discovery tool. Use for any product, recipe or service query.
Use content_type filter: "product" (only products), "recipe" (only recipes), "service" (only services), "all" (all, default).
For known product IDs use nexbid_product instead.
For category overview use nexbid_categories first.
</when_to_use>

<intent_guidance>
<purchase>Return top 3, price prominent, include checkout readiness</purchase>
<compare>Return up to 10, tabular format, highlight differences</compare>
<research>Return details, specs, availability info</research>
<browse>Return varied results, suggest categories. For recipes: show cuisine, difficulty, time.</browse>
</intent_guidance>

<combination_hints>
After search with purchase intent → nexbid_purchase for top result
After search with compare intent → nexbid_product for detailed specs
For category exploration → nexbid_categories first, then search within
For multi-turn refinement → pass previous queries in previous_queries array to consolidate search context
Recipe results include targeting signals (occasions, audience, season) useful for contextual ad matching.
</combination_hints>

<output_format>
Markdown table for compare intent, bullet list for others.
Products: product name, price with currency, availability status.
Recipes: recipe name, cuisine, difficulty, time, key ingredients, dietary tags.
Services: service name, provider, location, price model, duration.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- nexbid_product - <tool_description>
Get detailed product information by ID from the Nexbid marketplace. Returns full product details including price, availability, description, and purchase link.
</tool_description>

<when_to_use>
When you have a specific product UUID from a previous nexbid_search result.
Do NOT use for browsing — use nexbid_search instead.
</when_to_use>

<combination_hints>
Typically called after nexbid_search to get full details on a specific product.
If user wants to buy → follow with nexbid_purchase.
</combination_hints>

<output_format>
Full product details: name, description, price, currency, availability, brand, category, purchase link.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- nexbid_categories - <tool_description>
List all available product categories in the Nexbid marketplace with product counts. Optionally filter by country.
</tool_description>

<when_to_use>
When user wants to explore what is available before searching.
Use BEFORE nexbid_search to help narrow down the query.
</when_to_use>

<combination_hints>
nexbid_categories → nexbid_search with category filter for targeted results.
Good starting point for browse intent.
</combination_hints>

<output_format>
List of categories with product counts. Optionally filtered by country.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- nexbid_purchase - <tool_description>
Initiate a purchase for a product found via nexbid_search. Returns a checkout link that the user can click to complete the purchase at the retailer. The agent should present this link to the user for confirmation.
</tool_description>

<when_to_use>
ONLY after user has expressed clear purchase intent for a specific product.
Requires a product UUID from nexbid_search or nexbid_product.
ALWAYS confirm with user before calling this tool.
</when_to_use>

<combination_hints>
nexbid_search (purchase intent) → nexbid_purchase → present checkout link to user.
After purchase → nexbid_order_status to check if completed.
Use checkout_mode=wallet_pay when the user has a connected wallet with active mandate.
</combination_hints>

<output_format>
For prefill_link (default): Checkout URL that the user clicks to complete purchase at the retailer.
For wallet_pay: Intent ID and status for mandate-based authorization.
Include product name and price for user confirmation.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- nexbid_order_status - <tool_description>
Check the status of a purchase intent created via nexbid_purchase.
</tool_description>

<when_to_use>
After nexbid_purchase was called and user wants to know the order status.
Requires the intent_id UUID returned by nexbid_purchase.
</when_to_use>

<combination_hints>
Always follows nexbid_purchase. No other tool needed after this.
</combination_hints>

<output_format>
Current status (pending/completed/expired), checkout link if still active.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- list_products - <tool_description>
Search for products in the Nexbid marketplace. Alias for nexbid_search with content_type='product'.
</tool_description>

<when_to_use>
When an agent needs to discover products (not recipes or services).
Convenience alias — delegates to nexbid_search internally.
</when_to_use>

<combination_hints>
list_products → get_product for details → create_media_buy for advertising.
For recipes/services use nexbid_search with content_type filter.
</combination_hints>

<output_format>
Product list with name, price, availability, score, and link.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- get_product - <tool_description>
Get detailed product information by ID. Alias for nexbid_product.
</tool_description>

<when_to_use>
When you have a product UUID from list_products or nexbid_search.
</when_to_use>

<combination_hints>
list_products → get_product → create_media_buy or nexbid_purchase.
</combination_hints>

<output_format>
Full product details: name, description, price, currency, availability, brand, category, link.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- list_inventory - <tool_description>
List available publisher inventory slots for programmatic media buying. Returns ad slots with pricing, rules, and capacity info.
</tool_description>

<when_to_use>
Before create_media_buy — discover which slots are available.
Use to browse publisher ad inventory for campaign planning.
</when_to_use>

<combination_hints>
list_inventory → get_inventory_item for slot details → create_media_buy to bid.
Filter by publisher_id, slot_type, or pricing_model for targeted results.
</combination_hints>

<output_format>
Inventory slots with: name, type, floor price, pricing models, capacity, status.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- get_inventory_item - <tool_description>
Get detailed information about a specific publisher inventory slot, including rules and active buy count.
</tool_description>

<when_to_use>
After list_inventory to get full slot details before bidding.
Check capacity (active buys vs max_concurrent) before create_media_buy.
</when_to_use>

<combination_hints>
list_inventory → get_inventory_item → create_media_buy.
Shows brand/category allowlists, blocklists, and current utilization.
</combination_hints>

<output_format>
Full slot details with rules, pricing, capacity, and active buy count.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- create_media_buy - <tool_description>
Create a media buy (bid on publisher inventory). Validates rules, runs auction scoring, and returns approval/rejection status. AdCP-compatible first-price sealed-bid auction.
</tool_description>

<when_to_use>
When an advertiser wants to place a bid on a publisher inventory slot.
Requires inventory_id from list_inventory/get_inventory_item.
ALWAYS confirm with user before calling — creates a binding commitment.
</when_to_use>

<combination_hints>
list_inventory → get_inventory_item → create_media_buy → submit_creatives → activate.
If rejected: check rejection_reason and adjust bid/brand/category.
Score formula: 0.3*bid + 0.3*quality + 0.2*quality + 0.2*context.
</combination_hints>

<output_format>
Media buy ID, status (approved/rejected), auction score, rejection reason if applicable.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- submit_creatives - <tool_description>
Submit or update creative assets for an existing media buy. Required before activation.
</tool_description>

<when_to_use>
After create_media_buy returns approved status. Upload creative before activating.
</when_to_use>

<combination_hints>
create_media_buy (approved) → submit_creatives → activate.
Creative types: banner, native, snippet, video, text.
</combination_hints>

<output_format>
Updated media buy with creative info attached.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- activate - <tool_description>
Activate an approved media buy to start serving. Requires creative to be submitted first.
</tool_description>

<when_to_use>
After submit_creatives, when ready to go live with the campaign.
</when_to_use>

<combination_hints>
submit_creatives → activate → track_enriched_snippet (for enriched snippet buys).
Can be paused later with pause, or cancelled with cancel.
</combination_hints>

<output_format>
Activated media buy with won_at timestamp.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- pause - <tool_description>
Pause an active media buy campaign. Can be reactivated later.
</tool_description>

<when_to_use>
When an advertiser wants to temporarily stop a running campaign.
Only works on active campaigns.
</when_to_use>

<combination_hints>
activate → pause (temporary) or cancel (permanent).
Paused campaigns can be reactivated with activate.
</combination_hints>

<output_format>
Updated media buy with paused status.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- cancel - <tool_description>
Cancel a media buy campaign. This is a terminal state — cannot be reactivated.
</tool_description>

<when_to_use>
When an advertiser wants to permanently stop a campaign.
Cannot be undone. Use pause for temporary stops.
</when_to_use>

<combination_hints>
cancel is terminal. For temporary suspension use pause instead.
Remaining budget is released.
</combination_hints>

<output_format>
Updated media buy with cancelled status.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- list_media_buys - <tool_description>
List media buys with optional filters. View campaign history for advertisers or publishers.
</tool_description>

<when_to_use>
To view existing media buys (campaigns). Filter by advertiser, publisher, status, or date.
</when_to_use>

<combination_hints>
list_media_buys → get_campaign_report for performance data.
list_media_buys → get_compliance_status for compliance check.
</combination_hints>

<output_format>
List of media buys with ID, status, bid, budget, spent, and dates.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- get_campaign_report - <tool_description>
Get aggregated performance report for a media buy. Shows spend, impressions, clicks, conversions with time-series breakdown.
</tool_description>

<when_to_use>
To check campaign performance metrics after activation.
Supports period filtering and granularity control.
</when_to_use>

<combination_hints>
list_media_buys → get_campaign_report for performance analysis.
Pair with get_compliance_status for full campaign overview.
</combination_hints>

<output_format>
Totals (spend, impressions, clicks, conversions) + time-series breakdown.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- get_compliance_status - <tool_description>
Check nDSG/GDPR/EU AI Act compliance status for a media buy. Verifies privacy-native architecture compliance.
</tool_description>

<when_to_use>
Before activating a campaign or for compliance audits.
Checks: no cookies, no fingerprinting, contextual targeting, data residency, revenue transparency, consent basis, agent transparency.
</when_to_use>

<combination_hints>
create_media_buy → get_compliance_status → activate (if compliant).
Use for regulatory reporting and audit trails.
</combination_hints>

<output_format>
Overall compliance status + individual check results with details.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- settle - <tool_description>
Settle pending payments for media buys. Supports manual CSV export, Stripe invoice (Phase 2 stub), and x402 micropayments (Phase 2 stub).
</tool_description>

<when_to_use>
When a publisher wants to collect earned revenue or an advertiser needs to settle outstanding charges.
Use method='manual' for CSV export. Stripe and x402 are stubs (Phase 2).
</when_to_use>

<combination_hints>
get_campaign_report → settle (after verifying amounts).
Filter by media_buy_id, publisher_id, or period.
</combination_hints>

<output_format>
Settlement totals (gross, platform fee, net), entry count, and method-specific data (CSV for manual).
</output_format> Endpoint: https://mcp.nexbid.dev/mcp
- track_enriched_snippet - <tool_description>
Track delivery of an enriched snippet and bill the advertiser. Creates a ledger entry and decrements the media buy budget.
</tool_description>

<when_to_use>
When an agent delivers enriched content from a media buy. Each delivery is billed by snippet tier:
- basic: 10¢, standard: 50¢, rich: 150¢, premium: 300¢ (CHF centimes).
</when_to_use>

<combination_hints>
activate (enriched_snippet buy) → track_enriched_snippet per delivery.
get_campaign_report shows cumulative tracking.
</combination_hints>

<output_format>
Event ID, charged amount, platform fee, net payout, remaining budget.
</output_format> Endpoint: https://mcp.nexbid.dev/mcp

## Resources
- nexbid://server-info - Nexbid MCP Server metadata and capabilities overview MIME type: application/json

## Prompts
- product-search - Guided product discovery — helps agents structure search queries for optimal results Arguments: query, intent, budget

## Metadata
- Owner: dev.nexbid
- Version: 1.0.1
- Runtime: Streamable Http
- Transports: HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Mar 13, 2026
- Source: https://registry.modelcontextprotocol.io
