Commit graph inspector/client/src/components
Author SHA1 Message Date
Balaj Marius
5ca6d3db40
Merge branch 'main' into main 2025-05-29 18:30:24 +03: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
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
Basil Hosmer
cf1fb61de4
test: Add comprehensive tests for structured output validation
Added extensive test coverage for the new structured output features:

Schema Utilities Tests:
- Tests for cacheToolOutputSchemas function
- Tests for validateToolOutput with various scenarios
- Tests for getToolOutputValidator and hasOutputSchema helpers
- Coverage for valid/invalid schemas and edge cases
- Tests for nested object validation

ToolsTab Component Tests:
- Tests for output schema display and expand/collapse functionality
- Tests for structured content validation display
- Tests for validation error messages
- Tests for unstructured content title logic
- Tests for compatibility checking between structured/unstructured content
- Tests ensuring compatibility check only runs with output schemas

All tests passing with 100% coverage of new functionality.

🤖 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
de84c472ce
feat: Add structured output support to browser UI
This commit adds comprehensive support for structured output validation in tool calls,
following the MCP specification for tools with output schemas.

UI Changes:
1. Output Schema Display:
   - Added collapsible output schema section in ToolsTab
   - Shows output schemas after input fields, before the Run Tool button
   - Default view shows 8 lines with scrolling, expandable to full view
   - Expand/Collapse button with chevron icons for better UX

2. Structured Content Display:
   - New "Structured Content" section when tools return structuredContent
   - Shows structured data in a formatted JSON view
   - Validation status indicator (green checkmark for valid, red X for errors)
   - Detailed validation error messages when content doesn't match schema

3. Unstructured Content Labeling:
   - Added "Unstructured Content" heading when both structured and unstructured content exist
   - Only shows label when structured content is also present
   - Maintains clean UI when only unstructured content exists

4. Compatibility Checking:
   - Checks if unstructured content matches structured content (when output schema exists)
   - Shows compatibility status with blue (compatible) or yellow (incompatible) indicators
   - Detailed messages explain why content doesn't match
   - Only runs compatibility check for tools with output schemas

5. Validation Error Handling:
   - Shows error when tool with output schema doesn't return structured content
   - Clear error messages for schema validation failures
   - Maintains proper error state display

