touchdesigner-mcp-server
Version:
MCP server for TouchDesigner
64 lines (63 loc) • 1.94 kB
TypeScript
import { z } from "zod";
/**
* Transport types supported by the MCP server
*/
export type TransportType = "stdio" | "streamable-http";
/**
* Configuration for stdio transport
*/
export interface StdioTransportConfig {
type: "stdio";
}
/**
* Configuration for Streamable HTTP transport
*
* Protocol revision 2026-07-28 removed protocol-level sessions and the
* `Mcp-Session-Id` header, so the transport is stateless: there is no session
* configuration anymore. Each request is served by a fresh server instance.
*/
export interface StreamableHttpTransportConfig {
type: "streamable-http";
/**
* Port to bind the HTTP server to
*/
port: number;
/**
* Host address to bind the HTTP server to (default: '127.0.0.1')
*/
host: string;
/**
* MCP endpoint path (default: '/mcp')
*/
endpoint: string;
}
/**
* Union type for all transport configurations
*/
export type TransportConfig = StdioTransportConfig | StreamableHttpTransportConfig;
/**
* Zod schema for TransportConfig validation (discriminated union)
*/
export declare const TransportConfigSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
type: z.ZodLiteral<"stdio">;
}, z.core.$strict>, z.ZodObject<{
endpoint: z.ZodString;
host: z.ZodString;
port: z.ZodNumber;
type: z.ZodLiteral<"streamable-http">;
}, z.core.$strict>], "type">;
/**
* Type guard to check if config is StdioTransportConfig
*/
export declare function isStdioTransportConfig(config: TransportConfig): config is StdioTransportConfig;
/**
* Type guard to check if config is StreamableHttpTransportConfig
*/
export declare function isStreamableHttpTransportConfig(config: TransportConfig): config is StreamableHttpTransportConfig;
/**
* Default values for StreamableHttpTransportConfig (excluding required fields)
*/
export declare const DEFAULT_HTTP_CONFIG: {
readonly endpoint: "/mcp";
readonly host: "127.0.0.1";
};