xmcp
Version:
The TypeScript MCP framework
38 lines (37 loc) • 1.74 kB
TypeScript
import { Implementation, McpServer } from "@modelcontextprotocol/server";
import { ZodRawShape } from "zod/v3";
import { PromptMetadata } from "@/types/prompt";
import { ResourceCompletions, ResourceMetadata } from "@/types/resource";
import { ToolMetadata } from "@/types/tool";
import { PromptArgsRawShape } from "./prompts";
import { UserPromptHandler } from "./transformers/prompt";
import { UserResourceHandler } from "./transformers/resource";
import { UserToolHandler } from "./transformers/tool";
export type ToolFile = {
metadata: ToolMetadata;
schema: ZodRawShape;
outputSchema?: ZodRawShape;
default: UserToolHandler;
};
export type PromptFile = {
metadata: PromptMetadata;
schema: PromptArgsRawShape;
default: UserPromptHandler;
};
export type ResourceFile = {
metadata: ResourceMetadata;
schema: ZodRawShape;
complete?: ResourceCompletions;
default: UserResourceHandler;
};
export declare const injectedTools: Record<string, () => Promise<ToolFile>>;
export declare const injectedPrompts: Record<string, () => Promise<PromptFile>>;
export declare const injectedResources: Record<string, () => Promise<ResourceFile>>;
export declare const INJECTED_CONFIG: Implementation & {
instructions?: string;
};
export declare function configureServer(server: McpServer, toolModules: Map<string, ToolFile>, promptModules: Map<string, PromptFile>, resourceModules: Map<string, ResourceFile>): Promise<McpServer>;
export declare function loadTools(): Promise<Map<string, ToolFile>>;
export declare function loadPrompts(): Promise<Map<string, PromptFile>>;
export declare function loadResources(): Promise<Map<string, ResourceFile>>;
export declare function createServer(): Promise<McpServer>;