Compare commits

..

6 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
7eeb136233 Complete fix with screenshots and full testing
Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
2025-12-08 02:21:56 +00:00
copilot-swe-agent[bot]
db1d621a06 Fix export/import for OpenAPI server type and improve handling
Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
2025-12-08 02:18:20 +00:00
copilot-swe-agent[bot]
4affcb72d7 Initial investigation of export/import issue
Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
2025-12-08 02:12:39 +00:00
copilot-swe-agent[bot]
38e274d441 Initial plan 2025-12-08 02:04:27 +00:00
Alptekin Gülcan
ab7c210281 Optimizing API Operations: Simplified operationId Values and Large String Parameter Management (#488) 2025-12-07 13:11:35 +08:00
Copilot
6bd28ec89b Upgrade react and react-dom to 19.2.1 (#489)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: samanhappy <2755122+samanhappy@users.noreply.github.com>
2025-12-06 15:58:14 +08:00
5 changed files with 164 additions and 1321 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -14,6 +14,13 @@ interface McpServerConfig {
type?: string;
url?: string;
headers?: Record<string, string>;
openapi?: {
url?: string;
schema?: Record<string, any>;
version?: string;
security?: any;
passthroughHeaders?: string[];
};
}
interface ImportJsonFormat {
@@ -61,6 +68,34 @@ HTTP example:
}
}
}
}
OpenAPI example (correct format):
{
"mcpServers": {
"openapi-server-example": {
"type": "openapi",
"openapi": {
"url": "http://localhost:3002/openapi.json"
},
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}
OpenAPI example (legacy format, also supported):
{
"mcpServers": {
"openapi-server-legacy": {
"type": "openapi",
"url": "http://localhost:3002/openapi.json",
"headers": {
"X-API-Key": "your-api-key"
}
}
}
}`;
const parseAndValidateJson = (input: string): ImportJsonFormat | null => {
@@ -89,15 +124,34 @@ HTTP example:
// Normalize config to MCPHub format
const normalizedConfig: any = {};
// Handle different server types
if (config.type === 'sse' || config.type === 'streamable-http') {
// SSE and streamable-http servers use top-level url
normalizedConfig.type = config.type;
normalizedConfig.url = config.url;
if (config.headers) {
normalizedConfig.headers = config.headers;
}
} else if (config.type === 'openapi') {
// OpenAPI servers have special handling
normalizedConfig.type = 'openapi';
// Check if openapi configuration is already in correct format
if (config.openapi) {
normalizedConfig.openapi = config.openapi;
} else if (config.url) {
// Legacy format: convert top-level url to openapi.url
normalizedConfig.openapi = {
url: config.url,
};
}
if (config.headers) {
normalizedConfig.headers = config.headers;
}
} else {
// Default to stdio
normalizedConfig.type = 'stdio';
// Command-based servers (stdio or unspecified type)
normalizedConfig.type = config.type || 'stdio';
normalizedConfig.command = config.command;
normalizedConfig.args = config.args || [];
if (config.env) {
@@ -238,6 +292,16 @@ HTTP example:
<strong>{t('server.url')}:</strong> {server.config.url}
</div>
)}
{server.config.openapi?.url && (
<div>
<strong>OpenAPI URL:</strong> {server.config.openapi.url}
</div>
)}
{server.config.openapi?.schema && (
<div>
<strong>OpenAPI Schema:</strong> (Inline schema provided)
</div>
)}
{server.config.env && Object.keys(server.config.env).length > 0 && (
<div>
<strong>{t('server.envVars')}:</strong>{' '}

View File

@@ -110,8 +110,8 @@
"next": "^15.5.0",
"postcss": "^8.5.6",
"prettier": "^3.6.2",
"react": "19.2.0",
"react-dom": "19.2.0",
"react": "19.2.1",
"react-dom": "19.2.1",
"react-i18next": "^15.7.2",
"react-router-dom": "^7.8.2",
"supertest": "^7.1.4",

188
pnpm-lock.yaml generated
View File

@@ -105,10 +105,10 @@ importers:
devDependencies:
'@radix-ui/react-accordion':
specifier: ^1.2.12
version: 1.2.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
version: 1.2.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-slot':
specifier: ^1.2.3
version: 1.2.3(@types/react@19.2.7)(react@19.2.0)
version: 1.2.3(@types/react@19.2.7)(react@19.2.1)
'@shadcn/ui':
specifier: ^0.0.4
version: 0.0.4
@@ -195,10 +195,10 @@ importers:
version: 4.0.0(@jest/globals@30.2.0)(jest@30.2.0(@types/node@24.6.2)(ts-node@10.9.2(@swc/core@1.15.3)(@types/node@24.6.2)(typescript@5.9.2)))(typescript@5.9.2)
lucide-react:
specifier: ^0.552.0
version: 0.552.0(react@19.2.0)
version: 0.552.0(react@19.2.1)
next:
specifier: ^15.5.0
version: 15.5.7(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
version: 15.5.7(@babel/core@7.28.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
postcss:
specifier: ^8.5.6
version: 8.5.6
@@ -206,17 +206,17 @@ importers:
specifier: ^3.6.2
version: 3.6.2
react:
specifier: 19.2.0
version: 19.2.0
specifier: 19.2.1
version: 19.2.1
react-dom:
specifier: 19.2.0
version: 19.2.0(react@19.2.0)
specifier: 19.2.1
version: 19.2.1(react@19.2.1)
react-i18next:
specifier: ^15.7.2
version: 15.7.2(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2)
version: 15.7.2(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.2)
react-router-dom:
specifier: ^7.8.2
version: 7.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
version: 7.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
supertest:
specifier: ^7.1.4
version: 7.1.4
@@ -3844,10 +3844,10 @@ packages:
resolution: {integrity: sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==}
engines: {node: '>= 0.10'}
react-dom@19.2.0:
resolution: {integrity: sha512-UlbRu4cAiGaIewkPyiRGJk0imDN2T3JjieT6spoL2UeSf5od4n5LB/mQ4ejmxhCFT1tYe8IvaFulzynWovsEFQ==}
react-dom@19.2.1:
resolution: {integrity: sha512-ibrK8llX2a4eOskq1mXKu/TGZj9qzomO+sNfO98M6d9zIPOEhlBkMkBUBLd1vgS0gQsLDBzA+8jJBVXDnfHmJg==}
peerDependencies:
react: ^19.2.0
react: ^19.2.1
react-i18next@15.7.2:
resolution: {integrity: sha512-xJxq7ibnhUlMvd82lNC4te1GxGUMoM1A05KKyqoqsBXVZtEvZg/fz/fnVzdlY/hhQ3SpP/79qCocZOtICGhd3g==}
@@ -3889,8 +3889,8 @@ packages:
react-dom:
optional: true
react@19.2.0:
resolution: {integrity: sha512-tmbWg6W31tQLeB5cdIBOicJDJRR2KzXsV7uSK9iNfLWQ5bIZfxuPEHp7M8wiHyHnn0DD1i7w3Zmin0FtkrwoCQ==}
react@19.2.1:
resolution: {integrity: sha512-DGrYcCWK7tvYMnWh79yrPHt+vdx9tY+1gPZa7nJQtO/p8bLTDaHp4dzwEhQB7pZ4Xe3ok4XKuEPrVuc+wlpkmw==}
engines: {node: '>=0.10.0'}
readable-stream@3.6.2:
@@ -5535,120 +5535,120 @@ snapshots:
'@radix-ui/primitive@1.1.3': {}
'@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
'@radix-ui/react-accordion@1.2.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@radix-ui/primitive': 1.1.3
'@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
'@radix-ui/react-collapsible': 1.1.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-collection': 1.1.7(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-direction': 1.1.1(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
optionalDependencies:
'@types/react': 19.2.7
'@types/react-dom': 19.1.7(@types/react@19.2.7)
'@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
'@radix-ui/react-collapsible@1.1.12(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@radix-ui/primitive': 1.1.3
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-id': 1.1.1(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-presence': 1.1.5(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
optionalDependencies:
'@types/react': 19.2.7
'@types/react-dom': 19.1.7(@types/react@19.2.7)
'@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
'@radix-ui/react-collection@1.1.7(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-context': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
optionalDependencies:
'@types/react': 19.2.7
'@types/react-dom': 19.1.7(@types/react@19.2.7)
'@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-compose-refs@1.1.2(@types/react@19.2.7)(react@19.2.1)':
dependencies:
react: 19.2.0
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-context@1.1.2(@types/react@19.2.7)(react@19.2.1)':
dependencies:
react: 19.2.0
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-direction@1.1.1(@types/react@19.2.7)(react@19.2.1)':
dependencies:
react: 19.2.0
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-id@1.1.1(@types/react@19.2.7)(react@19.2.1)':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
'@radix-ui/react-presence@1.1.5(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
optionalDependencies:
'@types/react': 19.2.7
'@types/react-dom': 19.1.7(@types/react@19.2.7)
'@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
'@radix-ui/react-primitive@2.1.3(@types/react-dom@19.1.7(@types/react@19.2.7))(@types/react@19.2.7)(react-dom@19.2.1(react@19.2.1))(react@19.2.1)':
dependencies:
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
'@radix-ui/react-slot': 1.2.3(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
optionalDependencies:
'@types/react': 19.2.7
'@types/react-dom': 19.1.7(@types/react@19.2.7)
'@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-slot@1.2.3(@types/react@19.2.7)(react@19.2.1)':
dependencies:
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
'@radix-ui/react-compose-refs': 1.1.2(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-use-controllable-state@1.2.2(@types/react@19.2.7)(react@19.2.1)':
dependencies:
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.7)(react@19.2.0)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
'@radix-ui/react-use-effect-event': 0.0.2(@types/react@19.2.7)(react@19.2.1)
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-use-effect-event@0.0.2(@types/react@19.2.7)(react@19.2.1)':
dependencies:
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.0)
react: 19.2.0
'@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.2.7)(react@19.2.1)
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.0)':
'@radix-ui/react-use-layout-effect@1.1.1(@types/react@19.2.7)(react@19.2.1)':
dependencies:
react: 19.2.0
react: 19.2.1
optionalDependencies:
'@types/react': 19.2.7
@@ -7932,9 +7932,9 @@ snapshots:
dependencies:
yallist: 3.1.1
lucide-react@0.552.0(react@19.2.0):
lucide-react@0.552.0(react@19.2.1):
dependencies:
react: 19.2.0
react: 19.2.1
magic-string@0.30.21:
dependencies:
@@ -8043,15 +8043,15 @@ snapshots:
neo-async@2.6.2: {}
next@15.5.7(@babel/core@7.28.4)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
next@15.5.7(@babel/core@7.28.4)(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
'@next/env': 15.5.7
'@swc/helpers': 0.5.15
caniuse-lite: 1.0.30001759
postcss: 8.4.31
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
styled-jsx: 5.1.6(@babel/core@7.28.4)(react@19.2.0)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
styled-jsx: 5.1.6(@babel/core@7.28.4)(react@19.2.1)
optionalDependencies:
'@next/swc-darwin-arm64': 15.5.7
'@next/swc-darwin-x64': 15.5.7
@@ -8335,40 +8335,40 @@ snapshots:
iconv-lite: 0.7.0
unpipe: 1.0.0
react-dom@19.2.0(react@19.2.0):
react-dom@19.2.1(react@19.2.1):
dependencies:
react: 19.2.0
react: 19.2.1
scheduler: 0.27.0
react-i18next@15.7.2(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.2):
react-i18next@15.7.2(i18next@25.6.0(typescript@5.9.2))(react-dom@19.2.1(react@19.2.1))(react@19.2.1)(typescript@5.9.2):
dependencies:
'@babel/runtime': 7.28.3
html-parse-stringify: 3.0.1
i18next: 25.6.0(typescript@5.9.2)
react: 19.2.0
react: 19.2.1
optionalDependencies:
react-dom: 19.2.0(react@19.2.0)
react-dom: 19.2.1(react@19.2.1)
typescript: 5.9.2
react-is@18.3.1: {}
react-refresh@0.17.0: {}
react-router-dom@7.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
react-router-dom@7.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
react-router: 7.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.1
react-dom: 19.2.1(react@19.2.1)
react-router: 7.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1)
react-router@7.8.2(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
react-router@7.8.2(react-dom@19.2.1(react@19.2.1))(react@19.2.1):
dependencies:
cookie: 1.1.1
react: 19.2.0
react: 19.2.1
set-cookie-parser: 2.7.1
optionalDependencies:
react-dom: 19.2.0(react@19.2.0)
react-dom: 19.2.1(react@19.2.1)
react@19.2.0: {}
react@19.2.1: {}
readable-stream@3.6.2:
dependencies:
@@ -8719,10 +8719,10 @@ snapshots:
strip-json-comments@3.1.1: {}
styled-jsx@5.1.6(@babel/core@7.28.4)(react@19.2.0):
styled-jsx@5.1.6(@babel/core@7.28.4)(react@19.2.1):
dependencies:
client-only: 0.0.1
react: 19.2.0
react: 19.2.1
optionalDependencies:
'@babel/core': 7.28.4

View File

@@ -42,7 +42,7 @@ function convertToolSchemaToOpenAPI(tool: Tool): {
(prop: any) =>
prop.type === 'object' ||
prop.type === 'array' ||
(prop.type === 'string' && prop.enum && prop.enum.length > 10),
prop.type === 'string',
);
if (!hasComplexTypes && Object.keys(properties).length <= 10) {
@@ -93,7 +93,7 @@ function generateOperationFromTool(tool: Tool, serverName: string): OpenAPIV3.Op
const operation: OpenAPIV3.OperationObject = {
summary: tool.description || `Execute ${tool.name} tool`,
description: tool.description || `Execute the ${tool.name} tool from ${serverName} server`,
operationId: `${serverName}_${tool.name}`,
operationId: `${tool.name}`,
tags: [serverName],
...(parameters && parameters.length > 0 && { parameters }),
...(requestBody && { requestBody }),