/** * Curated catalog of popular MCP servers. Lets users discover and install * server entries via `/mcp browse` and `/mcp install ` without having * to know the right `command` / `args` incantation. * * Maintenance: * - Keep this list short (< 30 entries). The point is curation, not * completeness — anything more exhaustive belongs on the website. * - Each entry's `args` should be the **invocation-without-runtime-args** * so `/mcp install` can prompt for the things that vary per user * (paths, tokens, etc.) via `argHints`. * - Prefer official `@modelcontextprotocol/*` packages; well-maintained * third-party servers are fine when they're the de-facto standard for * their niche (e.g. Playwright for browsers, the iOS-simulator servers). */ import type { McpServer } from '../acp/protocol.js'; export interface MarketplaceEntry { /** Short id used by `/mcp install ` and shown in the catalog. */ id: string; /** Human-readable display name. */ name: string; /** One-line description shown in the marketplace listing. */ description: string; /** Skeleton server config. `args` includes the package name; users * may need to add path/argument args via `argHints`. */ server: Omit; /** Per-arg prompts shown by `/mcp install` so the user supplies the * variable bits (file paths, db URLs, etc.). */ argHints?: { description: string; placeholder?: string; required?: boolean; }[]; /** Env vars that should be set (e.g. API tokens). Surfaced as a note. */ envNotes?: { name: string; description: string; required?: boolean; }[]; /** Homepage / docs URL for the curious. */ url?: string; } export declare const MCP_MARKETPLACE: MarketplaceEntry[]; export declare function findMarketplaceEntry(id: string): MarketplaceEntry | null; /** * Render the catalog as Markdown for `/mcp browse`. Compact: id + name + * one-line description. Full details (env vars, args) on `/mcp install`. */ export declare function formatMarketplaceList(): string; /** Render install instructions for a single entry (without writing config). */ export declare function formatMarketplaceEntry(entry: MarketplaceEntry): string;