Commit graph inspector/client
Author SHA1 Message Date
Nandha Reddy
21740bbd16 feat: Add resource_link content type support to ToolResults component
Add ResourceLinkView component for displaying resource links
2025-07-03 09:03:09 +10:00
Cliff Hall
1089162f38
Merge branch 'main' into sebastian/patch-remove-addition-slash 2025-07-02 10:56:45 -04:00
Sebastian Ko
85575de690
Merge branch 'main' into sebastian/patch-remove-addition-slash 2025-07-02 03:17:50 -04:00
Richard Michael
0f2548e71d Remove unnecessary margin property 2025-07-01 09:31:19 -07:00
Richard Michael
daf5f0af38 Full-width #root 2025-07-01 09:30:36 -07:00
Mark Anthony Cianfrani
9eb5e7b8c2
Merge branch 'main' into main 2025-06-27 20:06:31 -04:00
Cliff Hall
6a8c831308
Merge pull request #480 from olaservo/fix-required
Fix fundamental schema issue with required fields defined incorrectly on JsonSchemaType
2025-06-27 14:09:10 -04:00
Felix Weinberger
1aea3374ff
refactor: use ES6 shorthand property syntax in start.js
Replace explicit property assignments with shorthand syntax when
property names match variable names (e.g., SERVER_PORT: SERVER_PORT
becomes just SERVER_PORT).
2025-06-27 17:40:22 +01:00
Felix Weinberger
042e7a2aa7
refactor: move browser auto-open logic to client process
Simplifies the startup flow by consolidating browser opening
in the client script rather than the start script for prod.

We were duplicating a lot of logging, making it easy for
logs to go out of sync - this is a proposal to consolidate:

- server only logs info about itself
- client only logs info about itself

To reduce the number of places we print connection information
to the user.
2025-06-27 15:01:34 +01:00
Felix Weinberger
ae1aeb3c3f
fix: improve logging consistency between dev and prod client startup
Refactored startProdClient to match startDevClient's logging pattern,
ensuring consistent user feedback whether auto-open is enabled or disabled.

Also ensures that we log full information on how to open the browser
regardless of whether MCP_AUTO_OPEN_ENABLED=false.
2025-06-27 15:00:21 +01:00
Felix Weinberger
9e9419bf21
fix: ensure MCP_PROXY_PORT is included when auth is disabled
Address PR feedback by restructuring getClientUrl to always include
MCP_PROXY_PORT parameter when using non-default port, regardless of
auth status. Also improved code clarity by using params.size check.
2025-06-26 10:52:49 +01:00
Felix Weinberger
9fcfd89326
fix: pass proxy port via URL params when non-default
- Update client to read MCP_PROXY_PORT from URL parameters
- Update server to include port in displayed URL when non-default
- Update start scripts to pass SERVER_PORT to client
- Use DEFAULT_MCP_PROXY_LISTEN_PORT constant instead of magic numbers

This fixes the issue where the client couldn't connect to the proxy
when SERVER_PORT was set to a non-default value.
2025-06-26 10:52:49 +01:00
Cliff Hall
b28a10eae5
Merge branch 'main' into fweinberger/client-localhost 2025-06-25 17:57:55 -04:00
olaservo
d49a5f65c1 Bump sdk 2025-06-25 07:22:34 -07:00
olaservo
2ca82b5be6 Bump version to 0.15.0 2025-06-25 07:19:44 -07:00
Sebastian Ko
7dc7b09cd4
Change var to let 2025-06-25 00:45:03 -04:00
Ola Hungerford
95975c58e7
Merge branch 'main' into fix-required 2025-06-24 21:35:27 -07:00
Richard Michael
73bb000597 Update lucide-react
Checked for icon name changes by teaching Claude to search the lucide-react repo with:

