/** * The Misar.Blog tool catalogue. * * {@link buildServer} is the single factory both transports use, so a tool * fixed here is fixed everywhere. {@link describeServer} renders the same * surface as plain data, for directories that describe the server without * connecting to it. * * @module */ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; /** Server id reported by `initialize`, e.g. shown by directories. */ export declare const SERVER_NAME = "misarblog"; /** Package version reported by `initialize`. Keep in step with package.json. */ export declare const SERVER_VERSION = "5.1.2"; /** Options accepted by {@link buildServer} and {@link describeServer}. */ export interface BuildServerOptions { /** * Register tools that only make sense on the user's own machine. * * `login` opens a browser and binds a loopback listener; `status` and * `upload_image` read local state and files. On the hosted HTTP endpoint the * caller already presents a key and has no local filesystem, so exposing them * there would advertise capabilities that cannot work. */ includeLocalTools?: boolean; } /** * Build the Misar.Blog MCP server. * * ONE factory for both transports. Previously the stdio package, /api/mcp and * /api/v1/mcp each declared their own tool list — 23, 20 and 15 tools * respectively, overlapping but never identical — so a tool fixed in one place * stayed broken in the other two. */ export declare function buildServer(options?: BuildServerOptions): McpServer; /** * A machine-readable summary of what this server offers. * * Directories and registries read this to describe the server without * connecting to it. */ export interface ServerDescription { /** Server id, e.g. `misarblog`. */ name: string; /** Package version, as reported by `initialize`. */ version: string; /** Transport this server speaks. */ transport: string; /** Every registered tool, with its description. */ tools: Array<{ name: string; description: string; }>; /** Every registered prompt, with its description. */ prompts: Array<{ name: string; description: string; }>; /** URIs of every registered resource. */ resources: string[]; /** How to authenticate, in a form meant for humans. */ auth: string; /** Documentation URL. */ docs: string; } /** * Machine-readable summary of the server's surface. * * Derived from a real `buildServer()` rather than a hand-written list: the * previous metadata endpoint on /api/v1/mcp hardcoded 15 tool names and had * already drifted from the 20 that route actually served. * * Reads the SDK's private registries because `McpServer` exposes no public * enumeration; the shapes are pinned by the exact-versioned SDK dependency and * covered by a test, so a breaking change surfaces at CI rather than in prod. */ export declare function describeServer(options?: BuildServerOptions): ServerDescription; //# sourceMappingURL=server.d.ts.map