@@ -8,6 +8,7 @@ import { useLatest } from 'react-use';
88import { docsMcpClient } from '~/common/documentation' ;
99import { buildResourceJsonSchema , fillUriTemplate } from '~/common/mcp-utils' ;
1010import type { McpReadyState } from '~/main/mcp/types' ;
11+ import type { BaseMcpPayload } from '~/models/mcp-request-payload' ;
1112import { useWorkspaceLoaderData } from '~/routes/organization.$organizationId.project.$projectId.workspace.$workspaceId' ;
1213import { Link } from '~/ui/components/base/link' ;
1314import { EnvironmentKVEditor } from '~/ui/components/editors/environment-key-value-editor/key-value-editor' ;
@@ -57,6 +58,22 @@ interface Props {
5758 onTabChange : ( newTab : RequestPaneTabs ) => void ;
5859}
5960
61+ const getParamsFromPayload = ( payloadParams : BaseMcpPayload [ 'params' ] ) => {
62+ // INS-2041 params has been changed from object to json string to avoid param name with dot issue
63+ // For existing payload, we need to handle both string and object type
64+ if ( typeof payloadParams === 'string' ) {
65+ try {
66+ return JSON . parse ( payloadParams ) ;
67+ } catch ( error ) {
68+ console . warn ( 'Failed to parse MCP params string:' , error ) ;
69+ return { } ;
70+ }
71+ } else if ( typeof payloadParams === 'object' ) {
72+ return payloadParams ;
73+ }
74+ return { } ;
75+ } ;
76+
6077export const McpRequestPane : FC < Props > = ( {
6178 environment,
6279 readyState,
@@ -70,7 +87,7 @@ export const McpRequestPane: FC<Props> = ({
7087
7188 const { activeProject } = useWorkspaceLoaderData ( ) ! ;
7289
73- const [ mcpParams , setMcpParams ] = useState < Record < string , any > > ( requestPayload ?. params || { } ) ;
90+ const [ mcpParams , setMcpParams ] = useState < Record < string , any > > ( getParamsFromPayload ( requestPayload ?. params ) ) ;
7491
7592 const paramEditorRef = useRef < CodeEditorHandle > ( null ) ;
7693 const rjsfFormRef = useRef < InsomniaRjsfFormHandle > ( null ) ;
@@ -196,13 +213,13 @@ export const McpRequestPane: FC<Props> = ({
196213
197214 useEffect ( ( ) => {
198215 if ( isConnected ) {
199- latestPayloadPatcherRef . current ( requestId , { params : mcpParams , url : activeRequest . url } ) ;
216+ latestPayloadPatcherRef . current ( requestId , { params : JSON . stringify ( mcpParams ) , url : activeRequest . url } ) ;
200217 }
201218 } , [ activeRequest . url , mcpParams , latestPayloadPatcherRef , requestId , isConnected ] ) ;
202219
203220 useEffect ( ( ) => {
204221 if ( isConnected ) {
205- setMcpParams ( latestRequestPayloadRef . current ?. params || { } ) ;
222+ setMcpParams ( getParamsFromPayload ( latestRequestPayloadRef . current ?. params ) ) ;
206223 }
207224 } , [ activeRequest . url , latestRequestPayloadRef , isConnected ] ) ;
208225
0 commit comments