Skip to content

Commit c2a99f6

Browse files
committed
support both v1 and v1alpha3 apis
1 parent 09ac052 commit c2a99f6

File tree

4 files changed

+37
-32
lines changed

4 files changed

+37
-32
lines changed

frontend/src/components/pages/mcp-servers/create/remote-mcp-create-page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ export const RemoteMCPCreatePage: React.FC = () => {
307307
}
308308

309309
const useMcpServiceAccount = isFeatureFlagEnabled('enableMcpServiceAccount');
310-
let serviceAccountConfig;
310+
let serviceAccountConfig: ReturnType<typeof create<typeof MCPServer_ServiceAccountSchema>> | undefined;
311311

312312
// Create service account if feature flag is enabled
313313
if (useMcpServiceAccount) {

frontend/src/components/pages/mcp-servers/create/use-metadata-validation.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ export function useMetadataValidation(form: UseFormReturn<FormValues>) {
4040
}, [
4141
formValues.displayName,
4242
formValues.resourcesTier,
43-
formValues.serviceAccountName,
4443
form.formState.errors.displayName,
4544
form.formState.errors.description,
4645
form.formState.errors.resourcesTier,

frontend/src/components/pages/mcp-servers/details/remote-mcp-configuration-tab.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@ import type { LintHint } from 'protogen/redpanda/api/common/v1/linthint_pb';
4040
import { Scope } from 'protogen/redpanda/api/dataplane/v1/secret_pb';
4141
import {
4242
LintMCPConfigRequestSchema,
43-
type MCPServer_State,
44-
MCPServer_Tool_ComponentType,
4543
UpdateMCPServerRequestSchema,
4644
} from 'protogen/redpanda/api/dataplane/v1alpha3/mcp_pb';
4745
import React, { useCallback, useEffect, useState } from 'react';
4846
import {
47+
type MCPServer_State,
48+
MCPServer_Tool_ComponentType,
4949
useGetMCPServerQuery,
5050
useLintMCPConfigMutation,
5151
useListMCPServerTools,

frontend/src/react-query/api/remote-mcp.tsx

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -9,45 +9,46 @@ import {
99
} from '@tanstack/react-query';
1010
import { config, isFeatureFlagEnabled } from 'config';
1111
import {
12-
type GetMCPServerRequest as GetMCPServerRequestV1,
1312
GetMCPServerRequestSchema as GetMCPServerRequestSchemaV1,
13+
type GetMCPServerRequest as GetMCPServerRequestV1,
1414
type GetMCPServerResponse as GetMCPServerResponseV1,
15-
type ListMCPServersRequest as ListMCPServersRequestV1,
1615
ListMCPServersRequest_FilterSchema as ListMCPServersRequest_FilterSchemaV1,
1716
ListMCPServersRequestSchema as ListMCPServersRequestSchemaV1,
17+
type ListMCPServersRequest as ListMCPServersRequestV1,
1818
type ListMCPServersResponse as ListMCPServersResponseV1,
19-
type MCPServer as MCPServerV1,
2019
MCPServer_State as MCPServer_StateV1,
2120
MCPServerService as MCPServerServiceV1,
21+
type MCPServer as MCPServerV1,
2222
} from 'protogen/redpanda/api/dataplane/v1/mcp_pb';
2323
import {
2424
createMCPServer as createMCPServerV1,
2525
deleteMCPServer as deleteMCPServerV1,
26-
getMCPServer as getMCPServerV1,
2726
getMCPServerServiceConfigSchema as getMCPServerServiceConfigSchemaV1,
27+
getMCPServer as getMCPServerV1,
2828
lintMCPConfig as lintMCPConfigV1,
2929
listMCPServers as listMCPServersV1,
3030
startMCPServer as startMCPServerV1,
3131
stopMCPServer as stopMCPServerV1,
3232
updateMCPServer as updateMCPServerV1,
3333
} from 'protogen/redpanda/api/dataplane/v1/mcp-MCPServerService_connectquery';
3434
import {
35-
type GetMCPServerRequest as GetMCPServerRequestV1Alpha3,
3635
GetMCPServerRequestSchema as GetMCPServerRequestSchemaV1Alpha3,
36+
type GetMCPServerRequest as GetMCPServerRequestV1Alpha3,
3737
type GetMCPServerResponse as GetMCPServerResponseV1Alpha3,
38-
type ListMCPServersRequest as ListMCPServersRequestV1Alpha3,
3938
ListMCPServersRequest_FilterSchema as ListMCPServersRequest_FilterSchemaV1Alpha3,
4039
ListMCPServersRequestSchema as ListMCPServersRequestSchemaV1Alpha3,
40+
type ListMCPServersRequest as ListMCPServersRequestV1Alpha3,
4141
type ListMCPServersResponse as ListMCPServersResponseV1Alpha3,
42-
type MCPServer as MCPServerV1Alpha3,
4342
MCPServer_State as MCPServer_StateV1Alpha3,
43+
MCPServer_Tool_ComponentType as MCPServer_Tool_ComponentTypeV1Alpha3,
4444
MCPServerService as MCPServerServiceV1Alpha3,
45+
type MCPServer as MCPServerV1Alpha3,
4546
} from 'protogen/redpanda/api/dataplane/v1alpha3/mcp_pb';
4647
import {
4748
createMCPServer as createMCPServerV1Alpha3,
4849
deleteMCPServer as deleteMCPServerV1Alpha3,
49-
getMCPServer as getMCPServerV1Alpha3,
5050
getMCPServerServiceConfigSchema as getMCPServerServiceConfigSchemaV1Alpha3,
51+
getMCPServer as getMCPServerV1Alpha3,
5152
lintMCPConfig as lintMCPConfigV1Alpha3,
5253
listMCPServers as listMCPServersV1Alpha3,
5354
startMCPServer as startMCPServerV1Alpha3,
@@ -67,26 +68,27 @@ export type ListMCPServersRequest = ListMCPServersRequestV1 | ListMCPServersRequ
6768
export type ListMCPServersResponse = ListMCPServersResponseV1 | ListMCPServersResponseV1Alpha3;
6869
export type MCPServer = MCPServerV1 | MCPServerV1Alpha3;
6970

71+
// Export enums - default to v1alpha3 for backward compatibility
72+
export const MCPServer_State = MCPServer_StateV1Alpha3;
73+
export const MCPServer_Tool_ComponentType = MCPServer_Tool_ComponentTypeV1Alpha3;
74+
7075
export const useListMCPServersQuery = (
7176
input?: MessageInit<ListMCPServersRequest>,
7277
options?: QueryOptions<GenMessage<ListMCPServersRequest>, ListMCPServersResponse>
7378
) => {
7479
const useMcpV1 = isFeatureFlagEnabled('enableMcpServiceAccount');
7580

76-
const listMCPServersRequest = create(
77-
useMcpV1 ? ListMCPServersRequestSchemaV1 : ListMCPServersRequestSchemaV1Alpha3,
78-
{
79-
pageToken: '',
80-
pageSize: MCP_SERVER_MAX_PAGE_SIZE,
81-
filter: input?.filter
82-
? create(useMcpV1 ? ListMCPServersRequest_FilterSchemaV1 : ListMCPServersRequest_FilterSchemaV1Alpha3, {
83-
displayNameContains: input.filter.displayNameContains,
84-
tags: input.filter.tags,
85-
secretId: input.filter.secretId,
86-
})
87-
: undefined,
88-
}
89-
);
81+
const listMCPServersRequest = create(useMcpV1 ? ListMCPServersRequestSchemaV1 : ListMCPServersRequestSchemaV1Alpha3, {
82+
pageToken: '',
83+
pageSize: MCP_SERVER_MAX_PAGE_SIZE,
84+
filter: input?.filter
85+
? create(useMcpV1 ? ListMCPServersRequest_FilterSchemaV1 : ListMCPServersRequest_FilterSchemaV1Alpha3, {
86+
displayNameContains: input.filter.displayNameContains,
87+
tags: input.filter.tags,
88+
secretId: input.filter.secretId,
89+
})
90+
: undefined,
91+
});
9092

9193
return useQuery(useMcpV1 ? listMCPServersV1 : listMCPServersV1Alpha3, listMCPServersRequest, {
9294
enabled: options?.enabled,
@@ -102,13 +104,13 @@ export const useGetMCPServerQuery = (
102104
id: input?.id,
103105
});
104106

105-
const MCPServer_State = useMcpV1 ? MCPServer_StateV1 : MCPServer_StateV1Alpha3;
107+
const StateEnum = useMcpV1 ? MCPServer_StateV1 : MCPServer_StateV1Alpha3;
106108

107109
return useQuery(useMcpV1 ? getMCPServerV1 : getMCPServerV1Alpha3, getMCPServerRequest, {
108110
enabled: options?.enabled,
109111
refetchInterval:
110112
options?.refetchInterval ??
111-
((query) => (query?.state?.data?.mcpServer?.state === MCPServer_State.STARTING ? 2 * 1000 : false)),
113+
((query) => (query?.state?.data?.mcpServer?.state === StateEnum.STARTING ? 2 * 1000 : false)),
112114
refetchIntervalInBackground: options?.refetchIntervalInBackground ?? false,
113115
});
114116
};
@@ -167,7 +169,7 @@ export const useUpdateMCPServerMutation = () => {
167169
});
168170
await queryClient.invalidateQueries({
169171
queryKey: createConnectQueryKey({
170-
schema: MCPServerService.method.getMCPServer,
172+
schema: (useMcpV1 ? MCPServerServiceV1 : MCPServerServiceV1Alpha3).method.getMCPServer,
171173
cardinality: 'finite',
172174
}),
173175
exact: false,
@@ -406,6 +408,8 @@ export type UseListMCPServerToolsParams = {
406408

407409
export const useListMCPServerTools = ({ mcpServer }: UseListMCPServerToolsParams) => {
408410
const queryClient = useQueryClient();
411+
const useMcpV1 = isFeatureFlagEnabled('enableMcpServiceAccount');
412+
const StateEnum = useMcpV1 ? MCPServer_StateV1 : MCPServer_StateV1Alpha3;
409413

410414
return useTanstackQuery({
411415
queryKey: ['mcp-server-tools', mcpServer?.url],
@@ -414,15 +418,17 @@ export const useListMCPServerTools = ({ mcpServer }: UseListMCPServerToolsParams
414418
if (mcpServer?.id) {
415419
await queryClient.refetchQueries({
416420
queryKey: createConnectQueryKey({
417-
schema: MCPServerService.method.getMCPServer,
418-
input: create(GetMCPServerRequestSchema, { id: mcpServer.id }),
421+
schema: (useMcpV1 ? MCPServerServiceV1 : MCPServerServiceV1Alpha3).method.getMCPServer,
422+
input: create(useMcpV1 ? GetMCPServerRequestSchemaV1 : GetMCPServerRequestSchemaV1Alpha3, {
423+
id: mcpServer.id,
424+
}),
419425
cardinality: 'finite',
420426
}),
421427
});
422428
}
423429

424430
return listMCPServerTools(mcpServer?.url || '');
425431
},
426-
enabled: !!mcpServer?.url && mcpServer?.state === MCPServer_State.RUNNING,
432+
enabled: !!mcpServer?.url && mcpServer?.state === StateEnum.RUNNING,
427433
});
428434
};

0 commit comments

Comments
 (0)