> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revoengine.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update an agent plugin

> Updates a tenant agent plugin and records the normalized plugin definition snapshot.



## OpenAPI

````yaml /api-reference/openapi.json patch /api/v1/agent/plugins/{agentPluginId}
openapi: 3.0.0
info:
  title: RevoEngine Platform API
  description: Official RevoEngine Platform API documentation.
  version: 1.3.0
  contact:
    name: Support
    email: support@revoengine.com
  termsOfService: https://docs.revoengine.com/tos
servers:
  - url: https://api.revoengine.com
    description: Production
security: []
tags:
  - name: Accounts
    description: Users, service accounts, API keys, status, and platform access.
    externalDocs:
      description: Identity and access guide
      url: https://docs.revoengine.com/operate/identity-and-access
  - name: Activity
    description: Snapshot-backed activity and version history.
    externalDocs:
      description: Observability guide
      url: https://docs.revoengine.com/operate/observability
  - name: Agent Memory
    description: Administrative access to durable Agent memory.
    externalDocs:
      description: Agent memory and workspaces guide
      url: https://docs.revoengine.com/ai/memory-and-workspaces
  - name: Agent Plugins
    description: Agent plugin definitions, synchronization, testing, and lifecycle.
    externalDocs:
      description: Agent plugins guide
      url: https://docs.revoengine.com/ai/plugins
  - name: Agents
    description: >-
      Agent definitions, runs, sessions, inboxes, memory, tools, workspaces, and
      lifecycle.
    externalDocs:
      description: Autonomous Agents guide
      url: https://docs.revoengine.com/ai/agents
  - name: Assistant
    description: >-
      Assistant threads, messages, responses, goals, reports, sharing,
      attachments, and control.
    externalDocs:
      description: Assistant guide
      url: https://docs.revoengine.com/ai/assistant
  - name: Automation
    description: >-
      Jobs, templates, schedules, events, webhooks, execution history, and
      lifecycle.
    externalDocs:
      description: Automation guide
      url: https://docs.revoengine.com/operate/automation
  - name: Chat
    description: Collaborative chat threads, messages, reactions, uploads, and attachments.
    externalDocs:
      description: Team Chat guide
      url: https://docs.revoengine.com/operate/chat
  - name: Component deployments
    description: >-
      Custom Node.js runtime deployment attempts, readiness, activation, and
      rollback.
    externalDocs:
      description: Custom Node.js guide
      url: https://docs.revoengine.com/build/custom-nodejs
  - name: Components
    description: Components, elements, versions, validation, activation, and lifecycle.
    externalDocs:
      description: Components guide
      url: https://docs.revoengine.com/build/components
  - name: Config
    description: Instance configuration, usage, logs, and cache administration.
    externalDocs:
      description: Instance settings guide
      url: https://docs.revoengine.com/platform/instance-settings
  - name: Database Cache
    description: Instance Database cache values and statistics.
    externalDocs:
      description: Database Cache guide
      url: https://docs.revoengine.com/operate/database-cache
  - name: Database Views
    description: Database Views, previews, refreshes, exports, and controlled data actions.
    externalDocs:
      description: Database Views guide
      url: https://docs.revoengine.com/operate/database-views
  - name: Databases
    description: Database definitions, data, audits, exports, cloning, and lifecycle.
    externalDocs:
      description: Databases guide
      url: https://docs.revoengine.com/operate/databases
  - name: Endpoints
    description: >-
      Endpoint definitions, activation, validation, generated OpenAPI, and
      statistics.
    externalDocs:
      description: Endpoints guide
      url: https://docs.revoengine.com/operate/endpoints
  - name: Files
    description: Compatibility file listing, preview, download, and deletion operations.
    externalDocs:
      description: Files compatibility guide
      url: https://docs.revoengine.com/operate/files
  - name: Groups
    description: Groups, membership, avatars, and lifecycle.
    externalDocs:
      description: Groups guide
      url: https://docs.revoengine.com/operate/groups
  - name: Me
    description: Current user profile, keys, avatar, and session information.
    externalDocs:
      description: Authentication guide
      url: https://docs.revoengine.com/developers/authentication
  - name: Preferences
    description: User and instance preference values.
    externalDocs:
      description: Platform UI guide
      url: https://docs.revoengine.com/platform/ui-tour
  - name: Role Groups
    description: Role groups, members, assigned roles, and lifecycle.
    externalDocs:
      description: Permissions guide
      url: https://docs.revoengine.com/operate/permissions
  - name: Roles
    description: Available platform roles and role details.
    externalDocs:
      description: Permissions guide
      url: https://docs.revoengine.com/operate/permissions
  - name: Search
    description: Cross-domain search over objects visible to the caller.
    externalDocs:
      description: Search and discovery guide
      url: https://docs.revoengine.com/platform/search
  - name: Secrets
    description: >-
      Secret definitions, revisions, activation, reveal, disable, and
      destruction.
    externalDocs:
      description: Secrets guide
      url: https://docs.revoengine.com/operate/secrets
  - name: Storage
    description: >-
      Storage workspaces, folders, objects, upload sessions, signed access, and
      lifecycle.
    externalDocs:
      description: Storage guide
      url: https://docs.revoengine.com/operate/storage
