An API key minted in Command Center (Settings -> API Keys), sent as Authorization: Bearer 2501_ak_.... A Command Center session cookie is also accepted.
No control characters such as a line break. Unique, ignoring case, within the plugin's organization and against tenant-wide plugins; a tenant-wide plugin's name is unique across the tenant (409, details.reason plugin_name_conflict).
Replaces the whole connection; it cannot be removed. A plugin without a connection can take one, and an MCP endpoint and a hosted MCP server can swap, only in an update that leaves the plugin disabled. An HTTP API never becomes an MCP server, or the reverse (400): create a new plugin. Switching to a hosted MCP server takes a tenant-level administrator (403).
Moves the plugin to that organization. Returns 409 (details.reason plugin_move_blocked) while agents outside it still hold it; details.agent_ids lists them.
An HTTP API's API documents. Only the plugin list carries it.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"2501.ai","colors":{"primary":"#121212","light":"#FAFAFA","dark":"#121212"},"logo":{"light":"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/logo/light.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=eeeb37b3ca386a00dde53b3e6235adce","dark":"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/logo/dark.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=4d0ac2514d479eb43fe361193d12c495","href":"/0.7/getting-started/welcome"},"favicon":"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/favicon.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=884be98d09b5672f470de49ac6430f22","appearance":{"default":"light"},"background":{"color":{"light":"#FAFAFA","dark":"#121212"}},"navbar":{"links":[{"href":"mailto:hello@2501.ai","label":"Contact"},{"href":"https://github.com/2501-ai","label":"Github"},{"href":"https://2501.ai/","label":"Website"}]},"footer":{"socials":{"website":"https://www.2501.ai/","github":"https://github.com/2501-ai","linkedin":"https://www.linkedin.com/company/99099126"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"2501","hasAudioNarration":false,"actualSubdomain":"2501","customDomains":["docs.2501.ai"],"gitSource":{"type":"github","owner":"2501-ai","repo":"2501","deployBranch":"main","contentDirectory":"apps/public-docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae06382dc8e261a8bb5a8cf","collectionId":"1211b02f-18ff-4e53-923a-18bdb4bcf20b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae06382dc8e261a8bb5a8cf"},"entitlements":{},"buildId":"6ae88211eb73d12669c24e86","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Reference","count":966},{"language":"default","tag":"API","count":498},{"language":"default","tag":"Configure","count":303},{"language":"default","tag":"Guides","count":195},{"language":"default","tag":"Docs","count":189},{"language":"default","tag":"Benchmark","count":175},{"language":"default","tag":"Deploy","count":125},{"language":"default","tag":"Agents","count":121},{"language":"default","tag":"Integration","count":119},{"language":"default","tag":"Concepts","count":111}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"0.19/api-reference/plugins/update-a-plugin","slug":"/0.19/api-reference/plugins/update-a-plugin","pageMetadata":{"title":"Update a plugin","description":"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/plugins/{id}","href":"/0.19/api-reference/plugins/update-a-plugin","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a plugin","description":"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/plugins/{id}","href":"/0.19/api-reference/plugins/update-a-plugin","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Plugins"],"summary":"Update a plugin","description":"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).","parameters":["43263760-147f-43d1-a449-d80ddb938ef7"],"requestBody":"c6bd2a87-f4b5-45eb-abf4-be83476c498b","responses":{"200":"58c9857d-2f56-4fc0-93a8-4f0a8b753903","400":"6d5cfd9e-6931-44f1-9401-1bed95896c45","401":"553a6f98-cf23-4fc7-a74d-96a8f4b1499e","403":"073965b6-62d3-44bf-9c63-61e71a56cff5","404":"5b1d6da2-0083-4314-a938-df5af456a683","409":"cc100685-593b-4660-9939-ce16e1a8bb9a"},"method":"post","type":"path","servers":["98b6e0b7-b04a-4287-abad-d9bf8726850e"],"security":["16280220-e67b-466f-aca4-29a79978e7b1"],"path":"/api/v1/plugins/{id}","baseUrlOptions":["https://{command_center_host}"],"title":"Update a plugin","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"43263760-147f-43d1-a449-d80ddb938ef7":{"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"},"required":true,"name":"id","in":"path"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"No control characters such as a line break. Unique, ignoring case, within the plugin's organization and against tenant-wide plugins; a tenant-wide plugin's name is unique across the tenant (409, details.reason plugin_name_conflict).","uniqueKey":"name","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"description":"What the plugin is for; the agent reads it to decide when to use the plugin. Required for an HTTP API, up to 1,800 characters.","uniqueKey":"description","typeLabel":"string"},"connection":{"oneOf":[{"type":"object","description":"Replaces the whole connection; it cannot be removed. A plugin without a connection can take one, and an MCP endpoint and a hosted MCP server can swap, only in an update that leaves the plugin disabled. An HTTP API never becomes an MCP server, or the reverse (400): create a new plugin. Switching to a hosted MCP server takes a tenant-level administrator (403).","required":["transport","url","authentication"],"properties":{"transport":{"type":"string","enum":["streamable-http","http-sse"],"description":"A remote MCP server: streamable-http, or http-sse for one on the older SSE transport.","isRequired":true,"uniqueKey":"connection.oneOf.0.transport","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","description":"The MCP server address: http or https, without a user name, password or #fragment. Metadata and link-local addresses are refused.","isRequired":true,"uniqueKey":"connection.oneOf.0.url","typeLabel":"string\u003curi>"},"authentication":{"oneOf":[{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method"],"properties":{"method":{"type":"string","enum":["anonymous"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.0.method","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.0","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method"],"properties":{"method":{"type":"string","enum":["bearer"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.1.method","typeLabel":"enum\u003cstring>"},"credential_id":{"type":"string","description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required to enable the plugin. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","uniqueKey":"connection.oneOf.0.authentication.oneOf.1.credential_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.1","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method","client"],"properties":{"method":{"type":"string","enum":["oauth"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.method","typeLabel":"enum\u003cstring>"},"client":{"oneOf":[{"type":"object","description":"How the OAuth client is registered with the provider.","required":["registration","client_id"],"properties":{"registration":{"type":"string","enum":["pre_registered"],"description":"A client registered with the provider beforehand.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.registration","typeLabel":"enum\u003cstring>"},"client_id":{"type":"string","minLength":1,"description":"The client id the provider issued.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.client_id","typeLabel":"string"},"client_secret_credential_id":{"type":"string","description":"The Secret or Vault path credential holding the client secret, which makes the client confidential. Not with private_key.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.client_secret_credential_id","typeLabel":"string"},"private_key":{"type":"object","properties":{"credential_id":{"type":"string","description":"The Secret or Vault path credential holding the PKCS #8 PEM private key","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key.credential_id","typeLabel":"string"},"key_id":{"type":"string","minLength":1,"maxLength":256,"description":"The `kid` the provider knows the public key by","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key.key_id","typeLabel":"string"},"algorithm":{"type":"string","enum":["RS256","ES256"],"description":"RS256 when absent.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key.algorithm","typeLabel":"enum\u003cstring>"}},"required":["credential_id"],"additionalProperties":false,"description":"Authenticate the client with a JWT signed by its private key (`private_key_jwt`, RFC 7523) instead of a client secret. RS256 unless `algorithm` says otherwise.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key","typeLabel":"object"},"callback":{"type":"string","enum":["shared","per_provider"],"description":"Where the provider sends the browser back after consent: `per_provider`, a callback address of the plugin's authorization server alone, so a provider that does not name itself in its answer can sign in a client without a secret; absent or `shared`, the address every provider shares.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.callback","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0","typeLabel":"object"},{"type":"object","description":"How the OAuth client is registered with the provider.","required":["registration"],"properties":{"registration":{"type":"string","enum":["automatic"],"description":"A Client ID Metadata Document when the provider supports one, otherwise dynamic registration of a public client.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.1.registration","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.1","typeLabel":"object"},{"type":"object","description":"How the OAuth client is registered with the provider.","required":["registration"],"properties":{"registration":{"type":"string","enum":["dynamic"],"description":"Dynamic registration even where the provider reads metadata documents, for a provider that cannot reach Command Center.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.2.registration","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client","typeLabel":"object"},"scopes":{"type":"array","items":{"type":"string","pattern":"^[\\x21\\x23-\\x5B\\x5D-\\x7E]+$","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.scopes.items.[INDEX]","typeLabel":"string"},"description":"The scopes the account asks for when it signs in.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.scopes","typeLabel":"string[]"},"audience":{"type":"string","minLength":1,"maxLength":2048,"description":"The API the tokens are for, sent as the `audience` parameter of the authorization and token requests, as Auth0 asks for.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.audience","typeLabel":"string"},"metadata_url":{"type":"string","maxLength":2048,"format":"uri","description":"Where the authorization server publishes its metadata, for a server whose metadata does not live at its issuer, such as Azure AD B2C. Discovery reads it instead of the server the MCP server names, and the plugin trusts the issuer it names.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.metadata_url","typeLabel":"string\u003curi>"},"grant":{"type":"string","enum":["authorization_code","client_credentials"],"description":"client_credentials signs in as a service account, with the client's own credentials and nobody to consent; it needs a pre-registered client with a client secret or a private key. Absent or authorization_code, a person authorizes in a browser.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.grant","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method","header_name"],"properties":{"method":{"type":"string","enum":["api-key"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.3.method","typeLabel":"enum\u003cstring>"},"header_name":{"type":"string","pattern":"^[!#$%\u0026'*+.^_`|~0-9A-Za-z-]+$","description":"HTTP authentication header. Reserved HTTP transport and MCP session headers are not accepted.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.3.header_name","typeLabel":"string"},"credential_id":{"type":"string","description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required to enable the plugin. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","uniqueKey":"connection.oneOf.0.authentication.oneOf.3.credential_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"connection.oneOf.0","typeLabel":"object"},{"type":"object","description":"Replaces the whole connection; it cannot be removed. A plugin without a connection can take one, and an MCP endpoint and a hosted MCP server can swap, only in an update that leaves the plugin disabled. An HTTP API never becomes an MCP server, or the reverse (400): create a new plugin. Switching to a hosted MCP server takes a tenant-level administrator (403).","required":["transport","image","args","env"],"properties":{"transport":{"type":"string","enum":["stdio"],"description":"A hosted MCP server: a container image the engine starts.","isRequired":true,"uniqueKey":"connection.oneOf.1.transport","typeLabel":"enum\u003cstring>"},"image":{"type":"string","maxLength":255,"pattern":"^(?:[A-Za-z0-9-]+(?:\\.[A-Za-z0-9-]+)*(?::\\d+)?\\/)?[a-z0-9]+(?:(?:[._]|__|-+)[a-z0-9]+)*(?:\\/[a-z0-9]+(?:(?:[._]|__|-+)[a-z0-9]+)*)*(?::\\w[\\w.-]{0,127})?(?:@sha256:[a-f0-9]{64})?$","description":"An image reference such as registry.example.com/team/server:1.2.","isRequired":true,"uniqueKey":"connection.oneOf.1.image","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","maxLength":4096,"uniqueKey":"connection.oneOf.1.args.items.[INDEX]","typeLabel":"string"},"maxItems":64,"description":"The image's own arguments, after its entrypoint: at most 64, each up to 4,096 characters.","isRequired":true,"uniqueKey":"connection.oneOf.1.args","typeLabel":"string[]"},"env":{"type":"array","items":{"oneOf":[{"type":"object","required":["name","value"],"properties":{"name":{"type":"string","maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","description":"Letters, digits and underscores, not starting with a digit.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0.name","typeLabel":"string"},"value":{"type":"string","maxLength":4096,"description":"A plain value, up to 4,096 characters, readable by every role: use credential_id for a secret.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["name","credential_id"],"properties":{"name":{"type":"string","maxLength":128,"pattern":"^[A-Za-z_][A-Za-z0-9_]*$","description":"Letters, digits and underscores, not starting with a digit.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1.name","typeLabel":"string"},"credential_id":{"type":"string","description":"A Secret or Vault path credential, resolved when the server starts.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1.credential_id","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"connection.oneOf.1.env.items.[INDEX]","typeLabel":"object"},"maxItems":64,"description":"Environment variables: at most 64, each name set once.","isRequired":true,"uniqueKey":"connection.oneOf.1.env","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"connection.oneOf.1","typeLabel":"object"},{"type":"object","description":"Replaces the whole connection; it cannot be removed. A plugin without a connection can take one, and an MCP endpoint and a hosted MCP server can swap, only in an update that leaves the plugin disabled. An HTTP API never becomes an MCP server, or the reverse (400): create a new plugin. Switching to a hosted MCP server takes a tenant-level administrator (403).","required":["transport","base_url","location","authentication"],"properties":{"transport":{"type":"string","enum":["http-api"],"description":"An HTTP API the agent calls directly.","isRequired":true,"uniqueKey":"connection.oneOf.2.transport","typeLabel":"enum\u003cstring>"},"base_url":{"type":"string","format":"uri","description":"Every request goes to a relative path under it, so it cannot carry query parameters. http or https, without a user name, password or #fragment.","isRequired":true,"uniqueKey":"connection.oneOf.2.base_url","typeLabel":"string\u003curi>"},"location":{"oneOf":[{"type":"object","description":"Where requests leave from: main, the engine's own executor, or satellite, a registered cluster named by cluster_id in the plugin's organization. Fixed once the plugin is created; create a new plugin to use another location.","required":["kind"],"properties":{"kind":{"type":"string","enum":["main"],"description":"The engine's own executor.","isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.0.kind","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.0","typeLabel":"object"},{"type":"object","description":"Where requests leave from: main, the engine's own executor, or satellite, a registered cluster named by cluster_id in the plugin's organization. Fixed once the plugin is created; create a new plugin to use another location.","required":["kind","cluster_id"],"properties":{"kind":{"type":"string","enum":["satellite"],"description":"A registered cluster.","isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"cluster_id":{"type":"string","minLength":1,"description":"The cluster, in the plugin's organization.","isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.1.cluster_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.2.location","typeLabel":"object"},"authentication":{"oneOf":[{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, and api-key sends one in header_name.","required":["method"],"properties":{"method":{"type":"string","enum":["anonymous"],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.0.method","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.0","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, and api-key sends one in header_name.","required":["method","credential_id"],"properties":{"method":{"type":"string","enum":["bearer"],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.1.method","typeLabel":"enum\u003cstring>"},"credential_id":{"type":"string","minLength":1,"description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.1.credential_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.1","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, and api-key sends one in header_name.","required":["method","header_name","credential_id"],"properties":{"method":{"type":"string","enum":["api-key"],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2.method","typeLabel":"enum\u003cstring>"},"header_name":{"type":"string","pattern":"^[!#$%\u0026'*+.^_`|~0-9A-Za-z-]+$","description":"HTTP authentication header. Reserved HTTP transport and MCP session headers are not accepted.","isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2.header_name","typeLabel":"string"},"credential_id":{"type":"string","minLength":1,"description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2.credential_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"connection.oneOf.2","typeLabel":"object"},{"description":"Replaces the whole connection; it cannot be removed. A plugin without a connection can take one, and an MCP endpoint and a hosted MCP server can swap, only in an update that leaves the plugin disabled. An HTTP API never becomes an MCP server, or the reverse (400): create a new plugin. Switching to a hosted MCP server takes a tenant-level administrator (403).","uniqueKey":"connection.oneOf.3","typeLabel":"any"},{"type":"null","description":"Replaces the whole connection; it cannot be removed. A plugin without a connection can take one, and an MCP endpoint and a hosted MCP server can swap, only in an update that leaves the plugin disabled. An HTTP API never becomes an MCP server, or the reverse (400): create a new plugin. Switching to a hosted MCP server takes a tenant-level administrator (403).","uniqueKey":"connection.oneOf.4","typeLabel":"null"}],"uniqueKey":"connection","typeLabel":"object · object · object · any · null"},"enabled":{"type":"boolean","description":"Turns the plugin on or off for every agent that holds it, from their next turn; off keeps the assignments.","uniqueKey":"enabled","typeLabel":"boolean"},"org_id":{"oneOf":[{"type":"string","description":"Moves the plugin to that organization. Returns 409 (details.reason plugin_move_blocked) while agents outside it still hold it; details.agent_ids lists them.","uniqueKey":"org_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Moves the plugin to that organization. Returns 409 (details.reason plugin_move_blocked) while agents outside it still hold it; details.agent_ids lists them.","uniqueKey":"org_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"org_id","typeLabel":"string | null"},"trusted_issuer":{"type":"string","maxLength":2048,"format":"uri","description":"OAuth only: the authorization server the MCP server names, trusted from this save on. Ignored when the plugin already trusts one.","uniqueKey":"trusted_issuer","typeLabel":"string\u003curi>"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","description":"\u003cstring>","connection":{"url":"\u003cstring>","authentication":{"method":"anonymous"}},"enabled":true,"org_id":"\u003cstring>","trusted_issuer":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"58c9857d-2f56-4fc0-93a8-4f0a8b753903":{"description":"The updated plugin","content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","description":"What the plugin is for; the agent reads it to decide when to use the plugin.","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"connection":{"oneOf":[{"type":"object","description":"Null for a legacy plugin without an endpoint, or a stored connection that cannot be read, which cannot be enabled until its connection is saved again.","required":["transport","url","authentication"],"properties":{"transport":{"type":"string","enum":["streamable-http","http-sse"],"description":"A remote MCP server: streamable-http, or http-sse for one on the older SSE transport.","isRequired":true,"uniqueKey":"connection.oneOf.0.transport","typeLabel":"enum\u003cstring>"},"url":{"type":"string","description":"The MCP server address: http or https, without a user name, password or #fragment. Metadata and link-local addresses are refused.","isRequired":true,"uniqueKey":"connection.oneOf.0.url","typeLabel":"string"},"authentication":{"oneOf":[{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method"],"properties":{"method":{"type":"string","enum":["anonymous"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.0.method","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.0","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method"],"properties":{"method":{"type":"string","enum":["bearer"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.1.method","typeLabel":"enum\u003cstring>"},"credential_id":{"type":"string","description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required to enable the plugin. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","uniqueKey":"connection.oneOf.0.authentication.oneOf.1.credential_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.1","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method","client"],"properties":{"method":{"type":"string","enum":["oauth"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.method","typeLabel":"enum\u003cstring>"},"client":{"oneOf":[{"type":"object","description":"How the OAuth client is registered with the provider.","required":["registration","client_id"],"properties":{"registration":{"type":"string","enum":["pre_registered"],"description":"A client registered with the provider beforehand.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.registration","typeLabel":"enum\u003cstring>"},"client_id":{"type":"string","minLength":1,"description":"The client id the provider issued.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.client_id","typeLabel":"string"},"client_secret_credential_id":{"type":"string","description":"The Secret or Vault path credential holding the client secret, which makes the client confidential. Not with private_key.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.client_secret_credential_id","typeLabel":"string"},"private_key":{"type":"object","properties":{"credential_id":{"type":"string","description":"The Secret or Vault path credential holding the PKCS #8 PEM private key","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key.credential_id","typeLabel":"string"},"key_id":{"type":"string","minLength":1,"maxLength":256,"description":"The `kid` the provider knows the public key by","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key.key_id","typeLabel":"string"},"algorithm":{"type":"string","enum":["RS256","ES256"],"description":"RS256 when absent.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key.algorithm","typeLabel":"enum\u003cstring>"}},"required":["credential_id"],"description":"Authenticate the client with a JWT signed by its private key (`private_key_jwt`, RFC 7523) instead of a client secret. RS256 unless `algorithm` says otherwise.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.private_key","typeLabel":"object"},"callback":{"type":"string","enum":["shared","per_provider"],"description":"Where the provider sends the browser back after consent: `per_provider`, a callback address of the plugin's authorization server alone, so a provider that does not name itself in its answer can sign in a client without a secret; absent or `shared`, the address every provider shares.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.callback","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0","typeLabel":"object"},{"type":"object","description":"How the OAuth client is registered with the provider.","required":["registration"],"properties":{"registration":{"type":"string","enum":["automatic"],"description":"A Client ID Metadata Document when the provider supports one, otherwise dynamic registration of a public client.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.1.registration","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.1","typeLabel":"object"},{"type":"object","description":"How the OAuth client is registered with the provider.","required":["registration"],"properties":{"registration":{"type":"string","enum":["dynamic"],"description":"Dynamic registration even where the provider reads metadata documents, for a provider that cannot reach Command Center.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.2.registration","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client","typeLabel":"object"},"scopes":{"type":"array","items":{"type":"string","pattern":"^[\\x21\\x23-\\x5B\\x5D-\\x7E]+$","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.scopes.items.[INDEX]","typeLabel":"string"},"description":"The scopes the account asks for when it signs in.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.scopes","typeLabel":"string[]"},"audience":{"type":"string","minLength":1,"maxLength":2048,"description":"The API the tokens are for, sent as the `audience` parameter of the authorization and token requests, as Auth0 asks for.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.audience","typeLabel":"string"},"metadata_url":{"type":"string","description":"Where the authorization server publishes its metadata, for a server whose metadata does not live at its issuer, such as Azure AD B2C. Discovery reads it instead of the server the MCP server names, and the plugin trusts the issuer it names.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.metadata_url","typeLabel":"string"},"grant":{"type":"string","enum":["authorization_code","client_credentials"],"description":"client_credentials signs in as a service account, with the client's own credentials and nobody to consent; it needs a pre-registered client with a client secret or a private key. Absent or authorization_code, a person authorizes in a browser.","uniqueKey":"connection.oneOf.0.authentication.oneOf.2.grant","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, api-key sends one in header_name, and oauth signs in with an account per organization.","required":["method","header_name"],"properties":{"method":{"type":"string","enum":["api-key"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.3.method","typeLabel":"enum\u003cstring>"},"header_name":{"type":"string","description":"The header the credential is sent in.","isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.3.header_name","typeLabel":"string"},"credential_id":{"type":"string","description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required to enable the plugin. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","uniqueKey":"connection.oneOf.0.authentication.oneOf.3.credential_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication","typeLabel":"object"}},"isRequired":true,"uniqueKey":"connection.oneOf.0","typeLabel":"object"},{"type":"object","description":"Null for a legacy plugin without an endpoint, or a stored connection that cannot be read, which cannot be enabled until its connection is saved again.","required":["transport","image","args","env"],"properties":{"transport":{"type":"string","enum":["stdio"],"description":"A hosted MCP server: a container image the engine starts.","isRequired":true,"uniqueKey":"connection.oneOf.1.transport","typeLabel":"enum\u003cstring>"},"image":{"type":"string","description":"An image reference such as registry.example.com/team/server:1.2.","isRequired":true,"uniqueKey":"connection.oneOf.1.image","typeLabel":"string"},"args":{"type":"array","items":{"type":"string","uniqueKey":"connection.oneOf.1.args.items.[INDEX]","typeLabel":"string"},"maxItems":64,"description":"The image's own arguments, after its entrypoint: at most 64, each up to 4,096 characters.","isRequired":true,"uniqueKey":"connection.oneOf.1.args","typeLabel":"string[]"},"env":{"type":"array","items":{"oneOf":[{"type":"object","required":["name","value"],"properties":{"name":{"type":"string","description":"Letters, digits and underscores, not starting with a digit.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0.name","typeLabel":"string"},"value":{"type":"string","description":"A plain value, up to 4,096 characters, readable by every role: use credential_id for a secret.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0.value","typeLabel":"string"}},"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["name","credential_id"],"properties":{"name":{"type":"string","description":"Letters, digits and underscores, not starting with a digit.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1.name","typeLabel":"string"},"credential_id":{"type":"string","description":"A Secret or Vault path credential, resolved when the server starts.","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1.credential_id","typeLabel":"string"}},"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"connection.oneOf.1.env.items.[INDEX]","typeLabel":"object"},"maxItems":64,"description":"Environment variables: at most 64, each name set once.","isRequired":true,"uniqueKey":"connection.oneOf.1.env","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connection.oneOf.1","typeLabel":"object"},{"type":"object","description":"Null for a legacy plugin without an endpoint, or a stored connection that cannot be read, which cannot be enabled until its connection is saved again.","required":["transport","base_url","location","authentication"],"properties":{"transport":{"type":"string","enum":["http-api"],"description":"An HTTP API the agent calls directly.","isRequired":true,"uniqueKey":"connection.oneOf.2.transport","typeLabel":"enum\u003cstring>"},"base_url":{"type":"string","description":"Every request goes to a relative path under it, so it cannot carry query parameters. http or https, without a user name, password or #fragment.","isRequired":true,"uniqueKey":"connection.oneOf.2.base_url","typeLabel":"string"},"location":{"oneOf":[{"type":"object","description":"Where requests leave from: main, the engine's own executor, or satellite, a registered cluster named by cluster_id in the plugin's organization. Fixed once the plugin is created; create a new plugin to use another location.","required":["kind"],"properties":{"kind":{"type":"string","enum":["main"],"description":"The engine's own executor.","isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.0.kind","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.0","typeLabel":"object"},{"type":"object","description":"Where requests leave from: main, the engine's own executor, or satellite, a registered cluster named by cluster_id in the plugin's organization. Fixed once the plugin is created; create a new plugin to use another location.","required":["kind","cluster_id"],"properties":{"kind":{"type":"string","enum":["satellite"],"description":"A registered cluster.","isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"cluster_id":{"type":"string","description":"The cluster, in the plugin's organization.","isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.1.cluster_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.location.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.2.location","typeLabel":"object"},"authentication":{"oneOf":[{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, and api-key sends one in header_name.","required":["method"],"properties":{"method":{"type":"string","enum":["anonymous"],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.0.method","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.0","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, and api-key sends one in header_name.","required":["method","credential_id"],"properties":{"method":{"type":"string","enum":["bearer"],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.1.method","typeLabel":"enum\u003cstring>"},"credential_id":{"type":"string","description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.1.credential_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.1","typeLabel":"object"},{"type":"object","description":"How the plugin authenticates: anonymous sends no credential, bearer sends one as Authorization: Bearer, and api-key sends one in header_name.","required":["method","header_name","credential_id"],"properties":{"method":{"type":"string","enum":["api-key"],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2.method","typeLabel":"enum\u003cstring>"},"header_name":{"type":"string","description":"The header the credential is sent in.","isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2.header_name","typeLabel":"string"},"credential_id":{"type":"string","description":"The Secret or Vault path credential the plugin sends, of the plugin's organization or tenant-wide. Required. A tenant-wide credential takes a tenant-level administrator (403): the plugin sends it to the address it names.","isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2.credential_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"connection.oneOf.2.authentication","typeLabel":"object"}},"isRequired":true,"uniqueKey":"connection.oneOf.2","typeLabel":"object"},{"description":"Null for a legacy plugin without an endpoint, or a stored connection that cannot be read, which cannot be enabled until its connection is saved again.","isRequired":true,"uniqueKey":"connection.oneOf.3","typeLabel":"any"},{"type":"null","description":"Null for a legacy plugin without an endpoint, or a stored connection that cannot be read, which cannot be enabled until its connection is saved again.","isRequired":true,"uniqueKey":"connection.oneOf.4","typeLabel":"null"}],"isRequired":true,"uniqueKey":"connection","typeLabel":"object · object · object · any · null"},"hosted_server":{"type":"boolean","description":"Whether the plugin runs a hosted MCP server, also when its stored connection is unreadable and sent as null.","isRequired":true,"uniqueKey":"hosted_server","typeLabel":"boolean"},"id":{"type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"enabled":{"type":"boolean","description":"Off stops every agent from using the plugin and keeps the assignments.","isRequired":true,"uniqueKey":"enabled","typeLabel":"boolean"},"tenant_id":{"type":"string","isRequired":true,"uniqueKey":"tenant_id","typeLabel":"string"},"org_id":{"oneOf":[{"type":"string","description":"Null for a tenant-wide plugin.","isRequired":true,"uniqueKey":"org_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Null for a tenant-wide plugin.","isRequired":true,"uniqueKey":"org_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"org_id","typeLabel":"string | null"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"document_count":{"type":"integer","description":"An HTTP API's API documents. Only the plugin list carries it.","uniqueKey":"document_count","typeLabel":"integer"}},"required":["description","connection","hosted_server","id","name","enabled","tenant_id","org_id","created_at","updated_at"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"description":"\u003cstring>","connection":{"transport":"streamable-http","url":"\u003cstring>","authentication":{"method":"anonymous"}},"hosted_server":true,"id":"\u003cstring>","name":"\u003cstring>","enabled":true,"tenant_id":"\u003cstring>","org_id":"\u003cstring>","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","document_count":123}}},"exampleType":"generated"}},"exampleType":"generated"},"6d5cfd9e-6931-44f1-9401-1bed95896c45":{"description":"Bad request - a field is missing, malformed, or not allowed (VALIDATION_FAILED, BAD_REQUEST, INVALID_CURSOR)","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_FAILED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","example":"req_3702b7e7-...","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"field":{"type":"string","description":"Set when one input is at fault","uniqueKey":"field","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Set when several inputs are at fault","uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"uniqueKey":"details","typeLabel":"object"}},"required":["code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"VALIDATION_FAILED","message":"Validation failed","request_id":"req_3702b7e7-...","field":"\u003cstring>","errors":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"553a6f98-cf23-4fc7-a74d-96a8f4b1499e":{"description":"No credentials, or a key that is invalid, revoked, or expired (UNAUTHORIZED)","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_FAILED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","example":"req_3702b7e7-...","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"field":{"type":"string","description":"Set when one input is at fault","uniqueKey":"field","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Set when several inputs are at fault","uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"uniqueKey":"details","typeLabel":"object"}},"required":["code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"VALIDATION_FAILED","message":"Validation failed","request_id":"req_3702b7e7-...","field":"\u003cstring>","errors":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"073965b6-62d3-44bf-9c63-61e71a56cff5":{"description":"Authenticated but not allowed (FORBIDDEN, ORG_ACCESS_DENIED, STEP_UP_REFUSED, TWO_FACTOR_ENROLLMENT_REQUIRED, LICENSE_CAP_REACHED, LICENSE_EXPIRED)","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_FAILED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","example":"req_3702b7e7-...","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"field":{"type":"string","description":"Set when one input is at fault","uniqueKey":"field","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Set when several inputs are at fault","uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"uniqueKey":"details","typeLabel":"object"}},"required":["code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"VALIDATION_FAILED","message":"Validation failed","request_id":"req_3702b7e7-...","field":"\u003cstring>","errors":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"5b1d6da2-0083-4314-a938-df5af456a683":{"description":"No such row that this caller can see (NOT_FOUND)","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_FAILED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","example":"req_3702b7e7-...","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"field":{"type":"string","description":"Set when one input is at fault","uniqueKey":"field","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Set when several inputs are at fault","uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"uniqueKey":"details","typeLabel":"object"}},"required":["code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"VALIDATION_FAILED","message":"Validation failed","request_id":"req_3702b7e7-...","field":"\u003cstring>","errors":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"cc100685-593b-4660-9939-ce16e1a8bb9a":{"description":"The write conflicts with existing data (CONFLICT, DUPLICATE_KEY, FOREIGN_KEY_VIOLATION, RESOURCE_IN_USE)","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_FAILED","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","example":"Validation failed","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","example":"req_3702b7e7-...","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"field":{"type":"string","description":"Set when one input is at fault","uniqueKey":"field","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","isRequired":true,"uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"required":["field","message"],"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"Set when several inputs are at fault","uniqueKey":"errors","typeLabel":"object[]"},"details":{"type":"object","additionalProperties":{"oneOf":[{},{"type":"null","uniqueKey":"details.additionalProperties.oneOf.1","typeLabel":"null"}],"uniqueKey":"details.additionalProperties","typeLabel":"null"},"uniqueKey":"details","typeLabel":"object"}},"required":["code","message","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"VALIDATION_FAILED","message":"Validation failed","request_id":"req_3702b7e7-...","field":"\u003cstring>","errors":[{"field":"\u003cstring>","message":"\u003cstring>"}],"details":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"16280220-e67b-466f-aca4-29a79978e7b1":{"bearerAuth":{"type":"http","scheme":"bearer","description":"An API key minted in Command Center (Settings -> API Keys), sent as `Authorization: Bearer 2501_ak_...`. A Command Center session cookie is also accepted.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"98b6e0b7-b04a-4287-abad-d9bf8726850e":{"url":"https://{command_center_host}","variables":{"command_center_host":{"default":"your-command-center-host","description":"Your Command Center host"}}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key minted in Command Center (Settings -> API Keys), sent as `Authorization: Bearer 2501_ak_...`. A Command Center session cookie is also accepted.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key minted in Command Center (Settings -> API Keys), sent as `Authorization: Bearer 2501_ak_...`. A Command Center session cookie is also accepted.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"0.19/openapi.json"},"subdomain":"2501","siteName":"2501.ai","title":"Update a plugin - 2501.ai","navMaps":{"firstHrefInVersion":{"0.19":{"href":"/0.19/api-reference/plugins/update-a-plugin","matchLevel":0},"0.18":{"href":"/0.18/api-reference/plugins/update-a-plugin","matchLevel":1},"0.17":{"href":"/0.17/api-reference/plugins/update-a-plugin","matchLevel":1},"0.16":{"href":"/0.16/api/overview","matchLevel":2},"0.15":{"href":"/0.15/api/overview","matchLevel":2},"0.14":{"href":"/0.14/api/overview","matchLevel":2},"0.13":{"href":"/0.13/api/overview","matchLevel":2},"0.12":{"href":"/0.12/api/overview","matchLevel":2},"0.11":{"href":"/0.11/getting-started/welcome","matchLevel":4},"0.10":{"href":"/0.10/getting-started/welcome","matchLevel":4},"0.9":{"href":"/0.9/getting-started/welcome","matchLevel":4},"0.8":{"href":"/0.8/getting-started/welcome","matchLevel":4},"0.7":{"href":"/0.7/getting-started/welcome","matchLevel":4},"0.4":{"href":"/0.4/command-center","matchLevel":4},"0.3.0":{"href":"/0.3.0/command-center","matchLevel":4},"0.2.6":{"href":"/0.2.6/command-center","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T12:29:22.421Z","originalFileLocation":"0.19/api-reference/plugins/update-a-plugin.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).\">\u003cmeta data-mint-head name=\"application-name\" content=\"2501.ai\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a plugin - 2501.ai\">\u003cmeta data-mint-head property=\"og:description\" content=\"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"2501.ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://2501.mintlify.app/_mintlify/api/og/v2?division=Plugins\u0026amp;title=Update+a+plugin\u0026amp;description=Partial+update%3A+omitted+fields+stay+unchanged.+Updating+a+hosted+MCP+server+in+any+way+takes+a+tenant-level+administrator+%28403%29.\u0026amp;theme=f33d4ade6ddd98c4a45fdcd4\u0026amp;signature=3715409c11dc7c8a45f514b92b0298baa031e0a1e061ff3c58a9ef3502ce569a\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a plugin - 2501.ai\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://2501.mintlify.app/_mintlify/api/og/v2?division=Plugins\u0026amp;title=Update+a+plugin\u0026amp;description=Partial+update%3A+omitted+fields+stay+unchanged.+Updating+a+hosted+MCP+server+in+any+way+takes+a+tenant-level+administrator+%28403%29.\u0026amp;theme=f33d4ade6ddd98c4a45fdcd4\u0026amp;signature=3715409c11dc7c8a45f514b92b0298baa031e0a1e061ff3c58a9ef3502ce569a\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/2501/ur2ley-wQyHAsGwc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"2501.ai\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#121212\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/0.19/api-reference/plugins/update-a-plugin.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.2501.ai/#organization\",\"name\":\"2501.ai\",\"url\":\"https://docs.2501.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/2501/gMl_w8qww9Zl47hO/logo/light.png?fit=max\u0026auto=format\u0026n=gMl_w8qww9Zl47hO\u0026q=85\u0026s=eeeb37b3ca386a00dde53b3e6235adce\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.2501.ai#website\",\"name\":\"2501.ai\",\"url\":\"https://docs.2501.ai\",\"publisher\":{\"@id\":\"https://docs.2501.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin#webpage\",\"url\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin\",\"name\":\"Update a plugin\",\"description\":\"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).\",\"dateModified\":\"2026-11-02T12:29:22.421Z\",\"isPartOf\":{\"@id\":\"https://docs.2501.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API\",\"item\":\"https://docs.2501.ai/0.19/api/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Plugins\",\"item\":\"https://docs.2501.ai/0.19/api-reference/plugins/list-plugins\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update a plugin\",\"item\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin#apireference\",\"headline\":\"Update a plugin\",\"name\":\"Update a plugin\",\"description\":\"Partial update: omitted fields stay unchanged. Updating a hosted MCP server in any way takes a tenant-level administrator (403).\",\"url\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin\",\"mainEntityOfPage\":{\"@id\":\"https://docs.2501.ai/0.19/api-reference/plugins/update-a-plugin#webpage\"},\"dateModified\":\"2026-11-02T12:29:22.421Z\",\"publisher\":{\"@id\":\"https://docs.2501.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.2501.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"2501.ai\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"2501.ai","nav":{"global":null,"versions":[{"version":"0.19","tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/0.19/getting-started/welcome"}]},{"tab":"Reference","groups":[{"group":"API","pages":[{"title":"API Overview","href":"/0.19/api/overview"},{"group":"Plugins","pages":[{"title":"List plugins","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/plugins","href":"/0.19/api-reference/plugins/list-plugins"},{"title":"Create a plugin","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/plugins","href":"/0.19/api-reference/plugins/create-a-plugin"},{"title":"Search plugins","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/plugins/search","href":"/0.19/api-reference/plugins/search-plugins"},{"title":"Get a plugin","description":null,"deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/plugins/{id}","href":"/0.19/api-reference/plugins/get-a-plugin"},{"title":"Update a plugin","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/plugins/{id}","href":"/0.19/api-reference/plugins/update-a-plugin"},{"title":"Delete a plugin","description":"Deletes a plugin.\n\n- Detach it from every agent first: an assigned plugin returns 409 (details.reason plugin_in_use) and stays as it was, and details.agent_ids lists the agents. Archiving an agent removes its assignments.\n- Deleting a hosted MCP server takes a tenant-level administrator (403).","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/plugins/{id}","href":"/0.19/api-reference/plugins/delete-a-plugin"},{"title":"List HTTP API documentation files","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/plugins/{id}/documents","href":"/0.19/api-reference/plugins/list-http-api-documentation-files"},{"title":"Upload or replace HTTP API documentation","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/plugins/{id}/documents","href":"/0.19/api-reference/plugins/upload-or-replace-http-api-documentation"},{"title":"Remove an HTTP API documentation file","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/plugins/{id}/documents/{documentId}","href":"/0.19/api-reference/plugins/remove-an-http-api-documentation-file"},{"title":"Read the OAuth account status of a plugin for an organization","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/plugins/{id}/oauth","href":"/0.19/api-reference/plugins/read-the-oauth-account-status-of-a-plugin-for-an-organization"},{"title":"Forget the authorization server a plugin trusts","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/plugins/{id}/oauth/trusted-issuer","href":"/0.19/api-reference/plugins/forget-the-authorization-server-a-plugin-trusts"}]},{"group":"Specialties","pages":[{"title":"List specialties","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/specialties","href":"/0.19/api-reference/specialties/list-specialties"},{"title":"Create a specialty","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/specialties","href":"/0.19/api-reference/specialties/create-a-specialty"},{"title":"Search specialties","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/specialties/search","href":"/0.19/api-reference/specialties/search-specialties"},{"title":"Get a specialty","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/specialties/{id}","href":"/0.19/api-reference/specialties/get-a-specialty"},{"title":"Update a specialty","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/specialties/{id}","href":"/0.19/api-reference/specialties/update-a-specialty"},{"title":"Delete a specialty","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/specialties/{id}","href":"/0.19/api-reference/specialties/delete-a-specialty"},{"title":"Count what references a specialty","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/specialties/{id}/references","href":"/0.19/api-reference/specialties/count-what-references-a-specialty"}]},{"group":"Blacklists","pages":[{"title":"List blacklisted commands","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/blacklists","href":"/0.19/api-reference/blacklists/list-blacklisted-commands"},{"title":"Create a blacklisted command","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/blacklists","href":"/0.19/api-reference/blacklists/create-a-blacklisted-command"},{"title":"Search blacklisted commands","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/blacklists/search","href":"/0.19/api-reference/blacklists/search-blacklisted-commands"},{"title":"Get a blacklisted command","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/blacklists/{id}","href":"/0.19/api-reference/blacklists/get-a-blacklisted-command"},{"title":"Update a blacklisted command","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/blacklists/{id}","href":"/0.19/api-reference/blacklists/update-a-blacklisted-command"},{"title":"Delete a blacklisted command","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/blacklists/{id}","href":"/0.19/api-reference/blacklists/delete-a-blacklisted-command"}]},{"group":"Organizations","pages":[{"title":"List organizations","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/organizations","href":"/0.19/api-reference/organizations/list-organizations"},{"title":"Create an organization","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/organizations","href":"/0.19/api-reference/organizations/create-an-organization"},{"title":"Get an organization","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/organizations/{id}","href":"/0.19/api-reference/organizations/get-an-organization"},{"title":"Archive an organization","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/organizations/{id}/archive","href":"/0.19/api-reference/organizations/archive-an-organization"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/webhooks","href":"/0.19/api-reference/webhooks/list-webhooks"},{"title":"Create a webhook","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/webhooks","href":"/0.19/api-reference/webhooks/create-a-webhook"},{"title":"Delete a webhook","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/webhooks/{id}","href":"/0.19/api-reference/webhooks/delete-a-webhook"}]},{"group":"Gateways","pages":[{"title":"List gateways","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/gateways","href":"/0.19/api-reference/gateways/list-gateways"},{"title":"Create a gateway","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/gateways","href":"/0.19/api-reference/gateways/create-a-gateway"},{"title":"Search gateways","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/gateways/search","href":"/0.19/api-reference/gateways/search-gateways"},{"title":"Get a gateway","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/gateways/{id}","href":"/0.19/api-reference/gateways/get-a-gateway"},{"title":"Update a gateway","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/gateways/{id}","href":"/0.19/api-reference/gateways/update-a-gateway"},{"title":"Delete a gateway","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/gateways/{id}","href":"/0.19/api-reference/gateways/delete-a-gateway"},{"title":"Count what references a gateway","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/gateways/{id}/references","href":"/0.19/api-reference/gateways/count-what-references-a-gateway"}]},{"group":"Hosts","pages":[{"title":"List hosts","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/hosts","href":"/0.19/api-reference/hosts/list-hosts"},{"title":"Create a host","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/hosts","href":"/0.19/api-reference/hosts/create-a-host"},{"title":"Search hosts","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/hosts/search","href":"/0.19/api-reference/hosts/search-hosts"},{"title":"Bulk import hosts","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/hosts/batch","href":"/0.19/api-reference/hosts/bulk-import-hosts"},{"title":"Bulk export hosts","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/hosts/export","href":"/0.19/api-reference/hosts/bulk-export-hosts"},{"title":"Get a host","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/hosts/{id}","href":"/0.19/api-reference/hosts/get-a-host"},{"title":"Update a host","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/hosts/{id}","href":"/0.19/api-reference/hosts/update-a-host"},{"title":"Delete a host","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/hosts/{id}","href":"/0.19/api-reference/hosts/delete-a-host"},{"title":"List a host agents","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/hosts/{id}/agents","href":"/0.19/api-reference/hosts/list-a-host-agents"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents","href":"/0.19/api-reference/agents/list-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents","href":"/0.19/api-reference/agents/create-an-agent"},{"title":"Search agents","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents/search","href":"/0.19/api-reference/agents/search-agents"},{"title":"Bulk import agents","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/batch","href":"/0.19/api-reference/agents/bulk-import-agents"},{"title":"Bulk export agents","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents/export","href":"/0.19/api-reference/agents/bulk-export-agents"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents/{id}","href":"/0.19/api-reference/agents/get-an-agent"},{"title":"Update an agent","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}","href":"/0.19/api-reference/agents/update-an-agent"},{"title":"Archive an agent","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}/archive","href":"/0.19/api-reference/agents/archive-an-agent"},{"title":"Archive idle tasks","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}/archive-tasks","href":"/0.19/api-reference/agents/archive-idle-tasks"},{"title":"List an agent tasks","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents/{id}/tasks","href":"/0.19/api-reference/agents/list-an-agent-tasks"},{"title":"Test the connection","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}/test-connection","href":"/0.19/api-reference/agents/test-the-connection"},{"title":"List an agent plugins","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents/{id}/plugins","href":"/0.19/api-reference/agents/list-an-agent-plugins"},{"title":"Save a plugin assignment","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}/plugins","href":"/0.19/api-reference/agents/save-a-plugin-assignment"},{"title":"Replace an agent's plugin assignments","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}/replace-plugins","href":"/0.19/api-reference/agents/replace-an-agents-plugin-assignments"},{"title":"Read one plugin assignment","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/agents/{id}/plugins/{pluginId}","href":"/0.19/api-reference/agents/read-one-plugin-assignment"},{"title":"Detach a plugin","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/agents/{id}/plugins/{pluginId}","href":"/0.19/api-reference/agents/detach-a-plugin"},{"title":"Check an assigned plugin connection","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/agents/{id}/plugins/{pluginId}/check","href":"/0.19/api-reference/agents/check-an-assigned-plugin-connection"}]},{"group":"Credentials","pages":[{"title":"List credentials","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/credentials","href":"/0.19/api-reference/credentials/list-credentials"},{"title":"Create a credential","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/credentials","href":"/0.19/api-reference/credentials/create-a-credential"},{"title":"Search credentials","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/credentials/search","href":"/0.19/api-reference/credentials/search-credentials"},{"title":"Get a credential","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/credentials/{id}","href":"/0.19/api-reference/credentials/get-a-credential"},{"title":"Update a credential","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/credentials/{id}","href":"/0.19/api-reference/credentials/update-a-credential"},{"title":"Delete a credential","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/credentials/{id}","href":"/0.19/api-reference/credentials/delete-a-credential"},{"title":"Get credential usage","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/credentials/{id}/references","href":"/0.19/api-reference/credentials/get-credential-usage"}]},{"group":"Operational Rules","pages":[{"title":"List operational rules","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/operational-rules","href":"/0.19/api-reference/operational-rules/list-operational-rules"},{"title":"Create an operational rule","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/operational-rules","href":"/0.19/api-reference/operational-rules/create-an-operational-rule"},{"title":"Search operational rules","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/operational-rules/search","href":"/0.19/api-reference/operational-rules/search-operational-rules"},{"title":"Get an operational rule","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/operational-rules/{id}","href":"/0.19/api-reference/operational-rules/get-an-operational-rule"},{"title":"Update an operational rule","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/operational-rules/{id}","href":"/0.19/api-reference/operational-rules/update-an-operational-rule"},{"title":"Delete an operational rule","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/operational-rules/{id}","href":"/0.19/api-reference/operational-rules/delete-an-operational-rule"}]},{"group":"Scenarios","pages":[{"title":"List scenarios","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/scenarios","href":"/0.19/api-reference/scenarios/list-scenarios"},{"title":"Create a scenario","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/scenarios","href":"/0.19/api-reference/scenarios/create-a-scenario"},{"title":"Get a scenario","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/scenarios/{id}","href":"/0.19/api-reference/scenarios/get-a-scenario"},{"title":"Update a scenario","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/scenarios/{id}","href":"/0.19/api-reference/scenarios/update-a-scenario"},{"title":"Delete a scenario","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/scenarios/{id}","href":"/0.19/api-reference/scenarios/delete-a-scenario"},{"title":"Run a scenario","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/scenarios/{id}/run","href":"/0.19/api-reference/scenarios/run-a-scenario"},{"title":"List runs of a scenario","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/scenarios/{id}/runs","href":"/0.19/api-reference/scenarios/list-runs-of-a-scenario"},{"title":"Get a run","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/scenarios/{id}/runs/{reportId}","href":"/0.19/api-reference/scenarios/get-a-run"},{"title":"Stop a run","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/scenarios/{id}/runs/{reportId}/stop","href":"/0.19/api-reference/scenarios/stop-a-run"}]},{"group":"Benchmarks","pages":[{"title":"List benchmarks","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/benchmarks","href":"/0.19/api-reference/benchmarks/list-benchmarks"},{"title":"Run a benchmark","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/benchmarks","href":"/0.19/api-reference/benchmarks/run-a-benchmark"},{"title":"Get a benchmark","deprecated":null,"version":null,"openapi":"/0.19/openapi.json get /api/v1/benchmarks/{id}","href":"/0.19/api-reference/benchmarks/get-a-benchmark"},{"title":"Delete a benchmark","deprecated":null,"version":null,"openapi":"/0.19/openapi.json delete /api/v1/benchmarks/{id}","href":"/0.19/api-reference/benchmarks/delete-a-benchmark"},{"title":"Cancel a benchmark","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/benchmarks/{id}/cancel","href":"/0.19/api-reference/benchmarks/cancel-a-benchmark"}]},{"group":"Signals","pages":[{"title":"Receive a Splunk alert","deprecated":null,"version":null,"openapi":"/0.19/openapi.json post /api/v1/signals","href":"/0.19/api-reference/signals/receive-a-splunk-alert"}]}]},{"group":"Deploy","pages":[{"title":"Overview","href":"/0.19/deployment/overview"},{"title":"values.yaml","href":"/0.19/deployment/configuration"},{"title":"Docker Swarm","href":"/0.19/deployment/docker-swarm"},{"title":"Kubernetes and OpenShift","href":"/0.19/deployment/kubernetes"},{"title":"Pull the images from 2501's registry","href":"/0.19/deployment/pull-from-2501"},{"title":"LLM Providers","href":"/0.19/deployment/llm-providers"},{"title":"Users \u0026 Organizations","href":"/0.19/deployment/users-organizations"},{"title":"Move from the CLI","href":"/0.19/deployment/migrate-from-cli"},{"title":"Upgrade","href":"/0.19/deployment/upgrade"},{"title":"Troubleshooting","href":"/0.19/deployment/troubleshooting"},{"title":"Operations","href":"/0.19/deployment/operations"},{"title":"Feature Toggles","href":"/0.19/deployment/feature-toggles"},{"title":"Verify Image Signatures","href":"/0.19/deployment/verify-downloads"}]},{"group":"Configure","pages":[{"group":"Agent Behavior","pages":[{"title":"Specialties","href":"/0.19/configure/specialties"},{"title":"Operational Rules","href":"/0.19/configure/operational-rules"},{"title":"Blacklist","href":"/0.19/configure/blacklist"}]},{"title":"Clusters","href":"/0.19/configure/clusters"},{"title":"Plugins","href":"/0.19/configure/plugins"},{"title":"Central configurations","href":"/0.19/configure/centrals"},{"title":"Knowledge Base","href":"/0.19/configure/knowledge"},{"title":"Import and Export","href":"/0.19/configure/import-export"},{"group":"Access \u0026 Secrets","pages":[{"title":"Credentials","href":"/0.19/configure/credentials"},{"title":"API Keys","href":"/0.19/configure/api-keys"},{"title":"Privileged access","href":"/0.19/configure/privileged-access"}]},{"group":"Integration","pages":[{"title":"Webhooks","href":"/0.19/configure/webhooks"},{"title":"Network Discovery","href":"/0.19/configure/discovery"}]},{"group":"LLM","pages":[{"title":"Providers","href":"/0.19/configure/providers"},{"title":"Models","href":"/0.19/configure/models"}]},{"title":"Users","href":"/0.19/configure/users"},{"title":"Licensing \u0026 Usage","href":"/0.19/configure/licensing"}]}]},{"tab":"Benchmark","pages":[{"title":"Benchmark","href":"/0.19/benchmark/overview"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/0.19/configure/prompting"}]}]},{"version":"0.18","pages":[{"title":"0.18","href":"/0.18/api-reference/plugins/update-a-plugin"}]},{"version":"0.17","pages":[{"title":"0.17","href":"/0.17/api-reference/plugins/update-a-plugin"}]},{"version":"0.16","pages":[{"title":"0.16","href":"/0.16/api/overview"}]},{"version":"0.15","pages":[{"title":"0.15","href":"/0.15/api/overview"}]},{"version":"0.14","pages":[{"title":"0.14","href":"/0.14/api/overview"}]},{"version":"0.13","pages":[{"title":"0.13","href":"/0.13/api/overview"}]},{"version":"0.12","pages":[{"title":"0.12","href":"/0.12/api/overview"}]},{"version":"0.11","pages":[{"title":"0.11","href":"/0.11/getting-started/welcome"}]},{"version":"0.10","pages":[{"title":"0.10","href":"/0.10/getting-started/welcome"}]},{"version":"0.9","pages":[{"title":"0.9","href":"/0.9/getting-started/welcome"}]},{"version":"0.8","pages":[{"title":"0.8","href":"/0.8/getting-started/welcome"}]},{"version":"0.7","pages":[{"title":"0.7","href":"/0.7/getting-started/welcome"}]},{"version":"0.4","pages":[{"title":"0.4","href":"/0.4/command-center"}]},{"version":"0.3.0","pages":[{"title":"0.3.0","href":"/0.3.0/command-center"}]},{"version":"0.2.6","pages":[{"title":"0.2.6","href":"/0.2.6/command-center"}]}]},"basePath":"","title":"Update a plugin - 2501.ai","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}