Commit graph inspector/client/src/lib/hooks/useConnection.ts
Author SHA1 Message Date
Jerome
fdae89ecbf
fix: use X-MCP-Proxy-Auth header for proxy authentication
Changed proxy authentication to use a custom header (X-MCP-Proxy-Auth) instead of the standard Authorization header. This prevents conflicts when the proxy needs to forward the client's Authorization header to upstream MCP servers.

- Updated client to send proxy auth token in X-MCP-Proxy-Auth header
- Updated server auth middleware to check X-MCP-Proxy-Auth header
- Applies to all transport types (SSE, stdio, streamable-http)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 13:07:02 +01:00
Jerome
3207959af0
Linting 2025-06-13 16:04:25 +01:00
Felix Weinberger
908d0ee36a
feat: add client support for proxy authentication
- Add MCP_PROXY_AUTH_TOKEN configuration field to store session token
- Update useConnection hook to include proxy auth token in all requests
- Add separate proxy auth headers to avoid conflicts with MCP server auth
- Add specific error handling for proxy authentication failures
- Show helpful toast message directing users to Configuration settings
- Update README with instructions for configuring token in UI

The client now properly authenticates with the proxy server using the
session token displayed in the proxy console.
2025-06-10 18:16:32 +01:00
Cliff Hall
7df0ac40c5
Merge pull request #470 from cliffhall/send-delete-on-streamable-http-disconnect
Send HTTP DELETE on streamable transport disconnect
2025-06-02 10:05:30 -04:00
xiaoli
b51ee625cd style: fix code style to pass CI checks 2025-05-30 10:14:03 +08:00
cliffhall
02aacb46a2 Send HTTP/DELETE when disconnecting client
* In server/src/index.ts
  - add delete handler for /mcp endpoint
    - gets the server transport for the sessionId
    - calls terminateSession on it
    - removes the webapp and server transports for the sessionId from the maps
    - returns status 200 to the client.

