Partial update. Omitted fields remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.
An API key minted in Command Center (Settings -> API Keys), sent as Authorization: Bearer 2501_ak_.... A Command Center session cookie is also accepted.
{"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":"6ae99559e644b2af9be4bb4b","collectionId":"a64b271a-a494-467a-96af-8f22a7bf9363","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae99559e644b2af9be4bb4b"},"entitlements":{},"buildId":"6aebc7448f8a3c872e041dd1","clientVersion":"0.0.4067","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":"rbac-expansion","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":"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":"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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"0.17/api-reference/plugins/update-a-plugin","slug":"/0.17/api-reference/plugins/update-a-plugin","pageMetadata":{"title":"Update a plugin","description":"Partial update. Omitted fields remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/plugins/{id}","href":"/0.17/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 remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.\"\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 remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/plugins/{id}","href":"/0.17/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 remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.","parameters":["451d67a4-ad74-4ec5-baa4-52c81a227043"],"requestBody":"cca2376c-ef9a-4fcc-9682-d4fbc67228c8","responses":{"200":"0427373d-8ef0-49a1-b439-1242787e7172","400":"0564a9ed-068e-4983-b089-226df59d8e42","401":"4512de09-6992-415b-8f81-f4811b87db64","403":"651f7a11-aad2-4fe9-872c-2da12948f09c","404":"3162b801-0a7b-4520-9616-1b476c1ee782","409":"110132bc-26d0-4404-9aad-0953f2f08df0"},"method":"post","type":"path","servers":["31d1a0a9-094d-4cde-99bb-c97eac1ddb12"],"security":["1ca2abe6-39cf-498c-9372-73a9cdf0e486"],"path":"/api/v1/plugins/{id}","baseUrlOptions":["https://{command_center_host}"],"title":"Update a plugin","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"451d67a4-ad74-4ec5-baa4-52c81a227043":{"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,"uniqueKey":"name","typeLabel":"string"},"description":{"type":"string","maxLength":2000,"uniqueKey":"description","typeLabel":"string"},"connection":{"oneOf":[{"type":"object","required":["transport","url","authentication"],"properties":{"transport":{"type":"string","enum":["streamable-http","http-sse"],"isRequired":true,"uniqueKey":"connection.oneOf.0.transport","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"connection.oneOf.0.url","typeLabel":"string\u003curi>"},"authentication":{"oneOf":[{"type":"object","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","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","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","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","required":["registration","client_id"],"properties":{"registration":{"type":"string","enum":["pre_registered"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.registration","typeLabel":"enum\u003cstring>"},"client_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.client_id","typeLabel":"string"},"client_secret_credential_id":{"type":"string","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"],"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","required":["registration"],"properties":{"registration":{"type":"string","enum":["automatic"],"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","required":["registration"],"properties":{"registration":{"type":"string","enum":["dynamic"],"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"},"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"],"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","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","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","required":["transport","image","args","env"],"properties":{"transport":{"type":"string","enum":["stdio"],"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})?$","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,"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_]*$","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0.name","typeLabel":"string"},"value":{"type":"string","maxLength":4096,"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_]*$","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1.name","typeLabel":"string"},"credential_id":{"type":"string","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,"isRequired":true,"uniqueKey":"connection.oneOf.1.env","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"connection.oneOf.1","typeLabel":"object"},{},{"type":"null","uniqueKey":"connection.oneOf.3","typeLabel":"null"}],"uniqueKey":"connection","typeLabel":"object · object · null"},"enabled":{"type":"boolean","uniqueKey":"enabled","typeLabel":"boolean"},"org_id":{"oneOf":[{"type":"string","uniqueKey":"org_id.oneOf.0","typeLabel":"string"},{"type":"null","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":{"0427373d-8ef0-49a1-b439-1242787e7172":{"description":"The updated plugin","content":{"application/json":{"schema":{"type":"object","properties":{"description":{"type":"string","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"connection":{"oneOf":[{"type":"object","required":["transport","url","authentication"],"properties":{"transport":{"type":"string","enum":["streamable-http","http-sse"],"isRequired":true,"uniqueKey":"connection.oneOf.0.transport","typeLabel":"enum\u003cstring>"},"url":{"type":"string","isRequired":true,"uniqueKey":"connection.oneOf.0.url","typeLabel":"string"},"authentication":{"oneOf":[{"type":"object","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","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","uniqueKey":"connection.oneOf.0.authentication.oneOf.1.credential_id","typeLabel":"string"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.1","typeLabel":"object"},{"type":"object","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","required":["registration","client_id"],"properties":{"registration":{"type":"string","enum":["pre_registered"],"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.registration","typeLabel":"enum\u003cstring>"},"client_id":{"type":"string","minLength":1,"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.client.oneOf.0.client_id","typeLabel":"string"},"client_secret_credential_id":{"type":"string","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"],"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","required":["registration"],"properties":{"registration":{"type":"string","enum":["automatic"],"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","required":["registration"],"properties":{"registration":{"type":"string","enum":["dynamic"],"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"},"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"],"uniqueKey":"connection.oneOf.0.authentication.oneOf.2.grant","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"connection.oneOf.0.authentication.oneOf.2","typeLabel":"object"},{"type":"object","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","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","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","required":["transport","image","args","env"],"properties":{"transport":{"type":"string","enum":["stdio"],"isRequired":true,"uniqueKey":"connection.oneOf.1.transport","typeLabel":"enum\u003cstring>"},"image":{"type":"string","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,"isRequired":true,"uniqueKey":"connection.oneOf.1.args","typeLabel":"string[]"},"env":{"type":"array","items":{"oneOf":[{"type":"object","required":["name","value"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.0.name","typeLabel":"string"},"value":{"type":"string","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","isRequired":true,"uniqueKey":"connection.oneOf.1.env.items.[INDEX].oneOf.1.name","typeLabel":"string"},"credential_id":{"type":"string","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,"isRequired":true,"uniqueKey":"connection.oneOf.1.env","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"connection.oneOf.1","typeLabel":"object"},{"isRequired":true},{"type":"null","isRequired":true,"uniqueKey":"connection.oneOf.3","typeLabel":"null"}],"isRequired":true,"uniqueKey":"connection","typeLabel":"object · object · 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","isRequired":true,"uniqueKey":"enabled","typeLabel":"boolean"},"tenant_id":{"type":"string","isRequired":true,"uniqueKey":"tenant_id","typeLabel":"string"},"org_id":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"org_id.oneOf.0","typeLabel":"string"},{"type":"null","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>"}},"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"}}},"exampleType":"generated"}},"exampleType":"generated"},"0564a9ed-068e-4983-b089-226df59d8e42":{"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"},"4512de09-6992-415b-8f81-f4811b87db64":{"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"},"651f7a11-aad2-4fe9-872c-2da12948f09c":{"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"},"3162b801-0a7b-4520-9616-1b476c1ee782":{"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"},"110132bc-26d0-4404-9aad-0953f2f08df0":{"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":{"1ca2abe6-39cf-498c-9372-73a9cdf0e486":{"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":{"31d1a0a9-094d-4cde-99bb-c97eac1ddb12":{"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.17/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":1},"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":0},"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-10-15T12:43:12.715Z","originalFileLocation":"0.17/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 remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.\">\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 remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"2501.ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.2501.ai/0.17/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.+Omitted+fields+remain+unchanged.+The+name+can+be+changed.+A+plugin+of+an+organization+cannot+share+its+name+with+another+plugin+of+that+organiza\u0026amp;theme=f33d4ade6ddd98c4a45fdcd4\u0026amp;signature=84bb279ce906900bd2dcd365e5de70f5cc1e41ead00ed4efdeb67b61ff125218\">\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 remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.\">\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.+Omitted+fields+remain+unchanged.+The+name+can+be+changed.+A+plugin+of+an+organization+cannot+share+its+name+with+another+plugin+of+that+organiza\u0026amp;theme=f33d4ade6ddd98c4a45fdcd4\u0026amp;signature=84bb279ce906900bd2dcd365e5de70f5cc1e41ead00ed4efdeb67b61ff125218\">\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.17/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.17/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.17/api-reference/plugins/update-a-plugin#webpage\",\"url\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin\",\"name\":\"Update a plugin\",\"description\":\"Partial update. Omitted fields remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.\",\"dateModified\":\"2026-10-15T12:43:12.715Z\",\"isPartOf\":{\"@id\":\"https://docs.2501.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API\",\"item\":\"https://docs.2501.ai/0.17/api/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Plugins\",\"item\":\"https://docs.2501.ai/0.17/api-reference/plugins/list-plugins\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update a plugin\",\"item\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin#apireference\",\"headline\":\"Update a plugin\",\"name\":\"Update a plugin\",\"description\":\"Partial update. Omitted fields remain unchanged. The name can be changed. A plugin of an organization cannot share its name with another plugin of that organization or with a tenant-wide plugin, and a tenant-wide plugin cannot share it with any plugin of the tenant, ignoring case (409 otherwise). A connection replaces the complete connection object and cannot be removed. A plugin without a connection can take one, and a plugin can switch between an MCP endpoint and a hosted MCP server, only in an update that leaves it disabled. Updating a hosted MCP server plugin in any way, or switching a plugin to one, takes a tenant-level administrator (403 otherwise). A bearer or API key connection names the Secret or Vault path credential it sends in authentication.credential_id, of the plugin organization or tenant-wide; it may be left out while the plugin is disabled, and enabling it without one returns 400. Moving the plugin to an organization returns 409 (details.reason plugin_move_blocked) while agents or specialties outside it still hold it; details.agent_ids or details.specialty_ids lists them.\",\"url\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin\",\"mainEntityOfPage\":{\"@id\":\"https://docs.2501.ai/0.17/api-reference/plugins/update-a-plugin#webpage\"},\"dateModified\":\"2026-10-15T12:43:12.715Z\",\"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","pages":[{"title":"0.19","href":"/0.19/api-reference/plugins/update-a-plugin"}]},{"version":"0.18","pages":[{"title":"0.18","href":"/0.18/api-reference/plugins/update-a-plugin"}]},{"version":"0.17","tabs":[{"tab":"Docs","pages":[{"title":"Docs","href":"/0.17/getting-started/welcome"}]},{"tab":"Reference","groups":[{"group":"API","pages":[{"title":"API Overview","href":"/0.17/api/overview"},{"group":"Plugins","pages":[{"title":"List plugins","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/plugins","href":"/0.17/api-reference/plugins/list-plugins"},{"title":"Create a plugin","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/plugins","href":"/0.17/api-reference/plugins/create-a-plugin"},{"title":"Search plugins","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/plugins/search","href":"/0.17/api-reference/plugins/search-plugins"},{"title":"Get a plugin","description":null,"deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/plugins/{id}","href":"/0.17/api-reference/plugins/get-a-plugin"},{"title":"Update a plugin","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/plugins/{id}","href":"/0.17/api-reference/plugins/update-a-plugin"},{"title":"Delete a plugin","description":"Remove all agent and specialty assignments first. An assigned plugin returns 409 and remains unchanged; details.agent_ids lists the assigned agents and details.specialty_ids the specialties. Archiving an agent removes its plugin assignments. Deleting a hosted MCP server takes a tenant-level administrator (403 otherwise).","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/plugins/{id}","href":"/0.17/api-reference/plugins/delete-a-plugin"},{"title":"List the specialties that inherit a plugin","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/plugins/{id}/specialties","href":"/0.17/api-reference/plugins/list-the-specialties-that-inherit-a-plugin"},{"title":"Assign a plugin to a specialty","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/plugins/{id}/specialties/{specialtyId}","href":"/0.17/api-reference/plugins/assign-a-plugin-to-a-specialty"},{"title":"Stop a specialty inheriting a plugin","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/plugins/{id}/specialties/{specialtyId}","href":"/0.17/api-reference/plugins/stop-a-specialty-inheriting-a-plugin"},{"title":"List the agents that have a plugin","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/plugins/{id}/agents","href":"/0.17/api-reference/plugins/list-the-agents-that-have-a-plugin"},{"title":"Assign a plugin to an agent","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/plugins/{id}/agents/{agentId}","href":"/0.17/api-reference/plugins/assign-a-plugin-to-an-agent"},{"title":"Remove a plugin from an agent","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/plugins/{id}/agents/{agentId}","href":"/0.17/api-reference/plugins/remove-a-plugin-from-an-agent"},{"title":"Read the OAuth account status of a plugin for an organization","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/plugins/{id}/oauth","href":"/0.17/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.17/openapi.json delete /api/v1/plugins/{id}/oauth/trusted-issuer","href":"/0.17/api-reference/plugins/forget-the-authorization-server-a-plugin-trusts"}]},{"group":"Specialties","pages":[{"title":"List specialties","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/specialties","href":"/0.17/api-reference/specialties/list-specialties"},{"title":"Create a specialty","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/specialties","href":"/0.17/api-reference/specialties/create-a-specialty"},{"title":"Search specialties","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/specialties/search","href":"/0.17/api-reference/specialties/search-specialties"},{"title":"Get a specialty","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/specialties/{id}","href":"/0.17/api-reference/specialties/get-a-specialty"},{"title":"Update a specialty","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/specialties/{id}","href":"/0.17/api-reference/specialties/update-a-specialty"},{"title":"Delete a specialty","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/specialties/{id}","href":"/0.17/api-reference/specialties/delete-a-specialty"},{"title":"Count what references a specialty","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/specialties/{id}/references","href":"/0.17/api-reference/specialties/count-what-references-a-specialty"}]},{"group":"Blacklists","pages":[{"title":"List blacklisted commands","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/blacklists","href":"/0.17/api-reference/blacklists/list-blacklisted-commands"},{"title":"Create a blacklisted command","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/blacklists","href":"/0.17/api-reference/blacklists/create-a-blacklisted-command"},{"title":"Search blacklisted commands","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/blacklists/search","href":"/0.17/api-reference/blacklists/search-blacklisted-commands"},{"title":"Get a blacklisted command","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/blacklists/{id}","href":"/0.17/api-reference/blacklists/get-a-blacklisted-command"},{"title":"Update a blacklisted command","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/blacklists/{id}","href":"/0.17/api-reference/blacklists/update-a-blacklisted-command"},{"title":"Delete a blacklisted command","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/blacklists/{id}","href":"/0.17/api-reference/blacklists/delete-a-blacklisted-command"}]},{"group":"Gateways","pages":[{"title":"List gateways","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/gateways","href":"/0.17/api-reference/gateways/list-gateways"},{"title":"Create a gateway","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/gateways","href":"/0.17/api-reference/gateways/create-a-gateway"},{"title":"Search gateways","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/gateways/search","href":"/0.17/api-reference/gateways/search-gateways"},{"title":"Get a gateway","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/gateways/{id}","href":"/0.17/api-reference/gateways/get-a-gateway"},{"title":"Update a gateway","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/gateways/{id}","href":"/0.17/api-reference/gateways/update-a-gateway"},{"title":"Delete a gateway","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/gateways/{id}","href":"/0.17/api-reference/gateways/delete-a-gateway"},{"title":"Count what references a gateway","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/gateways/{id}/references","href":"/0.17/api-reference/gateways/count-what-references-a-gateway"}]},{"group":"Hosts","pages":[{"title":"List hosts","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/hosts","href":"/0.17/api-reference/hosts/list-hosts"},{"title":"Create a host","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/hosts","href":"/0.17/api-reference/hosts/create-a-host"},{"title":"Search hosts","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/hosts/search","href":"/0.17/api-reference/hosts/search-hosts"},{"title":"Bulk import hosts","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/hosts/batch","href":"/0.17/api-reference/hosts/bulk-import-hosts"},{"title":"Bulk export hosts","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/hosts/export","href":"/0.17/api-reference/hosts/bulk-export-hosts"},{"title":"Get a host","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/hosts/{id}","href":"/0.17/api-reference/hosts/get-a-host"},{"title":"Update a host","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/hosts/{id}","href":"/0.17/api-reference/hosts/update-a-host"},{"title":"Delete a host","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/hosts/{id}","href":"/0.17/api-reference/hosts/delete-a-host"},{"title":"List a host agents","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/hosts/{id}/agents","href":"/0.17/api-reference/hosts/list-a-host-agents"}]},{"group":"Agents","pages":[{"title":"List agents","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents","href":"/0.17/api-reference/agents/list-agents"},{"title":"Create an agent","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents","href":"/0.17/api-reference/agents/create-an-agent"},{"title":"Search agents","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents/search","href":"/0.17/api-reference/agents/search-agents"},{"title":"Bulk import agents","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/batch","href":"/0.17/api-reference/agents/bulk-import-agents"},{"title":"Bulk export agents","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents/export","href":"/0.17/api-reference/agents/bulk-export-agents"},{"title":"Get an agent","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents/{id}","href":"/0.17/api-reference/agents/get-an-agent"},{"title":"Update an agent","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}","href":"/0.17/api-reference/agents/update-an-agent"},{"title":"Archive an agent","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}/archive","href":"/0.17/api-reference/agents/archive-an-agent"},{"title":"Archive idle tasks","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}/archive-tasks","href":"/0.17/api-reference/agents/archive-idle-tasks"},{"title":"List an agent tasks","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents/{id}/tasks","href":"/0.17/api-reference/agents/list-an-agent-tasks"},{"title":"Test the connection","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}/test-connection","href":"/0.17/api-reference/agents/test-the-connection"},{"title":"List an agent plugins","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents/{id}/plugins","href":"/0.17/api-reference/agents/list-an-agent-plugins"},{"title":"Save a plugin assignment","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}/plugins","href":"/0.17/api-reference/agents/save-a-plugin-assignment"},{"title":"Replace an agent's plugin assignments","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}/replace-plugins","href":"/0.17/api-reference/agents/replace-an-agents-plugin-assignments"},{"title":"Read one plugin assignment","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/agents/{id}/plugins/{pluginId}","href":"/0.17/api-reference/agents/read-one-plugin-assignment"},{"title":"Detach a plugin","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/agents/{id}/plugins/{pluginId}","href":"/0.17/api-reference/agents/detach-a-plugin"},{"title":"Check an assigned MCP connection","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/agents/{id}/plugins/{pluginId}/check","href":"/0.17/api-reference/agents/check-an-assigned-mcp-connection"}]},{"group":"Credentials","pages":[{"title":"List credentials","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/credentials","href":"/0.17/api-reference/credentials/list-credentials"},{"title":"Create a credential","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/credentials","href":"/0.17/api-reference/credentials/create-a-credential"},{"title":"Search credentials","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/credentials/search","href":"/0.17/api-reference/credentials/search-credentials"},{"title":"Get a credential","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/credentials/{id}","href":"/0.17/api-reference/credentials/get-a-credential"},{"title":"Update a credential","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/credentials/{id}","href":"/0.17/api-reference/credentials/update-a-credential"},{"title":"Delete a credential","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/credentials/{id}","href":"/0.17/api-reference/credentials/delete-a-credential"},{"title":"Get credential usage","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/credentials/{id}/references","href":"/0.17/api-reference/credentials/get-credential-usage"}]},{"group":"Operational Rules","pages":[{"title":"List operational rules","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/operational-rules","href":"/0.17/api-reference/operational-rules/list-operational-rules"},{"title":"Create an operational rule","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/operational-rules","href":"/0.17/api-reference/operational-rules/create-an-operational-rule"},{"title":"Search operational rules","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/operational-rules/search","href":"/0.17/api-reference/operational-rules/search-operational-rules"},{"title":"Get an operational rule","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/operational-rules/{id}","href":"/0.17/api-reference/operational-rules/get-an-operational-rule"},{"title":"Update an operational rule","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/operational-rules/{id}","href":"/0.17/api-reference/operational-rules/update-an-operational-rule"},{"title":"Delete an operational rule","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/operational-rules/{id}","href":"/0.17/api-reference/operational-rules/delete-an-operational-rule"}]},{"group":"Scenarios","pages":[{"title":"List scenarios","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/scenarios","href":"/0.17/api-reference/scenarios/list-scenarios"},{"title":"Create a scenario","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/scenarios","href":"/0.17/api-reference/scenarios/create-a-scenario"},{"title":"Get a scenario","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/scenarios/{id}","href":"/0.17/api-reference/scenarios/get-a-scenario"},{"title":"Update a scenario","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/scenarios/{id}","href":"/0.17/api-reference/scenarios/update-a-scenario"},{"title":"Delete a scenario","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/scenarios/{id}","href":"/0.17/api-reference/scenarios/delete-a-scenario"},{"title":"Run a scenario","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/scenarios/{id}/run","href":"/0.17/api-reference/scenarios/run-a-scenario"},{"title":"List runs of a scenario","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/scenarios/{id}/runs","href":"/0.17/api-reference/scenarios/list-runs-of-a-scenario"},{"title":"Get a run","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/scenarios/{id}/runs/{reportId}","href":"/0.17/api-reference/scenarios/get-a-run"},{"title":"Stop a run","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/scenarios/{id}/runs/{reportId}/stop","href":"/0.17/api-reference/scenarios/stop-a-run"}]},{"group":"Benchmarks","pages":[{"title":"List benchmarks","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/benchmarks","href":"/0.17/api-reference/benchmarks/list-benchmarks"},{"title":"Run a benchmark","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/benchmarks","href":"/0.17/api-reference/benchmarks/run-a-benchmark"},{"title":"Get a benchmark","deprecated":null,"version":null,"openapi":"/0.17/openapi.json get /api/v1/benchmarks/{id}","href":"/0.17/api-reference/benchmarks/get-a-benchmark"},{"title":"Delete a benchmark","deprecated":null,"version":null,"openapi":"/0.17/openapi.json delete /api/v1/benchmarks/{id}","href":"/0.17/api-reference/benchmarks/delete-a-benchmark"},{"title":"Cancel a benchmark","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/benchmarks/{id}/cancel","href":"/0.17/api-reference/benchmarks/cancel-a-benchmark"}]},{"group":"Signals","pages":[{"title":"Receive a Splunk alert","deprecated":null,"version":null,"openapi":"/0.17/openapi.json post /api/v1/signals","href":"/0.17/api-reference/signals/receive-a-splunk-alert"}]}]},{"group":"CLI","pages":[{"title":"2501 CLI","href":"/0.17/cli/overview"},{"title":"login \u0026 status","href":"/0.17/cli/login-status"},{"title":"resources","href":"/0.17/cli/resources"},{"title":"infra","href":"/0.17/cli/infra"},{"title":"chat","href":"/0.17/cli/chat"}]},{"group":"Deploy","pages":[{"title":"Overview","href":"/0.17/deployment/overview"},{"title":"Init Command","href":"/0.17/deployment/init-command"},{"title":"Configuration","href":"/0.17/deployment/configuration"},{"title":"Docker Swarm","href":"/0.17/deployment/docker-swarm"},{"title":"Kubernetes","href":"/0.17/deployment/kubernetes"},{"title":"LLM Providers","href":"/0.17/deployment/llm-providers"},{"title":"Users \u0026 Organizations","href":"/0.17/deployment/users-organizations"},{"title":"Troubleshooting","href":"/0.17/deployment/troubleshooting"},{"title":"Feature Toggles","href":"/0.17/deployment/feature-toggles"},{"title":"Verify Image Signatures","href":"/0.17/deployment/verify-downloads"}]},{"group":"Configure","pages":[{"group":"Agent Behavior","pages":[{"title":"Specialties","href":"/0.17/configure/specialties"},{"title":"Operational Rules","href":"/0.17/configure/operational-rules"},{"title":"Blacklist","href":"/0.17/configure/blacklist"}]},{"title":"Clusters","href":"/0.17/configure/clusters"},{"title":"Knowledge Base","href":"/0.17/configure/knowledge"},{"title":"Import and Export","href":"/0.17/configure/import-export"},{"group":"Access \u0026 Secrets","pages":[{"title":"Credentials","href":"/0.17/configure/credentials"},{"title":"API Keys","href":"/0.17/configure/api-keys"},{"title":"Plugins","href":"/0.17/configure/plugins"}]},{"group":"Integration","pages":[{"title":"Webhooks","href":"/0.17/configure/webhooks"},{"title":"Configuration as Code","href":"/0.17/configure/configuration-as-code"},{"group":"Resource Reference","pages":[{"title":"Agent","href":"/0.17/configure/resources/agents"},{"title":"Host","href":"/0.17/configure/resources/hosts"},{"title":"Specialty","href":"/0.17/configure/resources/specialties"},{"title":"Operational Rule","href":"/0.17/configure/resources/operational-rules"},{"title":"Credential","href":"/0.17/configure/resources/credentials"},{"title":"Gateway","href":"/0.17/configure/resources/gateways"},{"title":"Blacklist","href":"/0.17/configure/resources/blacklist"}]},{"title":"Network Discovery","href":"/0.17/configure/discovery"}]},{"group":"LLM","pages":[{"title":"Providers","href":"/0.17/configure/providers"},{"title":"Models","href":"/0.17/configure/models"}]},{"title":"Users","href":"/0.17/configure/users"},{"title":"Licensing \u0026 Usage","href":"/0.17/configure/licensing"}]}]},{"tab":"Benchmark","pages":[{"title":"Benchmark","href":"/0.17/benchmark/overview"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/0.17/configure/prompting"}]}]},{"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_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","Page-BAvA99GL.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","clsx-ClVdStUn.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CIQkMg3R.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-ImrFS4Fy.js"]}