/ src / main / mcp / types.ts
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  }