import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import type Ship from '@shipstatic/ship'; import { type DeploymentViaType } from '@shipstatic/types'; /** * What the HOST knows about itself and this library must not assume. * * Both fields are the same category of fact, which is why they travel together * rather than as a growing positional tail: a library has no manifest to read * and no idea which product it was installed inside. */ export interface ServerOptions { /** * The server's reported `serverInfo.version`. A parameter rather than * something this module reads for itself: the executable knows its own * package manifest, a library must not assume it has one, and reaching for * `node:module` here would put a Node builtin in the import graph of a * module the Workers-hosted transport also loads. */ version: string; /** * The deploy origin this server's uploads are attributed to. Defaults to * `mcp` — an npx install in some MCP client, which is what this package is * on its own. * * It is a parameter because `via` names the DISTRIBUTION SURFACE, not the * protocol: the GitHub Action reports `git` whatever invoked the workflow, * and the web apps report `web`. The VS Code extension bundles this server * into its `.vsix`, so its agent-mode deploys are the extension's — it * passes `vsc`, and `mcp` goes back to meaning what it says. */ via?: DeploymentViaType; } /** * Builds the stdio server's full 15-tool surface over an injected client. */ export declare function createServer(ship: Ship, options: ServerOptions): McpServer;