`git log -i -E --grep '(rename|change)' 0.448.0^...0.523.0

  ..then searching for any of the found icons in the Inspector imports.
2025-06-24 12:43:03 -07:00
Felix Weinberger
d0673ba9e1
refactor: Use specific SERVER_PORT and CLIENT_PORT env vars
Per PR feedback from cliffhall:
- Changed PORT to SERVER_PORT in server/src/index.ts
- Changed PORT to CLIENT_PORT in client/bin/client.js
- Added parseInt() for CLIENT_PORT consistency
- Updated start.js to pass correct env var names

This improves clarity by using specific environment variables for
server and client ports instead of the generic PORT variable.
2025-06-24 10:43:13 +01:00
Felix Weinberger
fe2c5c767d
refactor: deduplicate URL generation and standardize on localhost
- Extract duplicated URL generation code into getClientUrl() helper function in start.js
- Replace all 127.0.0.1 references with localhost for consistency across codebase
- Update server to respect HOST environment variable for URL generation
- Remove 127.0.0.1 from default allowed origins in CORS configuration
- Update documentation to use localhost instead of 127.0.0.1

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24 10:43:13 +01:00
Felix Weinberger
9c5c7575c0
fix: Bind client to localhost by default to prevent DNS rebinding attacks
Complete the security hardening started in e8e9909 by also binding the client to localhost only.
Previously only the server was protected while the client remained exposed to the network,
allowing attackers to access the server through the client as a proxy.

Changes:
- Add HOST environment variable support to client (prod mode)
- Configure Vite dev server to bind to localhost by default
- Update browser auto-open URLs to use actual host instead of hardcoded 127.0.0.1
- Fix missing cancelled parameter in startProdClient function

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-24 10:43:13 +01:00
Sebastian Ko
66abc3bfac
Merge branch 'main' into sebastian/patch-remove-addition-slash 2025-06-24 05:25:18 -04:00
Cliff Hall
86eaabe598
Merge branch 'main' into playwright-test 2025-06-23 11:39:59 -04:00
Paul Carleton
5db64265ce
[auth] Add resource compatibility to debugger (RFC 8707) (#526)
* pass resource in auth debugger, reusing server url

* throw error on resource url mismatch to match regular auth flow

* lint & tests

* add test

* make authserver url make more sense

* use latest typescript sdk

* more lenient resource checking

* pick resource, and store in state

* fixing tests and types

* [auth] use sdk function for selecting resource (#537)

* use sdk function

* bump typescript sdk

* fix some tests
2025-06-23 16:39:07 +01:00
Mark Anthony Cianfrani
f5dba84051 fix: allow typing negative numbers in tool parameter inputs
Number inputs were immediately converting values to Number() on every
keystroke, which prevented users from typing negative numbers since
the intermediate "-" character cannot be converted to a valid number.

Now the input stores the raw string value and only converts to Number
when the value is non-empty, allowing proper negative number entry.
2025-06-21 12:18:04 -04:00
Alex Andru
0e6915a061 chore: bump workspace deps 2025-06-20 18:54:13 +02:00
Marc Abramowitz
1807542582 Cleanup client/e2e/test-results/ after test:e2e 2025-06-19 07:23:29 -07:00
Marc Abramowitz
8b3613e11a prettier fix 2025-06-19 07:02:06 -07:00
Marc Abramowitz
08e4f6b4a8 outputDir: "./e2e/test-results" 2025-06-19 00:06:36 -07:00
Marc Abramowitz
2ca63cb161 Merge branch 'main' into playwright-test 2025-06-19 00:02:11 -07:00
Marc Abramowitz
db9ca3762a No playwright-report or results.json for non-CI 2025-06-19 00:00:32 -07:00
Sebastian Ko
647d924e20
Merge branch 'main' into sebastian/patch-remove-addition-slash 2025-06-18 06:04:47 -04:00
Felix Weinberger
9fec0aaf98
refactor: Extract server and client launch functions for better code organization
- Extracted 4 functions: startDevServer, startProdServer, startDevClient, startProdClient
- Eliminated deep nesting in main() function
- Each function has a single responsibility
- Main function now clearly shows the flow: parse args → start server → start client
- No functional changes, purely organizational refactoring

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-18 10:23:03 +01:00
Felix Weinberger
d06f3b5ebc
feat: Enable auto-open with authentication and unify start scripts
- Unified start.js to handle both dev and production modes with --dev flag
- Generate session token in parent process, pass via MCP_PROXY_TOKEN env var
- Enable browser auto-open even when authentication is enabled by including token in URL
- Auto-reloads now work seamlessly with persistent tokens across hot reloads
- Simplified npm scripts - dev and dev:windows now use the same unified script
- Better developer experience with consistent token handling

The token is generated once per session and remains stable through server/client
reloads, making development smoother while maintaining security.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-18 10:23:03 +01:00
Marc Abramowitz
0f1cc19926 prettier fix playwright.config.ts 2025-06-17 20:26:22 -07:00
Marc Abramowitz
8b1faf110c playwright.config.ts: Start dev server automatically 2025-06-17 20:18:32 -07:00
cliffhall
1c75f88760 Bump version to 0.14.3
- Need to do a patch level release in order to test the ghcr docker container publishing feature added to main.yml in #257
2025-06-17 16:38:29 -04:00
Marc Abramowitz
6e5ccf679a Remove commented out stuff in playwright.config.ts 2025-06-16 20:55:45 -07:00
Sebastian Ko
5710318f45
Merge branch 'main' into sebastian/patch-remove-addition-slash 2025-06-15 21:25:34 -04:00
Sebastian Ko
03e21bd3e4
Move remove slashes logic to getMCPProxyAddress 2025-06-15 21:25:01 -04:00
Jerome
eb27b954e5
Bumped all versions to 0.14.2 2025-06-14 19:48:59 +01:00
Jerome
ef90c58882
Lint 2025-06-14 18:45:14 +01:00
Jerome
ba7b35cbf3
Filling out other required args for FetchLike invocation 2025-06-14 18:43:28 +01:00
Jerome
349e23f992
Fixing signature of eventSourceInit fetch signature 2025-06-14 18:25:16 +01:00
Jerome
760c7e4056
fix: replace require() imports with ES modules in tests
- Replaced all require() imports with proper ES module imports
- Fixed ESLint @typescript-eslint/no-require-imports errors
- Removed unused variable mockGetMCPProxyAddress
- Added proper TypeScript types instead of 'any'
- All tests passing and linting clean

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 18:11:16 +01:00
Jerome
62402b49c4
test: add tests for proxy auth header in config endpoint
- Added tests for App.tsx config endpoint to verify X-MCP-Proxy-Auth header usage
- Added tests for getMCPProxyAuthToken utility function
- Tests cover:
  - Sending correct proxy auth header when token is configured
  - Not sending header when token is empty
  - Using custom header names (for future flexibility)
  - Handling config endpoint errors gracefully
- All tests passing

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 18:01:10 +01:00
Jerome
37cff101b1
test: add tests for X-MCP-Proxy-Auth header implementation
- Added comprehensive test coverage for proxy authentication using X-MCP-Proxy-Auth header
- Tests verify proper header separation between proxy and server authentication
- Fixed transport mocks to properly capture options and headers
- Updated config structure in tests to match production code
- All proxy auth tests now passing

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-14 17:20:30 +01:00
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
e585789208
Remaining version bump locations 2025-06-13 18:37:44 +01:00
Jerome
b08827d94d
fix: remove window.location mocking to fix CI test failures
Remove all window.location mocking from AuthDebugger tests as it was causing "Cannot redefine property" errors in CI. The tests work correctly with JSDOM's default window.location implementation.

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-13 18:06:54 +01:00