Commit graph

1,063 commits

Author SHA1 Message Date
Cliff Hall
789c90cc0b
Merge branch 'main' into normalize-connection-logging 2025-06-02 10:25:30 -04: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
Ola Hungerford
bf85cebb2f
Merge pull request #476 from olaservo/clarify-proxy-role-in-readme
Add simple architecture overview with note on proxy role
2025-05-30 16:44:28 -07:00
Cliff Hall
1919a0e9b2
Merge pull request #400 from Littly/fix/header
feat: support custom authorization headers, fix #395
2025-05-30 18:42:50 -04:00
Cliff Hall
021e6a423b
Merge branch 'main' into fix/header 2025-05-30 18:39:01 -04:00
Cliff Hall
291c59eaf9
Merge branch 'main' into clarify-proxy-role-in-readme 2025-05-30 18:37:40 -04:00
Cliff Hall
e55cd75e82
Merge branch 'main' into send-delete-on-streamable-http-disconnect 2025-05-30 18:36:10 -04:00
Cliff Hall
52dc2f6db6
Merge branch 'main' into normalize-connection-logging 2025-05-30 17:51:37 -04:00
cliffhall
b732ab4085 prettier 2025-05-30 17:51:22 -04:00
cliffhall
2df723804b Normalize the reporting of connection setup and connection errors. The logging is verbose and different for every server type. This is an attempt to make the console output cleaner and more readable.
* In server/index.js
  - in createTransport()
    - stringify query params to put them on one line
    - remove logging of transport creation (done in callers)
  - in /mcp POST handler
    - report POST request if session id is present
    - otherwise, report new StreamableHttp connection request
    - report creation of server transport
    - report creation of client transport
  - in /stdio GET handler
    - report new STDIO connection request
    - report creation of server transport
    - report creation of client transport
    - report 401 as authentication error without stack
    - in stderr data handler
      - if it includes "MODULE_NOT_FOUND"
        - report "Command not found"
        - remove transports
      - otherwise send to client as usual
  - in /sse GET handler
    - report SSE connection request
    - report 401 as authentication error without stack
    - report 404 as server that may not support SSE
    - report error with "ECONNREFUSED" as "Connection refused" without stack
    - only create, map, and proxy transports if serverTransport was successfully created
  - in /message POST handler
    - report received POST message

* In mcpProxy.ts
  - in onServerError()
    - if error message includes 404 OR error.cause includes ECONNREFUSED, report "Connection refused."
