UNPKG

@openai/agents-core

Version:

The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.

118 lines (117 loc) • 6.79 kB
import { z } from 'zod'; import { type Logger } from './logger'; import type { CallToolResult, CallToolResultContent, CallToolResultMetadata, MCPListResourcesParams, MCPListResourcesResult, MCPListResourceTemplatesResult, MCPReadResourceResult, MCPServer, MCPServerSSEOptions, MCPServerStdioOptions, MCPServerStreamableHttpOptions, MCPToolErrorFunction } from './mcp'; import type { MCPToolCustomDataExtractor, MCPToolFilterCallable, MCPToolFilterStatic, MCPToolMetaResolver } from './mcpUtil'; import type { ToolInputGuardrailDefinition, ToolOutputGuardrailDefinition } from './toolGuardrail'; export declare const DEFAULT_STDIO_MCP_CLIENT_LOGGER_NAME = "openai-agents:stdio-mcp-client"; export declare const DEFAULT_STREAMABLE_HTTP_MCP_CLIENT_LOGGER_NAME = "openai-agents:streamable-http-mcp-client"; export declare const DEFAULT_SSE_MCP_CLIENT_LOGGER_NAME = "openai-agents:sse-mcp-client"; export declare abstract class BaseMCPServerStdio implements MCPServer { cacheToolsList: boolean; protected _cachedTools: any[] | undefined; toolFilter?: MCPToolFilterCallable | MCPToolFilterStatic; toolMetaResolver?: MCPToolMetaResolver; customDataExtractor?: MCPToolCustomDataExtractor; toolInputGuardrails?: ToolInputGuardrailDefinition<any>[]; toolOutputGuardrails?: ToolOutputGuardrailDefinition<any>[]; useStructuredContent?: boolean; errorFunction?: MCPToolErrorFunction | null; protected logger: Logger; constructor(options: MCPServerStdioOptions); abstract get name(): string; abstract connect(): Promise<void>; abstract close(): Promise<void>; abstract listTools(): Promise<any[]>; abstract callTool(_toolName: string, _args: Record<string, unknown> | null, _meta?: Record<string, unknown> | null): Promise<CallToolResultContent>; abstract callToolResult(_toolName: string, _args: Record<string, unknown> | null, _meta?: Record<string, unknown> | null): Promise<CallToolResult>; abstract listResources(_params?: MCPListResourcesParams): Promise<MCPListResourcesResult>; abstract listResourceTemplates(_params?: MCPListResourcesParams): Promise<MCPListResourceTemplatesResult>; abstract readResource(_uri: string): Promise<MCPReadResourceResult>; abstract invalidateToolsCache(): Promise<void>; /** * Logs a debug message when debug logging is enabled. * @param buildMessage A function that returns the message to log. */ protected debugLog(buildMessage: () => string): void; } export declare abstract class BaseMCPServerStreamableHttp implements MCPServer { cacheToolsList: boolean; protected _cachedTools: any[] | undefined; toolFilter?: MCPToolFilterCallable | MCPToolFilterStatic; toolMetaResolver?: MCPToolMetaResolver; customDataExtractor?: MCPToolCustomDataExtractor; toolInputGuardrails?: ToolInputGuardrailDefinition<any>[]; toolOutputGuardrails?: ToolOutputGuardrailDefinition<any>[]; useStructuredContent?: boolean; errorFunction?: MCPToolErrorFunction | null; protected logger: Logger; constructor(options: MCPServerStreamableHttpOptions); abstract get name(): string; abstract connect(): Promise<void>; abstract close(): Promise<void>; abstract listTools(): Promise<any[]>; abstract callTool(_toolName: string, _args: Record<string, unknown> | null, _meta?: Record<string, unknown> | null): Promise<CallToolResultContent>; abstract callToolResult(_toolName: string, _args: Record<string, unknown> | null, _meta?: Record<string, unknown> | null): Promise<CallToolResult>; abstract listResources(_params?: MCPListResourcesParams): Promise<MCPListResourcesResult>; abstract listResourceTemplates(_params?: MCPListResourcesParams): Promise<MCPListResourceTemplatesResult>; abstract readResource(_uri: string): Promise<MCPReadResourceResult>; abstract get sessionId(): string | undefined; abstract invalidateToolsCache(): Promise<void>; /** * Logs a debug message when debug logging is enabled. * @param buildMessage A function that returns the message to log. */ protected debugLog(buildMessage: () => string): void; } export declare abstract class BaseMCPServerSSE implements MCPServer { cacheToolsList: boolean; protected _cachedTools: any[] | undefined; toolFilter?: MCPToolFilterCallable | MCPToolFilterStatic; toolMetaResolver?: MCPToolMetaResolver; customDataExtractor?: MCPToolCustomDataExtractor; toolInputGuardrails?: ToolInputGuardrailDefinition<any>[]; toolOutputGuardrails?: ToolOutputGuardrailDefinition<any>[]; useStructuredContent?: boolean; errorFunction?: MCPToolErrorFunction | null; protected logger: Logger; constructor(options: MCPServerSSEOptions); abstract get name(): string; abstract connect(): Promise<void>; abstract close(): Promise<void>; abstract listTools(): Promise<any[]>; abstract callTool(_toolName: string, _args: Record<string, unknown> | null, _meta?: Record<string, unknown> | null): Promise<CallToolResultContent>; abstract callToolResult(_toolName: string, _args: Record<string, unknown> | null, _meta?: Record<string, unknown> | null): Promise<CallToolResult>; abstract listResources(_params?: MCPListResourcesParams): Promise<MCPListResourcesResult>; abstract listResourceTemplates(_params?: MCPListResourcesParams): Promise<MCPListResourceTemplatesResult>; abstract readResource(_uri: string): Promise<MCPReadResourceResult>; abstract invalidateToolsCache(): Promise<void>; /** * Logs a debug message when debug logging is enabled. * @param buildMessage A function that returns the message to log. */ protected debugLog(buildMessage: () => string): void; } /** * Minimum MCP tool data definition. * This type definition does not intend to cover all possible properties. * It supports the properties that are used in this SDK. */ export declare const MCPTool: z.ZodObject<{ name: z.ZodString; description: z.ZodOptional<z.ZodString>; annotations: z.ZodOptional<z.ZodObject<{ title: z.ZodOptional<z.ZodString>; readOnlyHint: z.ZodOptional<z.ZodBoolean>; destructiveHint: z.ZodOptional<z.ZodBoolean>; idempotentHint: z.ZodOptional<z.ZodBoolean>; openWorldHint: z.ZodOptional<z.ZodBoolean>; }, z.core.$loose>>; inputSchema: z.ZodObject<{ type: z.ZodLiteral<"object">; properties: z.ZodRecord<z.ZodString, z.ZodAny>; required: z.ZodArray<z.ZodString>; additionalProperties: z.ZodBoolean; }, z.core.$strip>; }, z.core.$strip>; export type MCPTool = z.infer<typeof MCPTool>; export declare function attachCallToolResultMetadata(content: CallToolResult['content'], metadata: CallToolResultMetadata): CallToolResultContent;