工具函数
import {
// WebMcpClient 相关方法
createSSEClientTransport,
createStreamableHTTPClientTransport,
createMessageChannelClientTransport,
isSSEClientTransport,
isStreamableHTTPClientTransport,
isMessageChannelClientTransport,
isMcpClient,
// WebMcpServer 相关方法
createMessageChannelServerTransport,
createMessageChannelPairTransport,
isMessageChannelServerTransport,
isMcpServer,
} from '@opentiny/next-sdk'
createSSEClientTransport()
创建一个基于 SSE (Server-Sent Events) 的 MCP 客户端传输实例。
类型
function createSSEClientTransport(url: URL, opts?: SSEClientTransportOptions): SSEClientTransport
参数
url: URL
- SSE 服务器的 URLopts?: SSEClientTransportOptions
- SSE 客户端传输配置选项(可选)
返回值
返回一个新的 SSEClientTransport 实例
示例
const url = new URL('http://localhost:3000/sse');
const transport = createSSEClientTransport(url);
createStreamableHTTPClientTransport()
创建一个基于 HTTP 流的 MCP 客户端传输实例。
类型
function createStreamableHTTPClientTransport(url: URL, opts?: StreamableHTTPClientTransportOptions): StreamableHTTPClientTransport
参数
url: URL - HTTP 服务器的 URL opts?: StreamableHTTPClientTransportOptions - HTTP 客户端传输配置选项(可选)
返回值
返回一个新的 StreamableHTTPClientTransport 实例
示例
const url = new URL('http://localhost:3000/stream');
const transport = createStreamableHTTPClientTransport(url);
createMessageChannelClientTransport()
创建一个基于 MessageChannel 的 MCP 客户端传输实例。
类型
function createMessageChannelClientTransport(endpoint: string, globalObject?: object): MessageChannelClientTransport
参数
endpoint: string - MessageChannel 服务端点 globalObject?: object - 全局对象(可选)
返回值
返回一个新的 MessageChannelClientTransport 实例
示例
const transport = createMessageChannelClientTransport('ws://localhost:3000');
isSSEClientTransport()
检查传入的传输实例是否为 SSE 客户端传输。
类型
function isSSEClientTransport(transport: unknown): transport is SSEClientTransport
参数
transport: unknown - 要检查的传输实例
返回值
返回 boolean - 如果是 SSE 客户端传输则返回 true
示例
const transport = createSSEClientTransport(new URL('http://localhost:3000'));
if (isSSEClientTransport(transport)) {
// 处理 SSE 传输
}
isStreamableHTTPClientTransport()
检查传入的传输实例是否为 HTTP 流客户端传输。
类型
function isStreamableHTTPClientTransport(transport: unknown): transport is StreamableHTTPClientTransport
参数
transport: unknown - 要检查的传输实例
返回值
返回 boolean - 如果是 HTTP 流客户端传输则返回 true
示例
const transport = createStreamableHTTPClientTransport(new URL('http://localhost:3000'));
if (isStreamableHTTPClientTransport(transport)) {
// 处理 HTTP 流传输
}
isMessageChannelClientTransport()
检查传入的传输实例是否为 MessageChannel 客户端传输。
类型
function isMessageChannelClientTransport(transport: unknown): transport is MessageChannelClientTransport
参数
transport: unknown - 要检查的传输实例
返回值
返回 boolean - 如果是 MessageChannel 客户端传输则返回 true
示例
function isMessageChannelClientTransport(transport: unknown): transport is MessageChannelClientTransport
isMcpClient()
检查传入的实例是否为 MCP 客户端。
类型
function isMcpClient(client: unknown): client is Client
参数
client: unknown - 要检查的客户端实例
返回值
返回 boolean - 如果是 MCP 客户端则返回 true
示例
if (isMcpClient(client)) {
// 处理 MCP 客户端
}
createMessageChannelServerTransport()
创建一个基于 MessageChannel 的 MCP 服务端传输实例。
类型
function createMessageChannelServerTransport(endpoint: string, globalObject?: object): MessageChannelServerTransport
参数
endpoint: string - MessageChannel 服务端点 globalObject?: object - 全局对象(可选)
返回值
返回一个新的 MessageChannelServerTransport 实例
示例
const transport = createMessageChannelServerTransport('ws://localhost:3000');
createMessageChannelPairTransport()
创建一对用于服务端和客户端之间通信的 MessageChannel 传输实例。
类型
function createMessageChannelPairTransport(): [Transport, Transport]
返回值
返回一个包含两个 Transport 实例的数组,分别用于服务端和客户端
示例
const [serverTransport, clientTransport] = createMessageChannelPairTransport();
isMessageChannelServerTransport()
检查传入的传输实例是否为 MessageChannel 服务端传输。
类型
function isMessageChannelServerTransport(transport: unknown): transport is MessageChannelServerTransport
参数
transport: unknown - 要检查的传输实例
返回值
返回 boolean - 如果是 MessageChannel 服务端传输则返回 true
示例
const transport = createMessageChannelServerTransport('ws://localhost:3000');
if (isMessageChannelServerTransport(transport)) {
// 处理 MessageChannel 服务端传输
}
isMcpServer()
检查传入的实例是否为 MCP 服务端。
类型
function isMcpServer(server: unknown): server is McpServer
参数
server: unknown - 要检查的服务端实例
返回值
返回 boolean - 如果是 MCP 服务端则返回 true
示例
if (isMcpServer(server)) {
// 处理 MCP 服务端
}