Metal MCP Server

export interface Server { name: string; version: string; } export interface ServerCapabilities { resources: Record<string, unknown>; tools: Record<string, unknown>; } export interface ToolRequest { params: { name: string; arguments: Record<string, any>; }; } export interface ResourceRequest { params: { uri: string; }; } export interface Content { type: string; text: string; } export interface ToolResponse { content: Content[]; } export interface ResourceResponse { contents: { uri: string; mimeType: string; text: string; }[]; } export interface Tool { name: string; description: string; inputSchema: { type: string; properties: Record<string, any>; required?: string[]; }; } export interface Resource { uri: string; name: string; description?: string; mimeType?: string; } export interface ErrorResponse { code: number; message: string; } export class McpError extends Error { constructor(public code: number, message: string) { super(message); this.name = 'McpError'; } } export const ErrorCode = { InvalidRequest: 400, MethodNotFound: 404, InternalError: 500, } as const;