use-mcp/examples/inspector
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Glen Maddern fe65d50ec3
Fixing /sse support (#12)
* /sse still not working

* 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

* Gearing up to "make amp do it"

* fix: improve SSE fallback logic in auto transport mode

- Fix issue where SSE fallback was not attempted when HTTP transport failed
- Specific error types (404, 405, CORS) now correctly trigger SSE fallback
- Allow SSE fallback even when component state is 'failed' from previous attempts
- Maintain proper error handling for non-fallback HTTP errors
- All 6 transport scenarios now pass integration tests

The core issue was that failConnection() was being called for HTTP errors
before returning 'fallback', which set the component state to 'failed' and
prevented the orchestration logic from attempting SSE fallback. Now only
specific HTTP errors that should trigger fallback avoid calling failConnection
immediately, allowing the SSE transport to be attempted as expected.

---------

Co-authored-by: Glen Maddern <glen@glenmaddern.com>
2025-07-01 12:14:32 +10:00
..
public Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
src Fixing /sse support (#12) 2025-07-01 12:14:32 +10:00
.gitignore Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
.prettierrc Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
AGENT.md Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
eslint.config.js Prettier changes 2025-06-27 16:09:36 +10:00
index.html Prettier changes 2025-06-27 16:09:36 +10:00
package.json Merge pull request #10 from modelcontextprotocol/e2e-testing 2025-06-30 21:07:45 +10:00
pnpm-lock.yaml Merge pull request #10 from modelcontextprotocol/e2e-testing 2025-06-30 21:07:45 +10:00
README.md Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
tailwind.config.js Prettier changes 2025-06-27 16:09:36 +10:00
tsconfig.app.json Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
tsconfig.json Prettier changes 2025-06-27 16:09:36 +10:00
tsconfig.node.json Transfer from geelen/use-mcp 2025-06-18 21:46:43 +10:00
vite.config.ts Fixing /sse support (#12) 2025-07-01 12:14:32 +10:00
wrangler.jsonc Prettier changes 2025-06-27 16:09:36 +10:00

MCP Inspector

A minimal demo showcasing the use-mcp React hook for connecting to Model Context Protocol (MCP) servers.

Features

  • Connect to any MCP server via URL
  • View available tools and their schemas
  • Real-time connection status monitoring
  • Debug logging for troubleshooting
  • Clean, minimal UI focused on MCP functionality

Getting Started

  1. Make sure you've built the parent use-mcp directory at least once!
cd ../.. && pnpm build && cd -

Alternatively, run pnpm dev in the parent directory in a second terminal if you want to iterate on both the library and the example together.

  1. Install dependencies:
pnpm install
  1. Start the development server:
pnpm dev
  1. Open your browser and navigate to the displayed local URL

  2. Enter an MCP server URL to test the connection and explore available tools

What This Demonstrates

This example shows how easy it is to integrate MCP servers into a React application using the use-mcp hook. The core functionality is just:

import { useMcp } from 'use-mcp/react'

const connection = useMcp({
  url: 'your-mcp-server-url',
  debug: true,
  autoRetry: false
})

// Access connection.state, connection.tools, connection.error, etc.

The McpServers component wraps this hook to provide a complete UI for server management and tool inspection.