const server = new Server({ name: "example-server", version: "1.0.0"}, { capabilities: {}});const transport = new StdioServerTransport();await server.connect(transport);
Copy
const server = new Server({ name: "example-server", version: "1.0.0"}, { capabilities: {}});const transport = new StdioServerTransport();await server.connect(transport);
Copy
const client = new Client({ name: "example-client", version: "1.0.0"}, { capabilities: {}});const transport = new StdioClientTransport({ command: "./server", args: ["--option", "value"]});await client.connect(transport);
Copy
app = Server("example-server")async with stdio_server() as streams: await app.run( streams[0], streams[1], app.create_initialization_options() )
Copy
params = StdioServerParameters( command="./server", args=["--option", "value"])async with stdio_client(params) as streams: async with ClientSession(streams[0], streams[1]) as session: await session.initialize()
SSE 传输支持服务器到客户端的流式传输,同时使用 HTTP POST 请求实现客户端到服务器的通信。
使用 SSE 的场景:
仅需要服务器到客户端的流式传输
在受限网络环境中工作
实现简单的更新
Copy
import express from "express";const app = express();const server = new Server({ name: "example-server", version: "1.0.0"}, { capabilities: {}});let transport: SSEServerTransport | null = null;app.get("/sse", (req, res) => { transport = new SSEServerTransport("/messages", res); server.connect(transport);});app.post("/messages", (req, res) => { if (transport) { transport.handlePostMessage(req, res); }});app.listen(3000);
Copy
import express from "express";const app = express();const server = new Server({ name: "example-server", version: "1.0.0"}, { capabilities: {}});let transport: SSEServerTransport | null = null;app.get("/sse", (req, res) => { transport = new SSEServerTransport("/messages", res); server.connect(transport);});app.post("/messages", (req, res) => { if (transport) { transport.handlePostMessage(req, res); }});app.listen(3000);
Copy
const client = new Client({ name: "example-client", version: "1.0.0"}, { capabilities: {}});const transport = new SSEClientTransport( new URL("http://localhost:3000/sse"));await client.connect(transport);