/** * MCP types. * * Wire-level types (transport configs, McpServerStatus, OAuth shapes) * come from `../protocol/`. The SDK-local `McpSdkServerConfigWithInstance` * carries a runtime `McpServer` instance and stays here. */ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import type { McpStdioServerConfig as ProtocolMcpStdioServerConfig, McpSSEServerConfig as ProtocolMcpSSEServerConfig, McpHttpServerConfig as ProtocolMcpHttpServerConfig, McpSdkServerConfig as ProtocolMcpSdkServerConfig } from '../protocol/index.js'; export type McpServerToolPolicy = { name: string; permission_policy?: 'always_allow' | 'always_ask' | 'always_deny'; exposedName?: string; alwaysLoad?: boolean; }; export type McpStdioServerConfig = ProtocolMcpStdioServerConfig & { tools?: McpServerToolPolicy[]; }; export type McpSSEServerConfig = ProtocolMcpSSEServerConfig & { tools?: McpServerToolPolicy[]; }; export type McpHttpServerConfig = ProtocolMcpHttpServerConfig & { tools?: McpServerToolPolicy[]; }; export type McpSdkServerConfig = ProtocolMcpSdkServerConfig & { tools?: McpServerToolPolicy[]; }; export type McpServerConfigForProcessTransport = McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfig; export type McpServerStatusConfig = McpServerConfigForProcessTransport; export type { McpServerStatus, McpSetServersResult, OAuthToken, } from '../protocol/index.js'; export type McpSdkServerConfigWithInstance = McpSdkServerConfig & { instance: McpServer; }; export type McpServerConfig = McpStdioServerConfig | McpSSEServerConfig | McpHttpServerConfig | McpSdkServerConfigWithInstance;