Technical Implementation:
- Added schema validation utilities using Ajv (same as SDK)
- Caches compiled validators for performance
- Validates on tool result display, not during the call
- Follows SDK's Client.callTool validation pattern

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-05-28 15:24:40 -04:00
Balaj Marius
3ea9a19a76
Merge branch 'main' into main 2025-05-27 16:10:00 +03:00
Paul Carleton
7b1299c730
[auth debugger] Make the quick flow use the same state machine as the step-by-step flow (#426)
* use state machine in quick flow

* clean up test

* rm some comments
2025-05-27 11:36:19 +01:00
Balaj Marius
21833f9102
feat: improve color contrast and readability in dark mode 2025-05-27 11:48:03 +03:00
Paul Carleton
df9ea1e8a4
rework naming 2025-05-20 19:51:48 +01:00
Kamal Fariz Mahyuddin
c6fad3f923
fix: quick oauth flow could not transition to token_request due to missing server metadata (#407)
* fix: quick oauth flow could not transition to token_request due to missing server metadata

* chore: prettier fix
2025-05-16 16:22:39 +01:00
sumeetpardeshi
1e48310bcb Merge branch 'main' of https://github.com/sumeetpardeshi/inspector 2025-05-14 19:01:32 -07:00
sumeetpardeshi
d40140c2e8 fixing lint error 2025-05-14 19:01:22 -07:00
Cliff Hall
faf3efc19b
Merge branch 'main' into main 2025-05-14 16:09:23 -04:00
sumeetpardeshi
e3076ae05c fixing indentation 2025-05-13 17:09:02 -07:00
Paul Carleton
5e8e78c31d
Add Auth debugger tab (#355)
* wip auth debugger

* cleanup types and validation

* more cleanup

* draft test

* wip clean up some

* rm toasts

* consolidate state management

* prettier

* hoist state up to App

* working with quick and guided

* sort out displaying debugger

* prettier

* cleanup types

* fix tests

* cleanup comment

* prettier

* fixup types in tests

* prettier

* refactor debug to avoid toasting

* callback shuffling

* linting

* types

* rm toast in test

* bump typescript sdk version to 0.11.2 for scope parameter passing

* use proper scope handling

* test scope parameter passing

* move functions and s/sseUrl/serverUrl/

* extract status message into component

* refactor progress and steps into components

* fix test

* rename quick handler

* one less click

* last step complete

* add state machine

* test and types
2025-05-13 19:37:09 +01:00
sumeetpardeshi
283371c313 Merge branch 'main' of https://github.com/modelcontextprotocol/inspector 2025-05-12 20:30:02 -07:00
sumeetpardeshi
5b54ce1281 adding fixes as buttons were not visible for streamable-http transport type, as per PR review comment 2025-05-12 20:17:28 -07:00
sumeetpardeshi
1067f4d22f handling duplication in catch block as per PR comments 2025-05-08 17:01:18 -07:00
MMMarcinho
8373795804 feat: change style 2025-05-08 23:15:00 +08:00
sumeetpardeshi
2b963ce1ce fixing test cases after main merged 2025-05-06 17:06:54 -07:00
sumeetpardeshi
549a4ec65a fixing consolidating hook after merging with main 2025-05-06 16:39:54 -07:00
sumeetpardeshi
fef37483ba Merge branch 'main' of https://github.com/modelcontextprotocol/inspector 2025-05-06 16:35:24 -07:00
sumeetpardeshi
be7fa9baf9 changes:
- change button names
- adding unit test cases
- updated landing page image
- updating README file
as discussed here: https://github.com/modelcontextprotocol/inspector/pull/334#issuecomment-2852394054
2025-05-05 17:32:06 -07:00
sumeetpardeshi
e8e2dd0618 buttons take up whole width 2025-05-02 20:10:43 -07:00
sumeetpardeshi
163356f855 adding two buttons for configs: copy entry, copy file. also adding some tooltip and optimizations. 2025-05-01 15:42:16 -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
Nathan Arseneau
29b465fe45 Merge branch 'main' into sampling-form 2025-04-22 22:07:37 -04:00
sumeetpardeshi
114df8ac30 feat: add copy config button 2025-04-18 00:04:02 -07:00
Cliff Hall
b3971259d2
Merge branch 'main' into main 2025-04-17 16:40:48 -04:00
Maxwell Gerber
c8e9a772e4
Merge remote-tracking branch 'theirs/main' into max/improved-oauth-callback 2025-04-16 16:08:11 -07:00
Cliff Hall
cd28370f2c
Merge pull request #284 from max-stytch/max/default-tool-json
fix: When tool type cannot be determined, use DynamicJsonForm
2025-04-16 17:12:32 -04:00
Cliff Hall
880cb4a1de
Merge pull request #322 from Kavyapriya-1804/feat-display-section-cleared-on-clear-button-hit
feat - Display section reset on clear button hit
2025-04-16 15:56:00 -04:00
Cliff Hall
e31ee74842
Merge branch 'main' into fix-auth-server-specific-storage 2025-04-16 15:36:31 -04:00
KavyapriyaJG
9996be166f Fix - added null type to prompt for reset 2025-04-17 00:27:12 +05:30
KavyapriyaJG
0b1c00baab Ft - Display section reset on clear button hit 2025-04-17 00:04:58 +05:30
kavinkumarbaskar
e4b4039e90 prettier check 2025-04-16 12:06:54 +05:30
kavinkumarbaskar
e798504867 fixed console warning
- added key in select item to fix the console warning
2025-04-16 12:02:35 +05:30
Nathan Arseneau
a4e6daae15 Merge branch 'main' into sampling-form 2025-04-15 21:55:31 -04:00
Nathan Arseneau
5696c19df9 Merge branch 'main' into sampling-form 2025-04-15 21:54:04 -04: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
Cliff Hall
6420605d30
Merge branch 'main' into set-header 2025-04-14 18:23:55 -04:00
Cliff Hall
f1d5824a25
Merge branch 'main' into fix-tool-error-is-not-highlighted-for-sample-llm-tool-call-rejection 2025-04-14 17:50:35 -04:00
Cliff Hall
d0622d3eb5
Merge branch 'main' into main 2025-04-14 17:00:34 -04:00
Cliff Hall
33aad8a271
Merge branch 'main' into max/default-tool-json 2025-04-14 16:15:27 -04:00
kavinkumarbaskar
352f5af7f8 Merge branch 'main' into fix-tool-error-is-not-highlighted-for-sample-llm-tool-call-rejection 2025-04-14 23:09:33 +05:30
Ido Salomon
f461f29f18
Merge branch 'main' into set-header 2025-04-12 22:55:36 +03:00
kavinkumarbaskar
1175af1074 fix: missing condition for lengthy strings 2025-04-12 17:54:17 +05:30
Cloudkkk
c4cc4144d9 test: 💍 Add test case property 2025-04-12 14:30:33 +08:00