types.ts
1 import { 2 ListToolsResultSchema, 3 CallToolResultSchema, 4 ListPromptsResultSchema, 5 GetPromptResultSchema, 6 ListResourcesResultSchema, 7 ReadResourceResultSchema, 8 ListResourceTemplatesResultSchema 9 } from '@modelcontextprotocol/sdk/types.js' 10 11 import { Client } from '@modelcontextprotocol/sdk/client/index.js' 12 13 import { 14 StdioClientTransport, 15 StdioServerParameters 16 } from '@modelcontextprotocol/sdk/client/stdio.js' 17 18 import { McpMetadata, McpServerDescription } from '@/types/mcp' 19 20 export const McpServerCapabilitySchemas = { 21 tools: { 22 list: ListToolsResultSchema, 23 call: CallToolResultSchema 24 }, 25 prompts: { 26 list: ListPromptsResultSchema, 27 get: GetPromptResultSchema 28 }, 29 resources: { 30 list: ListResourcesResultSchema, 31 read: ReadResourceResultSchema, 32 'templates/list': ListResourceTemplatesResultSchema 33 } 34 } 35 36 export type McpServerConfig = StdioServerParameters 37 38 export interface McpClientTransport { 39 client: Client 40 transport: StdioClientTransport 41 } 42 43 export type McpProgressCallbackObject = { 44 name: string 45 message: string 46 status: 'pending' | 'error' | 'success' 47 } 48 49 export type McpProgressCallback = ( 50 ..._args: [ 51 McpProgressCallbackObject['name'], 52 McpProgressCallbackObject['message'], 53 McpProgressCallbackObject['status'] 54 ] 55 ) => void 56 57 export type McpMetadataConfig = { 58 [key: string]: McpMetadata 59 } 60 61 export type McpClientObject = { 62 name: string 63 configJson?: McpServerConfig 64 connection?: McpClientTransport 65 } 66 67 export type McpFeatureObject = { 68 name: string 69 config: McpClientObject['configJson'] 70 description?: McpServerDescription 71 }