Appearance
工具函数
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 服务端
}
getAISDKTools()
用来对接 AgentModelProvider
返回一个工具集对象, 对接后可以让 AgentModelProvider
实例直接调用 MCP 工具。
类型
async getAISDKTools(client: WebMcpClient): Promise<ToolSet>
参数
client: WebMcpClient
: WebMcpClient 实例 返回值Promise<ToolSet>
: 工具集对象 示例
import { AgentModelProvider, getAISDKTools, WebMcpClient } from '@opentiny/next-sdk'
const webAgent = new AgentModelProvider({
llmConfig: {
apiKey: 'sk-xxx',
baseURL: 'https://xxxxx',
providerType: 'deepseek'
}
})
const client = new WebMcpClient()
const tools = await getAISDKTools(client)
const generateTextResult = webAgent.chat({
model: 'deepseek-ai/DeepSeek-V3',
messages: [
{ role: 'system', content: '你是xxx' },
{ role: 'user', content: '1+1 等于多少?' }
],
tools
// .......
})