import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import type { JamDeps } from "../deps.js"; export declare const SERVER_NAME = "jam"; export declare const TOOL_COUNT: number; /** * The same contract by name, for the checks that ask a *running* server what it * serves. The registrars above cannot be introspected for their tool names, and * counting is not enough: five tools with one renamed is still five. * `tests/contract/tools.test.ts` holds this list to what the server registers. */ export declare const TOOL_NAMES: readonly ["jira_search", "jira_context", "jira_full", "jira_write_plan", "jira_write_apply"]; /** * The external contract: three read tools and two write tools. * * What JAM can write grows as operations inside `jira_write_plan`, never as * tools. `issue.create` arrived that way: an agent that knew the write pair * already knew how to reach it. * * The read three have been stable since the first release and do not change. * The write pair is a single operation split in half on purpose - deciding and * doing are separate calls, so an agent cannot mutate Jira without first * having been shown what it is about to change. Internal changes (cache, Rovo, * remote transport) must not add or rename anything here. */ export declare function createServer(deps: JamDeps): McpServer;