externalDocs:
  description: Documentation
  url: https://docs.revoengine.com
paths:
  /api/v1/agent/plugins/{agentPluginId}:
    patch:
      tags:
        - Agent Plugins
      summary: Update an agent plugin
      description: >-
        Updates a tenant agent plugin and records the normalized plugin
        definition snapshot.
      operationId: AgentPluginController_updatePlugin
      parameters:
        - name: agentPluginId
          required: true
          in: path
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAgentPluginDto'
      responses:
        '200':
          description: ''
      security:
        - bearer: []
components:
  schemas:
    UpdateAgentPluginDto:
      type: object
      properties:
        kind:
          type: string
          description: Replacement plugin execution provider kind.
          enum:
            - tools
            - mcp_server
            - skill
            - package
        name:
          type: string
          description: Updated plugin name.
          minLength: 1
        description:
          type: string
          description: Updated plugin description.
        routing:
          description: >-
            Canonical English capability metadata used for tool selection.
            Operator-facing content may remain localized.
          allOf:
            - $ref: '#/components/schemas/AgentPluginRoutingConfigDto'
        category:
          type: string
          description: Updated plugin category.
        metadata:
          type: object
          description: >-
            Replacement resource metadata. Values may use any JSON type. Maximum
            16 KiB and 64 top-level keys. Top-level keys starting with "__" are
            reserved for backend use.
          example:
            costCenter: platform
        remoteId:
          type: string
          description: Updated upstream plugin identifier.
        version:
          type: number
          description: Optimistic version expected by the client.
          minimum: 0
        executionMode:
          type: string
          description: Replacement execution mode.
          enum:
            - sync
            - background
        componentId:
          type: string
          description: >-
            Replacement component id. Required when `kind` is explicitly set to
            `tools`, and forbidden for MCP server patches.
          minLength: 1
        componentVersion:
          type: number
          description: >-
            Replacement fixed component version for tools patches. Forbidden for
            MCP server patches.
          minimum: 0
        componentToolset:
          description: >-
            Replacement component-backed toolset. Forbidden for MCP server and
            skill patches.
          allOf:
            - $ref: '#/components/schemas/AgentPluginComponentToolsetDto'
        mcpServer:
          description: >-
            Replacement remote MCP server configuration. Required when `kind` is
            explicitly set to `mcp_server`, and forbidden for tools patches.
          allOf:
            - $ref: '#/components/schemas/AgentPluginMcpConfigDto'
        mcpToolset:
          description: >-
            Replacement per-tool MCP governance and loading configuration for
            MCP server patches. Forbidden for tools patches.
          allOf:
            - $ref: '#/components/schemas/AgentPluginMcpToolsetDto'
        skill:
          description: >-
            Replacement Markdown skill configuration. Required when kind is
            explicitly set to skill.
          allOf:
            - $ref: '#/components/schemas/AgentPluginSkillConfigDto'
        package:
          description: >-
            Replacement Markdown package manifest. Required when kind is
            explicitly set to package.
          allOf:
            - $ref: '#/components/schemas/AgentPluginPackageConfigDto'
        providerSource:
          type: string
          description: >-
            Replacement provider source recorded for discovery, auditability,
            and telemetry.
          enum:
            - tenant_plugin
            - community_plugin
        inputSchema:
          type: object
          description: >-
            Replacement strict structured input schema for tools plugins.
            Forbidden for MCP server patches. Must be an object schema with
            additionalProperties=false and descriptions on every declared
            property.
        outputSchema:
          type: object
          description: >-
            Replacement structured output schema for tools plugins. Forbidden
            for MCP server patches.
        approvalPolicy:
          description: Replacement approval contract.
          allOf:
            - $ref: '#/components/schemas/UpdateAgentPluginApprovalPolicyDto'
        mutationIntent:
          type: string
          description: Declared mutation intent used for governance and approval safety.
          enum:
            - read
            - write
            - destructive
            - external
        reversibility:
          type: string
          description: Replacement reversibility declaration.
          enum:
            - reversible
            - operator_reversible
            - irreversible
            - unknown
        targetScope:
          type: string
          description: Replacement target scope.
          enum:
            - assistant_thread
            - agent
            - tenant
            - external
        sideEffectSummary:
          type: string
          description: Replacement side-effect declaration.
        sideEffectCategories:
          description: >-
            Normalized side-effect categories used for governance and operator
            review.
          type: array
          items:
            type: string
        timeoutMs:
          type: number
          description: Replacement execution timeout in milliseconds.
          minimum: 1000
          example: 30000
        resultMaxBytes:
          type: number
          description: Replacement maximum serialized result size in bytes.
          minimum: 512
        autoDiscovery:
          type: boolean
          description: >-
            Whether the plugin should be surfaced as summary-only discovery
            context for agents and assistant threads before explicit attachment.
        active:
          type: boolean
          description: Updated active flag used to gate runtime attachment.
    AgentPluginRoutingConfigDto:
      type: object
      properties:
        title:
          type: string
          description: >-
            Canonical English capability title used for tool selection. Display
            names may remain localized.
        summary:
          type: string
          description: >-
            Canonical English capability summary used for tool selection.
            Display descriptions may remain localized.
    AgentPluginComponentToolsetDto:
      type: object
      properties:
        defaultConfig:
          description: Default governance and loading policy for component-backed tools.
          allOf:
            - $ref: '#/components/schemas/AgentPluginComponentToolConfigDto'
        tools:
          type: object
          description: Component-backed tools keyed by stable capability name.
    AgentPluginMcpConfigDto:
      type: object
      properties:
        transport:
          type: string
          description: Remote MCP transport supported by the SaaS runtime.
          enum:
            - streamable_http
            - sse
        url:
          type: string
          description: Absolute HTTPS endpoint for the remote MCP server.
        manifestTtlMs:
          type: number
          description: Manifest cache time-to-live in milliseconds.
          minimum: 1000
        connectTimeoutMs:
          type: number
          description: Connection and handshake timeout in milliseconds.
          minimum: 1000
          example: 30000
        toolNamePrefix:
          type: string
          description: Prefix used to derive local MCP tool names from remote tool names.
          minLength: 1
        authMode:
          type: string
          description: Auth mode used when calling the remote MCP server.
          enum:
            - none
            - bearer
            - basic
            - header
        bearerSecretId:
          type: string
          description: Secret id containing the bearer token.
          minLength: 1
        bearerSecretDataId:
          type: string
          description: Optional secret data revision id for the bearer token binding.
          minLength: 1
        basicUsername:
          type: string
          description: Optional username for basic auth.
        basicPasswordSecretId:
          type: string
          description: Secret id containing the basic auth password.
          minLength: 1
        basicPasswordSecretDataId:
          type: string
          description: >-
            Optional secret data revision id for the basic auth password
            binding.
          minLength: 1
        headers:
          description: >-
            Additional header bindings resolved from tenant secrets before
            calling the MCP server.
          type: array
          items:
            $ref: '#/components/schemas/AgentPluginMcpHeaderBindingDto'
    AgentPluginMcpToolsetDto:
      type: object
      properties:
        defaultConfig:
          description: >-
            Default governance and loading policy for tools discovered from this
            MCP server.
          allOf:
            - $ref: '#/components/schemas/AgentPluginMcpToolConfigDto'
        configs:
          type: object
          description: Per-remote-tool overrides keyed by remote tool name.
    AgentPluginSkillConfigDto:
      type: object
      properties:
        format:
          type: string
          description: Skill content format. Markdown is the only supported v1 format.
          enum:
            - markdown
          default: markdown
        content:
          type: string
          description: >-
            Markdown instruction content loaded into the assistant runtime when
            the plugin is attached.
          format: markdown
          minLength: 1
        pluginIds:
          description: Registry plugin ids declared as one-level skill dependencies.
          type: array
          items:
            type: string
            format: uuid
        maxPromptChars:
          type: number
          description: Maximum number of skill content characters allowed into one prompt.
          minimum: 256
          maximum: 64000
    AgentPluginPackageConfigDto:
      type: object
      properties:
        externalId:
          type: string
          description: Stable package identifier used by this plugin definition.
          minLength: 1
          example: com.revo.notion
        format:
          type: string
          description: Package content format. Markdown is the only supported v1 format.
          enum:
            - markdown
          default: markdown
        content:
          type: string
          description: >-
            Markdown instruction content loaded into the assistant runtime when
            the package is attached.
          format: markdown
          minLength: 1
        pluginIds:
          description: Registry plugin ids declared as package dependencies.
          type: array
          items:
            type: string
            format: uuid
        metadata:
          description: >-
            Disabled marketplace-facing package metadata reserved for catalog
            publishing.
          readOnly: true
          deprecated: true
          allOf:
            - $ref: '#/components/schemas/AgentPluginPackageMetadataDto'
        maxPromptChars:
          type: number
          description: >-
            Maximum number of package content characters allowed into one
            prompt.
          minimum: 256
          maximum: 64000
      required:
        - externalId
    UpdateAgentPluginApprovalPolicyDto:
      type: object
      properties:
        mode:
          type: string
          description: >-
            How plugin execution approval is enforced before the provider call
            is made.
          enum:
            - none
            - always
            - conditional
        safetyTier:
          type: string
          description: Safety tier enforced for approval and mutation governance.
          enum:
            - read
            - write
            - destructive
            - external
            - execute
    AgentPluginComponentToolConfigDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: >-
            Whether this component-backed tool is enabled for runtime selection
            and execution.
        deferLoading:
          type: boolean
          description: >-
            Whether this component-backed tool is deferred behind discovery
            instead of eagerly exposed.
        alias:
          type: string
          description: Explicit local tool alias exposed to the runtime when set.
          minLength: 1
        title:
          type: string
          description: Operator-facing title for this component-backed tool.
        description:
          type: string
          description: Tool-specific description exposed to the assistant runtime.
        entrypoint:
          type: string
          description: >-
            Stable implementation entrypoint passed to the component in
            api.input().agentTool.entrypoint. Defaults to the tool key.
          minLength: 1
        inputs:
          type: object
          description: >-
            Static runtime inputs passed to the component under
            api.input().agentTool.inputs.
        popResult:
          type: string
          description: >-
            Named component result to return when the component executor
            supports result popping.
          minLength: 1
        inputSchema:
          type: object
          description: >-
            Strict structured input schema exposed for this tool. The component
            receives matching arguments under api.input().agentTool.args. Must
            be an object schema with additionalProperties=false and descriptions
            on every declared property.
        outputSchema:
          type: object
          description: Structured output schema expected from this tool.
        approvalPolicy:
          description: Per-tool approval contract enforced before execution.
          allOf:
            - $ref: '#/components/schemas/AgentPluginApprovalConfigDto'
        mutationIntent:
          type: string
          description: Declared mutation intent for this component-backed tool.
          enum:
            - read
            - write
            - destructive
            - external
        reversibility:
          type: string
          description: Declared reversibility for this component-backed tool.
          enum:
            - reversible
            - operator_reversible
            - irreversible
            - unknown
        targetScope:
          type: string
          description: Primary runtime scope impacted by this component-backed tool.
          enum:
            - assistant_thread
            - agent
            - tenant
            - external
        sideEffectSummary:
          type: string
          description: Concise side-effect declaration recorded for this tool.
        sideEffectCategories:
          description: >-
            Normalized side-effect categories used for governance and operator
            review.
          type: array
          items:
            type: string
    AgentPluginMcpHeaderBindingDto:
      type: object
      properties:
        name:
          type: string
          description: Header name sent to the remote MCP server.
          minLength: 1
        secretId:
          type: string
          description: Secret id containing the header value.
          minLength: 1
        secretDataId:
          type: string
          description: >-
            Optional secret data revision id when the binding should pin a
            specific secret revision.
          minLength: 1
        value:
          type: string
          description: >-
            Optional static header value used when the binding does not read
            from a secret.
        prefix:
          type: string
          description: >-
            Optional static prefix added before the resolved secret value, for
            example `Bearer `.
    AgentPluginMcpToolConfigDto:
      type: object
      properties:
        enabled:
          type: boolean
          description: Whether the tool is enabled for runtime selection and execution.
        deferLoading:
          type: boolean
          description: >-
            Whether the tool is deferred behind discovery instead of eagerly
            exposed.
        alias:
          type: string
          description: Explicit local tool alias exposed to the runtime when set.
          minLength: 1
        approvalPolicy:
          description: Per-tool approval contract enforced before execution.
          allOf:
            - $ref: '#/components/schemas/AgentPluginApprovalConfigDto'
        mutationIntent:
          type: string
          description: Declared mutation intent for this remote tool override.
          enum:
            - read
            - write
            - destructive
            - external
        reversibility:
          type: string
          description: Declared reversibility for this remote tool override.
          enum:
            - reversible
            - operator_reversible
            - irreversible
            - unknown
        targetScope:
          type: string
          description: Primary runtime scope impacted by this remote tool override.
          enum:
            - assistant_thread
            - agent
            - tenant
            - external
        sideEffectSummary:
          type: string
          description: >-
            Concise side-effect declaration recorded for this remote tool
            override.
    AgentPluginPackageMetadataDto:
      type: object
      properties:
        avatarUrl:
          type: string
          description: Package avatar or icon URL shown in package catalogs.
          format: uri
        websiteUrl:
          type: string
          description: Package website URL.
          format: uri
        documentationUrl:
          type: string
          description: Package documentation URL.
          format: uri
        termsOfServiceUrl:
          type: string
          description: Package terms of service URL.
          format: uri
        privacyPolicyUrl:
          type: string
          description: Package privacy policy URL.
          format: uri
        supportUrl:
          type: string
          description: Package support URL.
          format: uri
        publisherName:
          type: string
          description: Publisher display name.
          minLength: 1
        publisherUrl:
          type: string
          description: Publisher website URL.
          format: uri
        license:
          type: string
          description: Package license label.
          minLength: 1
        categories:
          description: Package catalog categories.
          type: array
          items:
            type: string
        tags:
          description: Package search tags.
          type: array
          items:
            type: string
    AgentPluginApprovalConfigDto:
      type: object
      properties:
        mode:
          type: string
          description: >-
            How plugin execution approval is enforced before the provider call
            is made.
          enum:
            - none
            - always
            - conditional
        safetyTier:
          type: string
          description: Safety tier enforced for approval and mutation governance.
          enum:
            - read
            - write
            - destructive
            - external
            - execute
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: JWT
      description: Bearer JWT token or API Key (sk-*).
      type: http

````