2025-05-30 17:13:53 -04:00
Ola Hungerford
2c527caaae
Merge pull request #462 from dbsanfte/patch-1
Add quick start example
2025-05-30 13:35:41 -07:00
Cliff Hall
438390ecd5
Merge branch 'main' into send-delete-on-streamable-http-disconnect 2025-05-30 11:58:02 -04:00
Cliff Hall
e8d5e09b62
Merge pull request #428 from cliffhall/allow-multiple-client-connections
Allow multiple instances of the Inspector to connect to the same MCP server
2025-05-30 11:44:21 -04:00
olaservo
11757ef615 Add simple architecture overview 2025-05-30 07:46:28 -07:00
xiaoli
3510e1a561 fix: preserve capitalization in custom headers
Express converts all header names to lowercase, which prevents custom headers with uppercase characters from being properly passed to the target service. This fix ensures that custom headers preserve their original capitalization when forwarded through the proxy.
2025-05-30 21:34:40 +08:00
Xiaoli
f87884900e
Merge branch 'main' into fix/header 2025-05-30 10:14:42 +08: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
Cliff Hall
a7aa72655a
Merge branch 'main' into allow-multiple-client-connections 2025-05-29 16:05:36 -04:00
Ola Hungerford
029d2de26c
Merge pull request #449 from balajmarius/main
Improve color contrast and readability in dark mode
2025-05-29 09:07:10 -07:00
Cliff Hall
a50ad396ad
Merge pull request #365 from modelcontextprotocol/dependabot/npm_and_yarn/npm_and_yarn-de653eece3
Bump vite from 6.3.0 to 6.3.4 in the npm_and_yarn group across 1 directory
2025-05-29 12:05:36 -04:00
Cliff Hall
7fc04fbe37
Merge branch 'main' into dependabot/npm_and_yarn/npm_and_yarn-de653eece3 2025-05-29 12:03:24 -04:00
Cliff Hall
c186f531b8
Merge branch 'main' into fix/header 2025-05-29 12:01:17 -04:00
Cliff Hall
d0ba4185ee
Merge branch 'main' into allow-multiple-client-connections 2025-05-29 11:54:02 -04:00
Cliff Hall
520416b4a9
Merge pull request #360 from olaservo/fix-port-numbers
Adding tests for when a sse url with specfic protocols or ports are passed to `useConnection`
2025-05-29 11:51:39 -04:00
Cliff Hall
7fb2211bf2
Merge branch 'main' into fix-port-numbers 2025-05-29 11:41:10 -04:00
Balaj Marius
5ca6d3db40
Merge branch 'main' into main 2025-05-29 18:30:24 +03:00
Balaj Marius
2e5cc87659
Update index.css
Co-authored-by: Ola Hungerford <olahungerford@gmail.com>
2025-05-29 18:30:13 +03:00
Xiaoli
ee8c29b3ad
Merge branch 'main' into fix/header 2025-05-29 23:30:11 +08:00
Paul Carleton
e74f80db85
fix tests 2025-05-29 14:26:29 +01:00
Paul Carleton
11bc04364b
whitespace 2025-05-29 14:11:01 +01:00
Paul Carleton
03bb303bf9
rm loading, prm test 2025-05-29 14:10:32 +01:00
Paul Carleton
cc49358f5a
add test + prettier 2025-05-29 13:42:54 +01:00
Paul Carleton
35eab580ef
switch to metadata from state 2025-05-29 12:26:53 +01:00
Paul Carleton
20e961ce5c
resumption working 2025-05-29 12:09:52 +01:00
Paul Carleton
0dbf75a664
store state before redirect 2025-05-29 11:50:09 +01:00
Paul Carleton
82858bed30
show proper authserverurl 2025-05-29 11:17:21 +01:00
Paul Carleton
73fde03aa4
working metadata fetch 2025-05-29 10:56:09 +01:00
Paul Carleton
b2fa99668e
bump typescript sdk 2025-05-29 10:19:39 +01:00
Paul Carleton
c6ddcf4c90
fix 2025-05-29 10:11:44 +01:00
Paul Carleton
00893afc0b
wip new metadata 2025-05-29 10:11:44 +01:00
Paul Carleton
befadc0042
very wip draft auth spec support 2025-05-29 10:11:44 +01:00
Paul Carleton
46d3d844f8
reset authorization url 2025-05-29 10:11:44 +01:00
ihrpr
e364273ae2
Merge pull request #456 from modelcontextprotocol/feature/structured-output-support
Add structured output support
2025-05-29 09:14:24 +01:00
xiaoli
10e3202832 fix: Fix the issue of accidentally losing 'x-custom-auth-header' 2025-05-29 11:49:57 +08:00
Basil Hosmer
d8a2821344
refactor: Address PR comments
- Extract tool results rendering into separate ToolResults component
- Hoist checkContentCompatibility function to module level following codebase conventions
- Add ajv@6.12.6 as direct dependency to client package.json
- All tests pass and linting is clean

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 22:18:19 -04:00
cliffhall
0c1962c2d0 prettier 2025-05-28 15:46:07 -04:00
Basil Hosmer
5a628c7a00
fix: Fix lint errors
- Remove unused catch parameter in ToolsTab.tsx
- Replace 'as any' with @ts-expect-error in test for invalid schema

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 15:24:40 -04:00
Basil Hosmer
e7e4745464
fix: Fix TypeScript build errors in ToolsTab tests
The previous test implementation caused build failures due to Jest
hoisting issues with mock variables. This commit fixes the build by
removing mocking in favor of using real schema validation.

- Remove jest.mock() of schemaUtils module that caused initialization errors
- Add beforeEach to clear schema cache between tests
- Use cacheToolOutputSchemas() to set up test scenarios
- Let real validation logic run for more accurate tests
- All tests pass and build succeeds

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 15:24:40 -04:00
Basil Hosmer
b184654ee5
style: Apply Prettier formatting to structured output code
Applied consistent formatting to ToolsTab.tsx and schemaUtils.ts
to fix linting issues. No functional changes.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 15:24:40 -04:00