From b2e7a0dc7dd471104d59bd8ea4c5b5d933d7c173 Mon Sep 17 00:00:00 2001 From: Glen Maddern Date: Mon, 30 Jun 2025 21:56:19 +1000 Subject: [PATCH 1/4] /sse still not working --- test/integration/mcp-connection.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/integration/mcp-connection.test.ts b/test/integration/mcp-connection.test.ts index fab85e6..699069b 100644 --- a/test/integration/mcp-connection.test.ts +++ b/test/integration/mcp-connection.test.ts @@ -33,6 +33,11 @@ function getMCPServers() { url: `http://localhost:${state.cfAgentsPort}/mcp`, expectedTools: 1, // Minimum expected tools count }, + { + name: 'cf-agents-sse', + url: `http://localhost:${state.cfAgentsPort}/sse`, + expectedTools: 1, // Minimum expected tools count + }, ] } catch (error) { throw new Error(`Test environment not properly initialized: ${error}`) From e36ea33dffd1387792fc39c9acc3b3a29a4b8cb7 Mon Sep 17 00:00:00 2001 From: Glen Maddern Date: Tue, 1 Jul 2025 10:34:37 +1000 Subject: [PATCH 2/4] Add transport type selector to inspector UI and comprehensive transport testing - Add transport type dropdown to inspector UI (auto, HTTP, SSE) with session storage persistence - Update test framework to support transport type selection in test scenarios - Add comprehensive test cases covering: * Working /mcp endpoints with auto and HTTP transports * SSE endpoint with SSE transport (expected to pass) * SSE endpoint with auto transport (expected to fail - demonstrates current fallback issue) - Test structure now provides clear visibility into transport-specific behavior - All tests properly named and categorized for easy identification of failing scenarios --- .../inspector/src/components/McpServers.tsx | 31 ++++++- test/integration/mcp-connection.test.ts | 92 ++++++++++++++----- 2 files changed, 96 insertions(+), 27 deletions(-) diff --git a/examples/inspector/src/components/McpServers.tsx b/examples/inspector/src/components/McpServers.tsx index e210e34..b99160d 100644 --- a/examples/inspector/src/components/McpServers.tsx +++ b/examples/inspector/src/components/McpServers.tsx @@ -3,14 +3,22 @@ import { useMcp, type Tool } from 'use-mcp/react' import { Info, X, ChevronRight, ChevronDown } from 'lucide-react' // MCP Connection wrapper that only renders when active -function McpConnection({ serverUrl, onConnectionUpdate }: { serverUrl: string; onConnectionUpdate: (data: any) => void }) { +function McpConnection({ + serverUrl, + transportType, + onConnectionUpdate, +}: { + serverUrl: string + transportType: 'auto' | 'http' | 'sse' + onConnectionUpdate: (data: any) => void +}) { // Use the MCP hook with the server URL const connection = useMcp({ url: serverUrl, debug: true, autoRetry: false, popupFeatures: 'width=500,height=600,resizable=yes,scrollbars=yes', - transportType: 'auto', + transportType, }) // Update parent component with connection data @@ -26,6 +34,9 @@ export function McpServers({ onToolsUpdate }: { onToolsUpdate?: (tools: Tool[]) const [serverUrl, setServerUrl] = useState(() => { return sessionStorage.getItem('mcpServerUrl') || '' }) + const [transportType, setTransportType] = useState<'auto' | 'http' | 'sse'>(() => { + return (sessionStorage.getItem('mcpTransportType') as 'auto' | 'http' | 'sse') || 'auto' + }) const [isActive, setIsActive] = useState(false) const [connectionData, setConnectionData] = useState({ @@ -293,6 +304,20 @@ export function McpServers({ onToolsUpdate }: { onToolsUpdate?: (tools: Tool[]) }} disabled={isActive && state !== 'failed'} /> + {state === 'ready' || (isActive && state !== 'not-connected' && state !== 'failed') ? (