UNPKG

finops-mcp-server

Version:

MCP server for FinOps Center cost optimization integration

156 lines 4.09 kB
/** * MCP Protocol Type Definitions * * This file contains TypeScript type definitions for the Model Context Protocol (MCP) * including message types, tool definitions, and protocol interfaces. */ export interface MCPMessage { jsonrpc: "2.0"; id?: string | number; method?: string; params?: any; result?: any; error?: MCPError; } export interface MCPRequest extends MCPMessage { method: string; params?: any; } export interface MCPResponse extends MCPMessage { id: string | number; result?: any; error?: MCPError; } export interface MCPNotification extends MCPMessage { method: string; params?: any; } export interface MCPError { code: number; message: string; data?: any; } export interface MCPTool { name: string; description: string; inputSchema: MCPToolInputSchema; } export interface MCPToolInputSchema { type: "object"; properties: Record<string, MCPSchemaProperty>; required?: string[]; additionalProperties?: boolean; } export interface MCPSchemaProperty { type: string; description?: string; enum?: string[]; items?: MCPSchemaProperty; properties?: Record<string, MCPSchemaProperty>; required?: string[]; } export interface MCPToolCall { name: string; arguments: Record<string, any>; } export interface MCPToolResult { content: MCPContent[]; isError?: boolean; } export interface MCPContent { type: "text" | "image" | "resource"; text?: string; data?: string; mimeType?: string; uri?: string; } export interface MCPServerCapabilities { tools?: { listChanged?: boolean; }; resources?: { subscribe?: boolean; listChanged?: boolean; }; prompts?: { listChanged?: boolean; }; logging?: {}; } export interface MCPClientCapabilities { experimental?: Record<string, any>; sampling?: {}; } export interface MCPInitializeParams { protocolVersion: string; capabilities: MCPClientCapabilities; clientInfo: { name: string; version: string; }; } export interface MCPInitializeResult { protocolVersion: string; capabilities: MCPServerCapabilities; serverInfo: { name: string; version: string; }; } export interface MCPListToolsParams { cursor?: string; } export interface MCPListToolsResult { tools: MCPTool[]; nextCursor?: string; } export interface MCPCallToolParams { name: string; arguments?: Record<string, any>; } export interface MCPCallToolResult { content: MCPContent[]; isError?: boolean; } export declare enum MCPErrorCode { PARSE_ERROR = -32700, INVALID_REQUEST = -32600, METHOD_NOT_FOUND = -32601, INVALID_PARAMS = -32602, INTERNAL_ERROR = -32603, TOOL_NOT_FOUND = -32000, TOOL_EXECUTION_ERROR = -32001, INVALID_TOOL_ARGUMENTS = -32002, AUTHENTICATION_ERROR = -32003, AUTHORIZATION_ERROR = -32004, RATE_LIMIT_ERROR = -32005, NETWORK_ERROR = -32006, TIMEOUT_ERROR = -32007 } export interface MCPHandler { initialize(params: MCPInitializeParams): Promise<MCPInitializeResult>; listTools(params?: MCPListToolsParams): Promise<MCPListToolsResult>; callTool(params: MCPCallToolParams): Promise<MCPCallToolResult>; shutdown(): Promise<void>; } export interface MCPServer { start(): Promise<void>; stop(): Promise<void>; registerTool(tool: MCPTool, handler: (args: any) => Promise<MCPToolResult>): void; unregisterTool(name: string): void; sendNotification(method: string, params?: any): void; } export interface MCPTransport { send(message: MCPMessage): Promise<void>; receive(): Promise<MCPMessage>; close(): Promise<void>; onMessage(handler: (message: MCPMessage) => void): void; onError(handler: (error: Error) => void): void; onClose(handler: () => void): void; } export interface MCPStdioTransport extends MCPTransport { stdin: NodeJS.ReadableStream; stdout: NodeJS.WritableStream; stderr: NodeJS.WritableStream; } //# sourceMappingURL=mcp.d.ts.map