* In client/src/lib/hooks/useConnection.ts
  - import Transport
  - add useState for clientTransport, type Transport or null initialized to null
  - in connect() function
    - move creation of client transport down a ways, just before calling client.connect with it
    - immendiately efter calling client.connect, call setClientTransport with the connected transport (has to happen after, so that what's saved has the abort controller, etc. otherwise it doesn't work to save it prior.
    - in disconnect() function
      - immediately call clientTransport.terminateSession if transportType is "streamable-http"
      - setClientTransport to null
2025-05-29 19:54:36 -04:00
Xiaoli
ee8c29b3ad
Merge branch 'main' into fix/header 2025-05-29 23:30:11 +08:00
xiaoli
10e3202832 fix: Fix the issue of accidentally losing 'x-custom-auth-header' 2025-05-29 11:49:57 +08:00
xiaoli
2870441fea fix: fix review comments, again😉
- Remove unnecessary auth header name check
- Extract operations on headers into a function
2025-05-25 11:17:37 +08:00
ihrpr
014ef7d35e
refactor 2025-05-20 17:25:44 +01:00
xiaoli
13f736033a fix: fix review comments
- Avoid calling .lowerCase twice
- Keep 'Bearer ' prefix when header equals 'Authorization'
- Remove unnecessary Array type checks
2025-05-20 13:10:55 +08:00
xiaoli
618f24a9ac feat: support custom authorization headers, fix #395 2025-05-20 10:38:03 +08:00
ihrpr
2f6a9fca11
format 2025-05-19 19:03:22 +01:00
ihrpr
85ae0ede85
small fix 2025-05-19 18:36:50 +01:00
ihrpr
13eb077329
fix auth conect 2025-05-19 18:29:42 +01:00
Santthosh
a57e707a0b
Merge branch 'main' into main 2025-05-06 09:51:45 -07:00
cliffhall
f9cbfbe822 Create the appropriate TransportOptions object for the selected transport
* In useConnection.ts

  - In the case for "stdio", let the transportOptions be the same as "sse"
 because it will use that transport to the proxy regardless
2025-05-02 17:50:00 -04:00
cliffhall
b7ec3829d4 Use transport-specific options 2025-05-02 17:35:33 -04:00
Santthosh Selvadurai
dd6f5287ca Fix to the Authorization header bug for Streamable-HTTP
Reference issue [https://github.com/modelcontextprotocol/inspector/issues/369]
2025-04-30 22:21:59 -07:00
cliffhall
79a09f8316 Consolidate hooks
* Hooks are in multiple places in the codebase and some camelCase, some snake-case. This PR relocates them all to the lib/hooks folder and normalizes camelCase naming. Settled on src/client/lib/hooks for the location since most of them were already there.

  - Refactor/move useTheme.ts from client/src/lib to client/src/lib/hooks
  - Refactor/move useToast.ts from client/src/hooks/ to client/src/lib/hooks/useToast.ts
  - Removed client/src/hooks
2025-04-30 17:09:22 -04:00
cliffhall
6e4dcd6120 WIP: Attempting to proxy streamable-http connections. Inspector still works fine with STDIO and SSE servers.
* In index.ts,
  - refactor transport webAppTransports to be a map with the session id as key and transport as value.

* Implement /mcp GET and POST endpoints using StreamableHTTPServerTransport and doing the new session in the POST (opposite from SSE) handler.

* In package.json
  - update the SDK to 1.10.2

* In useConnection.ts
  - import StreamableHTTPClientTransport
    - NOTE: while we NEED to do this, it causes useConnection.test.ts to fail with " ReferenceError: TransformStream is not defined"
  - in connect method
    - instantiate the appropriate transport
2025-04-22 18:25:47 -04:00
cliffhall
3a2e248527 Prettier 2025-04-21 11:40:01 -04:00
cliffhall
e5f6524eb6 Fix support for streamable-http connections.
* In server/index.js
  - add get/post handlers for /mcp
  - amend console log on SSE connect, with deprecation message
  - add /stdio GET handler and refactored /sse GET handler to not also do stdio. Each transport has its own handler now
  - add appropriate headers to streamable-http request

* In /client/src/lib/hooks/useConnection.ts
  - in connect function
    - create server url properly based on new transport type.
2025-04-21 11:34:55 -04:00
Cliff Hall
b3971259d2
Merge branch 'main' into main 2025-04-17 16:40:48 -04:00
Maxwell Gerber
15960f5aa4
refactor: Use new serverspecifickey API 2025-04-16 16:24:49 -07:00
Maxwell Gerber
0dc6df57d6
Merge remote-tracking branch 'theirs/main' into max/disconnect 2025-04-16 16:10:35 -07:00
Glen Maddern
df0b526a41 fix: store auth tokens with server-specific keys
Changes client information and access tokens to use server-specific keys in sessionStorage. This fixes issues where changing the server URL would try to use tokens from a different server.
2025-04-16 10:14:08 +10:00
leoshimo
22eb81350a feat: Show initialize request/response in History panel (#269)
- Add logging for initialize request and response in useConnection.connect
- Include server capabilities, version, and instructions in history
2025-04-14 17:33:58 -07:00
Ido Salomon
87fad79e7d add bearer 2025-04-12 22:55:03 +03:00
Ido Salomon
a010f10c26 remove bad merges 2025-04-12 00:50:37 +03:00
Ido Salomon
aeac3ac914
Merge branch 'main' into set-header 2025-04-10 20:38:12 +03:00
Shiv Deepak Muddada
638603c0f3 add support for streamable http server 2025-04-09 20:47:53 -07:00
Maxwell Gerber
6a16e7cd24
fix: Disconnecting should clear oauth state 2025-04-07 15:15:28 -07:00
Ido Salomon
91633de80f set header name 2025-04-05 12:46:25 +03:00
Pulkit Sharma
e35343537c Add proper support for progress flow during tool calling 2025-04-05 01:46:57 +05:30
Pulkit Sharma
a8ffc704f0 add support for progress flow 2025-04-04 01:44:30 +05:30
Pulkit Sharma
2a544294ba merge main 2025-04-03 00:47:21 +05:30
Pulkit Sharma
debb00344a
Merge branch 'main' into add_proxy_config 2025-04-02 13:43:42 +05:30
NicolasMontone
8586d63e6d Add shadcn alert to match project design 2025-04-01 17:38:25 -03:00
Pulkit Sharma
0dcd10c1dd Update readme 2025-04-01 19:48:48 +05:30
Pulkit Sharma
51c7eda6a6 Add MCP proxy address config support, better error messages 2025-04-01 19:21:19 +05:30
Maxwell Gerber
9ab213bc89
feat: Add lightweight Disconnect button 2025-03-31 18:54:44 -07:00
Pulkit Sharma
81c0ef29ab
Merge branch 'main' into main 2025-03-29 09:11:01 +05:30
Pulkit Sharma
4a23585066 Add support in UI to configure request timeout 2025-03-22 21:18:38 +05:30
Nathan Arseneau
27b54104c1 Add support for additional notification schemas in useConnection hook 2025-03-19 19:51:01 -04:00
Nathan Arseneau
dd460bd877 Refactor notification handling to include all notifications 2025-03-17 02:44:59 -04:00
cliffhall
d70e6dc0e8 In useConnection.ts,
- import LoggingMessageNotificationSchema
- set onNotification as notification handler for LoggingMessageNotificationSchema
2025-03-13 15:17:17 -04:00
Abdelkader Boudih
397a0f651f
feat: Fetch version from package.json in useConnection hook 2025-03-11 13:33:45 +00:00
Justin Spahr-Summers
15bbb7502b
Merge pull request #175 from avi1mizrahi/main
Add Bearer Token Support
2025-03-11 10:50:51 +00:00
Avi Mizrahi
dbd616905c Support bearer token 2025-03-10 17:50:12 +02:00