@extenshi/mcp
Version:
Extenshi MCP server — bring the extension catalog (search, security, market research) and pre-publish scanning into your AI tools
67 lines • 2.55 kB
TypeScript
/**
* 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.
*
* Extenshi does not host the page. 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. */
export declare function hostedLandingNextSteps(result: Record<string, unknown>): string[];
//# sourceMappingURL=landing-workflow.d.ts.map