openai-plugins
Version:
A TypeScript library that provides an OpenAI-compatible client for the Model Context Protocol (MCP).
58 lines (52 loc) • 1.55 kB
TypeScript
// types.d.ts
import OriginalOpenAI from "openai";
export interface MCPConfig {
serverUrl?: string;
serverUrls?: string[];
headers?: Record<string, string>;
maxToolCalls?: number;
toolTimeoutSec?: number;
disconnectAfterUse?: boolean;
connectionTimeoutMs?: number;
maxMessageGroups?: number;
finalResponseSystemPrompt?: string;
secondPassSystemPrompt?: string;
modelName?: string;
maxOutputTokens?: number;
tokenRateLimit?: number;
rateLimitWindowMs?: number;
noWaitOnTpm?: boolean;
logLevel?: "debug" | "info" | "warn" | "error";
}
export interface Plugin {
name: string;
handle: (
params: OriginalOpenAI.Chat.ChatCompletionCreateParams,
next: (
p: OriginalOpenAI.Chat.ChatCompletionCreateParams,
) => Promise<OriginalOpenAI.Chat.ChatCompletion>,
) => Promise<OriginalOpenAI.Chat.ChatCompletion>;
}
// Explicitly include all required fields from the OpenAI SDK
export interface OpenAIOptions {
apiKey?: string;
organization?: string;
baseURL?: string;
timeout?: number;
maxRetries?: number;
defaultQuery?: Record<string, string>;
defaultHeaders?: Record<string, string>;
dangerouslyAllowBrowser?: boolean;
plugins?: string[] | Plugin[] | string | null;
pluginConfig?: Record<string, any>;
mcp?: MCPConfig;
mcpLogLevel?: "debug" | "info" | "warn" | "error";
}
/**
* OpenAI client with MCP support - drop-in replacement for OpenAI
*/
declare class OpenAI extends OriginalOpenAI {
constructor(options?: OpenAIOptions);
}
export { OpenAI };
export default OpenAI;