UNPKG

@extenshi/mcp

Version:

Extenshi MCP server — bring the extension catalog (search, security, market research) and pre-publish scanning into your AI tools

73 lines • 2.81 kB
/** * Body of the free `generate_landing_page` MCP tool. * * Pure function of its arguments — no API key, no network, no credits — so it * is registered under the `docs` capability and works on both the local stdio * server and the hosted connector. The HTML comes from ./landing-page.ts, a * synced copy of shared-types/landing-page.ts: the page an agent generates here * is byte-for-byte what the cabinet Page generator downloads for the same form. * * This tool does not host the page (publish_landing_page does, on * page.extenshi.io). The returned `nextSteps` describe hosting it on any HTTPS * origin and registering the URL with `upsert_hosted_page`, which is what feeds * HOMEPAGE_URL in the generated integration config. */ import { type LandingForm } from './landing-page.js'; import { type LandingProblem } from './landing-sections.js'; export interface LandingPageArgs { extensionName: string; tagline?: string; description?: string; accentColor?: string; theme?: 'light' | 'dark'; chromeUrl?: string; firefoxUrl?: string; edgeUrl?: string; privacyPolicyUrl?: string; supportUrl?: string; homepageUrl?: string; features?: { title: string; description?: string; }[]; screenshots?: { url: string; alt?: string; }[]; logoSvg?: string; logoUrl?: string; schemaVersion?: 2; sections?: Record<string, unknown>[]; tokens?: Record<string, unknown>; seo?: Record<string, unknown>; defaultLocale?: string; locales?: Record<string, Record<string, unknown>>; ui?: Record<string, string>; uninstallUrl?: string; termsUrl?: string; } export interface GeneratedLandingPage { html: string; bytes: number; warnings: string[]; /** Schema v2: every problem with its path and fix (errors mean a hosted publish would refuse it). */ problems?: LandingProblem[]; /** Schema v2 with locales: the other locales' pages and where to save them. */ localePages?: { locale: string; path: string; html: string; }[]; nextSteps: string[]; } export declare function landingFormFromArgs(args: LandingPageArgs): LandingForm; export declare function landingNextSteps(homepageUrl?: string): string[]; export declare function renderGenerateLandingPage(args: LandingPageArgs): GeneratedLandingPage; /** * Follow-ups after publish_landing_page, from the fields the BFF returned. * "Live" is said only when the server fetched the public URL and got the * published bytes back (`live.status: verified`); a BFF without the check * (older deploy) is reported as unverified, never as live. */ export declare function hostedLandingNextSteps(result: Record<string, unknown>): string[]; //# sourceMappingURL=landing-workflow.d.ts.map