updates for sdk update

This commit is contained in:
Ashwin Bhat
2024-10-16 16:14:33 -07:00
parent 23ca80ed66
commit c6a11422f4
3 changed files with 12 additions and 11 deletions

View File

@@ -7,6 +7,7 @@ import {
ReadResourceResultSchema, ReadResourceResultSchema,
CallToolResultSchema, CallToolResultSchema,
ListPromptsResultSchema, ListPromptsResultSchema,
Resource,
Tool, Tool,
ClientRequest, ClientRequest,
} from "mcp-typescript/types.js"; } from "mcp-typescript/types.js";
@@ -34,7 +35,7 @@ import {
import ConsoleTab from "./components/ConsoleTab"; import ConsoleTab from "./components/ConsoleTab";
import Sidebar from "./components/Sidebar"; import Sidebar from "./components/Sidebar";
import RequestsTab from "./components/RequestsTabs"; import RequestsTab from "./components/RequestsTabs";
import ResourcesTab, { Resource } from "./components/ResourcesTab"; import ResourcesTab from "./components/ResourcesTab";
import NotificationsTab from "./components/NotificationsTab"; import NotificationsTab from "./components/NotificationsTab";
import PromptsTab, { Prompt } from "./components/PromptsTab"; import PromptsTab, { Prompt } from "./components/PromptsTab";
import ToolsTab from "./components/ToolsTab"; import ToolsTab from "./components/ToolsTab";
@@ -108,7 +109,7 @@ const App = () => {
} }
}; };
const readResource = async (uri: string) => { const readResource = async (uri: URL) => {
const response = await makeRequest( const response = await makeRequest(
{ {
method: "resources/read" as const, method: "resources/read" as const,
@@ -168,7 +169,6 @@ const App = () => {
version: "0.0.1", version: "0.0.1",
}); });
const clientTransport = new SSEClientTransport();
const backendUrl = new URL("http://localhost:3000/sse"); const backendUrl = new URL("http://localhost:3000/sse");
backendUrl.searchParams.append("transportType", transportType); backendUrl.searchParams.append("transportType", transportType);
@@ -179,7 +179,7 @@ const App = () => {
backendUrl.searchParams.append("url", url); backendUrl.searchParams.append("url", url);
} }
await clientTransport.connect(backendUrl); const clientTransport = new SSEClientTransport(backendUrl);
await client.connect(clientTransport); await client.connect(clientTransport);
setMcpClient(client); setMcpClient(client);

View File

@@ -2,6 +2,7 @@ import { FileText, ChevronRight, AlertCircle, RefreshCw } from "lucide-react";
import { Button } from "@/components/ui/button"; import { Button } from "@/components/ui/button";
import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert"; import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert";
import { TabsContent } from "@/components/ui/tabs"; import { TabsContent } from "@/components/ui/tabs";
import { Resource } from "mcp-typescript/types.js";
import ListPane from "./ListPane"; import ListPane from "./ListPane";
export type Resource = { export type Resource = {
@@ -20,7 +21,7 @@ const ResourcesTab = ({
}: { }: {
resources: Resource[]; resources: Resource[];
listResources: () => void; listResources: () => void;
readResource: (uri: string) => void; readResource: (uri: URL) => void;
selectedResource: Resource | null; selectedResource: Resource | null;
setSelectedResource: (resource: Resource) => void; setSelectedResource: (resource: Resource) => void;
resourceContent: string; resourceContent: string;

View File

@@ -25,15 +25,15 @@ const createTransport = async (query: express.Request["query"]) => {
const command = query.command as string; const command = query.command as string;
const args = (query.args as string).split(","); const args = (query.args as string).split(",");
console.log(`Stdio transport: command=${command}, args=${args}`); console.log(`Stdio transport: command=${command}, args=${args}`);
const transport = new StdioClientTransport(); const transport = new StdioClientTransport({ command, args });
await transport.spawn({ command, args }); await transport.start();
console.log("Spawned stdio transport"); console.log("Spawned stdio transport");
return transport; return transport;
} else if (transportType === "sse") { } else if (transportType === "sse") {
const url = query.url as string; const url = query.url as string;
console.log(`SSE transport: url=${url}`); console.log(`SSE transport: url=${url}`);
const transport = new SSEClientTransport(); const transport = new SSEClientTransport(new URL(url));
await transport.connect(new URL(url)); await transport.start();
console.log("Connected to SSE transport"); console.log("Connected to SSE transport");
return transport; return transport;
} else { } else {
@@ -49,13 +49,13 @@ app.get("/sse", async (req, res) => {
console.log("Connected MCP client to backing server transport"); console.log("Connected MCP client to backing server transport");
const webAppTransport = new SSEServerTransport("/message"); const webAppTransport = new SSEServerTransport("/message", res);
console.log("Created web app transport"); console.log("Created web app transport");
webAppTransports.push(webAppTransport); webAppTransports.push(webAppTransport);
console.log("Created web app transport"); console.log("Created web app transport");
await webAppTransport.connectSSE(req, res); await webAppTransport.start();
mcpProxy({ mcpProxy({
transportToClient: webAppTransport, transportToClient: webAppTransport,