update_integration
Update an integration's name, API key, or provider-specific configuration. Key and config changes take effect immediately and may affect dependent providers.
Instructions
Update an integration's name, key, or provider-specific config. Key and config changes take effect immediately and can disrupt dependent providers or live requests.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The slug of the integration to update | |
| name | No | New human-readable name for the integration | |
| key | No | New API key for the provider | |
| description | No | New description for the integration | |
| api_version | No | New API version (for Azure OpenAI) | |
| resource_name | No | New resource name (for Azure OpenAI) | |
| deployment_name | No | New deployment name (for Azure OpenAI) | |
| aws_region | No | New AWS region (for AWS Bedrock) | |
| aws_access_key_id | No | New AWS access key ID (for AWS Bedrock) | |
| aws_secret_access_key | No | New AWS secret access key (for AWS Bedrock) | |
| vertex_project_id | No | New GCP project ID (for Vertex AI) | |
| vertex_region | No | New GCP region (for Vertex AI) | |
| custom_host | No | New custom base URL for the provider |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | Whether the tool call succeeded and returned structured data | |
| data | No | Structured success payload when ok is true | |
| error | No | Structured error payload when ok is false |
Implementation Reference
- src/tools/integrations.tools.ts:376-434 (registration)Registration of the 'update_integration' MCP tool via server.tool() call, with handler logic that collects provider-specific configs and calls the service layer.
// Update integration tool server.tool( "update_integration", "Update an integration's name, key, or provider-specific config. Key and config changes take effect immediately and can disrupt dependent providers or live requests.", INTEGRATIONS_TOOL_SCHEMAS.updateIntegration, async (params) => { const configurations: Record<string, unknown> = {}; // Azure OpenAI configurations if (params.api_version !== undefined) configurations.api_version = params.api_version; if (params.resource_name !== undefined) configurations.resource_name = params.resource_name; if (params.deployment_name !== undefined) configurations.deployment_name = params.deployment_name; // AWS Bedrock configurations if (params.aws_region !== undefined) configurations.aws_region = params.aws_region; if (params.aws_access_key_id !== undefined) configurations.aws_access_key_id = params.aws_access_key_id; if (params.aws_secret_access_key !== undefined) configurations.aws_secret_access_key = params.aws_secret_access_key; // Vertex AI configurations if (params.vertex_project_id !== undefined) configurations.vertex_project_id = params.vertex_project_id; if (params.vertex_region !== undefined) configurations.vertex_region = params.vertex_region; // Custom host if (params.custom_host !== undefined) configurations.custom_host = params.custom_host; const result = await service.integrations.updateIntegration(params.slug, { name: params.name, key: params.key, description: params.description, configurations: Object.keys(configurations).length > 0 ? configurations : undefined, }); return { content: [ { type: "text", text: JSON.stringify( { message: `Successfully updated integration "${params.slug}"`, success: result.success, }, null, 2, ), }, ], }; }, ); - Zod schema for the update_integration tool input, defining all optional fields: slug (required), name, key, description, and provider-specific config fields (Azure, AWS, Vertex, custom_host).
updateIntegration: { slug: z.string().describe("The slug of the integration to update"), name: z .string() .optional() .describe("New human-readable name for the integration"), key: z.string().optional().describe("New API key for the provider"), description: z .string() .optional() .describe("New description for the integration"), api_version: z .string() .optional() .describe("New API version (for Azure OpenAI)"), resource_name: z .string() .optional() .describe("New resource name (for Azure OpenAI)"), deployment_name: z .string() .optional() .describe("New deployment name (for Azure OpenAI)"), aws_region: z .string() .optional() .describe("New AWS region (for AWS Bedrock)"), aws_access_key_id: z .string() .optional() .describe("New AWS access key ID (for AWS Bedrock)"), aws_secret_access_key: z .string() .optional() .describe("New AWS secret access key (for AWS Bedrock)"), vertex_project_id: z .string() .optional() .describe("New GCP project ID (for Vertex AI)"), vertex_region: z .string() .optional() .describe("New GCP region (for Vertex AI)"), custom_host: z .string() .optional() .describe("New custom base URL for the provider"), }, - Service-layer handler for update_integration - makes a PUT request to /integrations/{slug} with the provided data and returns success status.
async updateIntegration( slug: string, data: UpdateIntegrationRequest, ): Promise<{ success: boolean }> { await this.put(`/integrations/${this.encodePathSegment(slug)}`, data); return { success: true }; } - TypeScript interface defining the shape of the update request payload sent to the API.
export interface UpdateIntegrationRequest { name?: string; key?: string; description?: string; configurations?: IntegrationConfigurations; } - TypeScript interface for provider-specific configurations used in the update request.
export interface IntegrationConfigurations { // OpenAI / Azure OpenAI specific api_version?: string; resource_name?: string; deployment_name?: string; // AWS Bedrock specific aws_region?: string; aws_access_key_id?: string; aws_secret_access_key?: string; aws_session_token?: string; // Vertex AI specific vertex_project_id?: string; vertex_region?: string; vertex_service_account_json?: string; // Custom base URL custom_host?: string; // Generic key-value for provider-specific configs [key: string]: unknown; }