返回 AiToEarn
mcp-tool.interface.ts
根目录 / project / aitoearn-backend / libs / nest-mcp / src / interfaces / mcp-tool.interface.ts
1 import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'
2 import {
3 CallToolRequestSchema,
4 GetPromptRequestSchema,
5 ListToolsResultSchema,
6 Progress,
7 ReadResourceRequestSchema,
8 } from '@modelcontextprotocol/sdk/types.js'
9 import { z } from 'zod'
10
11 export type Literal = boolean | null | number | string | undefined
12
13 export type SerializableValue
14 = | Literal
15 | SerializableValue[]
16 | { [key: string]: SerializableValue }
17
18 export type McpRequestSchema
19 = | typeof CallToolRequestSchema
20 | typeof ReadResourceRequestSchema
21 | typeof GetPromptRequestSchema
22
23 export type McpRequest = z.infer<McpRequestSchema>
24
25 /**
26 * Enhanced execution context that includes user information
27 */
28 export interface Context {
29 reportProgress: (progress: Progress) => Promise<void>
30 log: {
31 debug: (message: string, data?: SerializableValue) => void
32 error: (message: string, data?: SerializableValue) => void
33 info: (message: string, data?: SerializableValue) => void
34 warn: (message: string, data?: SerializableValue) => void
35 }
36 mcpServer: McpServer
37 mcpRequest: McpRequest
38 }
39
40 export type ResultTool = z.infer<typeof ListToolsResultSchema>['tools'][number]
41
41 lines TYPESCRIPT