Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless server/discover first, falling back to the initialize handshake for session-based servers), and returns the server’s tools/list result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config mcp_servers.<key>.auth shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an auth hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an oauth hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server’s authorization requirements and responds 422 with an auth hint — oauth when the server advertises an OAuth authorization server, bearer when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no auth hint.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"BMA Developer Docs","description":"BeeOS Managed Agents (BMA): a managed agent platform with a Claude Managed Agents–compatible API, a native REST API, and the Executor Protocol for bringing your own hands and brains.","colors":{"primary":"#F97316","light":"#FB923C","dark":"#C2410C"},"logo":{"light":"/logo/light.svg","dark":"/logo/dark.svg","href":"/"},"favicon":"/favicon.svg","api":{"playground":{"display":"simple"},"examples":{"languages":["curl","python","javascript","go"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://github.com/beeos-ai/bma-sdk","label":"bma-sdk"},{"href":"https://github.com/beeos-ai/bma-executor-sdk","label":"bma-executor-sdk"}]},"footer":{"socials":{"github":"https://github.com/beeos-ai"}},"fonts":{"heading":{"family":"Inter","weight":600},"body":{"family":"Inter","weight":400}},"integrations":{"telemetry":{"enabled":false}},"navigation":{"languages":[{"language":"en","default":true,"banner":{"content":"BMA is in **early access**. Pages mark each capability as Available, Preview, or Roadmap.","dismissible":true},"href":""},{"language":"zh","banner":{"content":"BMA 处于**抢先体验**阶段。各页面会把每项能力标注为 Available、Preview 或 Roadmap。","dismissible":true},"href":"zh"}]}},"deployment":{"deploymentMetadataValue":{"hasAudioNarration":false,"customDomains":[],"gitSource":{"type":"github","owner":"local","repo":"local","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":"local","isBase":true},"buildId":"local","clientVersion":"0.0.4064"},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false,"isLoggedInCli":false,"mintExport":{}},"customCss":[],"page":{"pagePath":"api-reference/native/configs-and-profiles/list-an-mcp-servers-tools","slug":"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools","pageMetadata":{"openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/mcp-servers/tools","description":"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless `server/discover` first, falling back to the `initialize` handshake for session-based servers), and returns the server's `tools/list` result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config `mcp_servers.\u003ckey>.auth` shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an `auth` hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an `oauth` hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server's authorization requirements and responds 422 with an `auth` hint — `oauth` when the server advertises an OAuth authorization server, `bearer` when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no `auth` hint.","href":"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools","title":"List an MCP server's tools"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless \", _jsx(_components.code, {\n children: \"server/discover\"\n }), \" first, falling back to the \", _jsx(_components.code, {\n children: \"initialize\"\n }), \" handshake for session-based servers), and returns the server’s \", _jsx(_components.code, {\n children: \"tools/list\"\n }), \" result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config \", _jsx(_components.code, {\n children: \"mcp_servers.\u003ckey>.auth\"\n }), \" shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an \", _jsx(_components.code, {\n children: \"auth\"\n }), \" hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an \", _jsx(_components.code, {\n children: \"oauth\"\n }), \" hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server’s authorization requirements and responds 422 with an \", _jsx(_components.code, {\n children: \"auth\"\n }), \" hint — \", _jsx(_components.code, {\n children: \"oauth\"\n }), \" when the server advertises an OAuth authorization server, \", _jsx(_components.code, {\n children: \"bearer\"\n }), \" when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no \", _jsx(_components.code, {\n children: \"auth\"\n }), \" hint.\"]\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":{"openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/mcp-servers/tools","description":"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless `server/discover` first, falling back to the `initialize` handshake for session-based servers), and returns the server's `tools/list` result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config `mcp_servers.\u003ckey>.auth` shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an `auth` hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an `oauth` hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server's authorization requirements and responds 422 with an `auth` hint — `oauth` when the server advertises an OAuth authorization server, `bearer` when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no `auth` hint.","href":"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools","title":"List an MCP server's tools"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"listMCPServerTools","tags":["Configs and Profiles"],"summary":"List an MCP server's tools","description":"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless `server/discover` first, falling back to the `initialize` handshake for session-based servers), and returns the server's `tools/list` result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config `mcp_servers.\u003ckey>.auth` shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an `auth` hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an `oauth` hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server's authorization requirements and responds 422 with an `auth` hint — `oauth` when the server advertises an OAuth authorization server, `bearer` when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no `auth` hint.","security":["3ceb04b5-67c5-4a83-a5b6-79316e9891ed","88d9c70c-ea2b-4f48-8a48-ec0539e6f249"],"requestBody":"a51f2dbe-a4da-4c44-a4b7-32068bc7dc75","responses":{"200":"e635a47b-0a97-4a47-ad4e-0eeb526329ec","400":"f75c8c16-009c-401e-b086-916a0b98f24a","401":"29f1ea8e-9c32-4eaa-8298-1ddd8df327de","403":"398789cd-0c4b-457c-9076-5043d25e5d30","404":"ffd0c14c-6a43-465c-b489-844102728ca6","409":"24e17943-5d65-4a05-9860-f3a5e9c53328","422":"fe38c7c8-f2e9-4c36-b54a-ca5e4e0df989","424":"f362f19e-1abb-4cde-ac03-3cd5e8128ee2","500":"89e60439-e517-47d0-830a-7e5ea91d3ffe","503":"01b8d5d1-4290-4cce-86c6-fff41b9f3a0a","4XX":"a4968a09-79b2-4c03-bd91-1fc051ce7363","5XX":"33c8ceb3-8df4-4f9c-9696-134824c287a5"},"method":"post","type":"path","servers":["0bf5897a-c269-4b65-9499-ed03df44e358","949c42bc-5dd5-4a3b-abdf-7e9c2463228e"],"path":"/orgs/{orgID}/projects/{projectID}/mcp-servers/tools","baseUrlOptions":["https://api.staging.bma.beeos.ai/api/v1","/api/v1"],"title":"List an MCP server's tools","codeSamples":[],"requestExampleLanguages":["bash","python","javascript","go"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"8bdbbb64-963d-483c-ab0a-6952c7842634":{"name":"orgID","in":"path","description":"Organization ID (org_...).","required":true,"schema":{"type":"string","pattern":"^org_[a-z2-7]{26}$","isRequired":true,"description":"Organization ID (org_...).","uniqueKey":"","typeLabel":"string"}},"9511df61-7495-45e7-8d78-3bdd3760edc1":{"name":"projectID","in":"path","description":"Project ID (proj_...).","required":true,"schema":{"description":"Project ID (proj_...).","type":"string","pattern":"^proj_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["url","auth"],"properties":{"url":{"type":"string","format":"uri","minLength":1,"maxLength":2048,"description":"Streamable HTTP MCP endpoint. Must use HTTPS, except that HTTP is allowed for loopback hosts during local development.","isRequired":true,"uniqueKey":"url","typeLabel":"string\u003curi>"},"auth":{"oneOf":[{"type":"object","description":"How BMA authenticates to the MCP server. Secret references must be available to the project, either owned by it or granted to it.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"auth.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"auth.oneOf.0","typeLabel":"object"},{"type":"object","description":"How BMA authenticates to the MCP server. Secret references must be available to the project, either owned by it or granted to it.","required":["type","secret_id"],"properties":{"type":{"type":"string","enum":["bearer"],"isRequired":true,"uniqueKey":"auth.oneOf.1.type","typeLabel":"enum\u003cstring>"},"secret_id":{"description":"A generic secret whose value is sent as the bearer token.","type":"string","pattern":"^sec_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"auth.oneOf.1.secret_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"auth.oneOf.1","typeLabel":"object"},{"type":"object","description":"How BMA authenticates to the MCP server. Secret references must be available to the project, either owned by it or granted to it.","required":["type","secret_id"],"properties":{"type":{"type":"string","enum":["oauth"],"isRequired":true,"uniqueKey":"auth.oneOf.2.type","typeLabel":"enum\u003cstring>"},"secret_id":{"description":"An oauth_token_set secret. An expired access token is refreshed and the refreshed token set is stored as a new secret version.","type":"string","pattern":"^sec_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"auth.oneOf.2.secret_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"auth.oneOf.2","typeLabel":"object"},{"type":"object","description":"How BMA authenticates to the MCP server. Secret references must be available to the project, either owned by it or granted to it.","required":["type","secret_id","service","region"],"properties":{"type":{"type":"string","enum":["sigv4"],"isRequired":true,"uniqueKey":"auth.oneOf.3.type","typeLabel":"enum\u003cstring>"},"secret_id":{"description":"An aws_credentials secret used to sign requests.","type":"string","pattern":"^sec_[a-z2-7]{26}$","isRequired":true,"uniqueKey":"auth.oneOf.3.secret_id","typeLabel":"string"},"service":{"type":"string","minLength":1,"maxLength":64,"description":"AWS signing service name, for example `bedrock-agentcore`.","isRequired":true,"uniqueKey":"auth.oneOf.3.service","typeLabel":"string"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"AWS signing region, for example `us-east-1`.","isRequired":true,"uniqueKey":"auth.oneOf.3.region","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"auth.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"auth","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"url":"\u003cstring>","auth":{"type":"none"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"e635a47b-0a97-4a47-ad4e-0eeb526329ec":{"description":"Tools advertised by the MCP server.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["protocol_version","server_info","tools"],"properties":{"protocol_version":{"type":"string","description":"MCP protocol version negotiated with the server.","isRequired":true,"uniqueKey":"protocol_version","typeLabel":"string"},"server_info":{"type":"object","additionalProperties":false,"required":["name","version"],"properties":{"name":{"type":"string","isRequired":true,"uniqueKey":"server_info.name","typeLabel":"string"},"version":{"type":"string","isRequired":true,"uniqueKey":"server_info.version","typeLabel":"string"},"title":{"type":"string","uniqueKey":"server_info.title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"server_info.description","typeLabel":"string"},"website_url":{"type":"string","uniqueKey":"server_info.website_url","typeLabel":"string"}},"isRequired":true,"uniqueKey":"server_info","typeLabel":"object"},"tools":{"type":"array","items":{"type":"object","additionalProperties":false,"required":["name","input_schema"],"properties":{"name":{"type":"string","description":"Tool name as advertised by the server. Referenced from agent config `mcp_servers.\u003ckey>.tools.\u003cname>`.","isRequired":true,"uniqueKey":"tools.items.[INDEX].name","typeLabel":"string"},"input_schema":{"type":"object","additionalProperties":true,"description":"JSON Schema for the tool's arguments.","isRequired":true,"uniqueKey":"tools.items.[INDEX].input_schema","typeLabel":"object"},"title":{"type":"string","uniqueKey":"tools.items.[INDEX].title","typeLabel":"string"},"description":{"type":"string","uniqueKey":"tools.items.[INDEX].description","typeLabel":"string"},"output_schema":{"type":"object","additionalProperties":true,"description":"JSON Schema for the tool's structured result, when the server advertises one.","uniqueKey":"tools.items.[INDEX].output_schema","typeLabel":"object"},"annotations":{"type":"object","additionalProperties":false,"properties":{"title":{"type":"string","uniqueKey":"tools.items.[INDEX].annotations.title","typeLabel":"string"},"read_only_hint":{"type":"boolean","uniqueKey":"tools.items.[INDEX].annotations.read_only_hint","typeLabel":"boolean"},"destructive_hint":{"type":"boolean","uniqueKey":"tools.items.[INDEX].annotations.destructive_hint","typeLabel":"boolean"},"idempotent_hint":{"type":"boolean","uniqueKey":"tools.items.[INDEX].annotations.idempotent_hint","typeLabel":"boolean"},"open_world_hint":{"type":"boolean","uniqueKey":"tools.items.[INDEX].annotations.open_world_hint","typeLabel":"boolean"}},"uniqueKey":"tools.items.[INDEX].annotations","typeLabel":"object"}},"uniqueKey":"tools.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"tools","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"protocol_version":"\u003cstring>","server_info":{"name":"\u003cstring>","version":"\u003cstring>","title":"\u003cstring>","description":"\u003cstring>","website_url":"\u003cstring>"},"tools":[{"name":"\u003cstring>","input_schema":{},"title":"\u003cstring>","description":"\u003cstring>","output_schema":{},"annotations":{"title":"\u003cstring>","read_only_hint":true,"destructive_hint":true,"idempotent_hint":true,"open_world_hint":true}}]}}},"exampleType":"generated"}},"exampleType":"generated"},"f75c8c16-009c-401e-b086-916a0b98f24a":{"description":"The request was invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"29f1ea8e-9c32-4eaa-8298-1ddd8df327de":{"description":"Authentication is required or invalid.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"398789cd-0c4b-457c-9076-5043d25e5d30":{"description":"The authenticated principal is not authorized.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"ffd0c14c-6a43-465c-b489-844102728ca6":{"description":"The requested resource was not found or is not visible.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"24e17943-5d65-4a05-9860-f3a5e9c53328":{"description":"Another refresh of this MCP server's catalog or of its OAuth secret is in progress. Retry shortly.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"fe38c7c8-f2e9-4c36-b54a-ca5e4e0df989":{"description":"The MCP server did not speak MCP, rejected the configured authentication, or the configured auth secret could not be used. When the server or its authorization server rejected authentication, `auth` hints which auth type it expects.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","enum":["unprocessable"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"auth":{"type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"type":"string","enum":["oauth","bearer"],"description":"`oauth` when the server advertises an OAuth authorization server per the MCP authorization spec; `bearer` when it rejects unauthenticated requests without OAuth metadata, which usually means a static API token.","isRequired":true,"uniqueKey":"auth.type","typeLabel":"enum\u003cstring>"},"scopes":{"type":"array","items":{"type":"string","uniqueKey":"auth.scopes.items.[INDEX]","typeLabel":"string"},"description":"Scopes the server requested or supports, when advertised.","uniqueKey":"auth.scopes","typeLabel":"string[]"},"authorization_server":{"type":"string","description":"Issuer URL of the OAuth authorization server, when advertised.","uniqueKey":"auth.authorization_server","typeLabel":"string"}},"uniqueKey":"auth","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"unprocessable","auth":{"type":"oauth","scopes":["\u003cstring>"],"authorization_server":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"f362f19e-1abb-4cde-ac03-3cd5e8128ee2":{"description":"A server the request depends on, such as an MCP server or its authorization server, did not respond or failed. Retry with backoff; the failure persists until that server recovers.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"89e60439-e517-47d0-830a-7e5ea91d3ffe":{"description":"An unexpected internal server error occurred.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"01b8d5d1-4290-4cce-86c6-fff41b9f3a0a":{"description":"The service dependency required to satisfy the request is unavailable.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code for programmatic handling.","x-go-type":"ErrorCode","x-extensible-enum":["invalid_request","unauthorized","forbidden","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","gone","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited","internal_error","service_unavailable","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","managed_work_admission_denied","pending_work","not_wake_capable","daemon_runtime_unregistered","validation_failed","csrf_check_failed","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"current_digest":{"type":"string","pattern":"^sha256:[0-9a-f]{64}$","description":"Current file digest for file_content_conflict or expected_digest_required; absent if the file no longer exists. A replacement must be confirmed before retrying with this digest.","uniqueKey":"current_digest","typeLabel":"string"},"issues":{"type":"array","description":"Field-level problems when a submitted document (such as an agent config source) failed validation. Absent for errors that are not about a specific field.","items":{"type":"object","additionalProperties":false,"required":["path","message"],"properties":{"path":{"type":"string","description":"JSON Pointer (RFC 6901) to the offending field in the submitted document. An empty string refers to the whole document.","isRequired":true,"uniqueKey":"issues.items.[INDEX].path","typeLabel":"string"},"message":{"type":"string","description":"Human-readable description of the problem with this field.","isRequired":true,"uniqueKey":"issues.items.[INDEX].message","typeLabel":"string"},"line":{"type":"integer","minimum":1,"description":"1-based line of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","minimum":1,"description":"1-based column of the offending field in the submitted source, when it can be located.","uniqueKey":"issues.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"issues.items.[INDEX]","typeLabel":"object"},"uniqueKey":"issues","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>","current_digest":"\u003cstring>","issues":[{"path":"\u003cstring>","message":"\u003cstring>","line":2,"column":2}]}}},"exampleType":"generated"}},"exampleType":"generated"},"a4968a09-79b2-4c03-bd91-1fc051ce7363":{"description":"Any other client error. The body carries the shared Error envelope restricted to client error codes; statuses with a dedicated response above are documented precisely.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code carried by 4XX statuses. Subset of the Error code enum whose statuses are client errors.","x-extensible-enum":["invalid_request","validation_failed","unauthorized","forbidden","csrf_check_failed","not_found","conflict","file_content_conflict","file_read_only","expected_digest_required","not_a_file","idempotency_key_conflict","agent_backlog_full","state_transition_conflict","pending_work","not_wake_capable","gone","daemon_runtime_unregistered","request_too_large","unsupported_media_type","unprocessable","upstream_unavailable","rate_limited"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"33c8ceb3-8df4-4f9c-9696-134824c287a5":{"description":"Any other server error. The body carries the shared Error envelope restricted to server error codes.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message. Do not match on it programmatically.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable error code carried by 5XX statuses. Subset of the Error code enum whose statuses are server errors.","x-extensible-enum":["internal_error","service_unavailable","authentication_unavailable"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"3ceb04b5-67c5-4a83-a5b6-79316e9891ed":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"BMA personal or organization access token","description":"An opaque BMA personal or organization bearer token.","scopes":[],"schemeName":"bearerAuth"}},"88d9c70c-ea2b-4f48-8a48-ec0539e6f249":{"browserSessionCookie":{"type":"apiKey","in":"cookie","name":"__Host-bma_session","description":"Browser session cookie. HTTPS deployments use __Host-bma_session; local HTTP development uses bma_session.","scopes":[],"schemeName":"browserSessionCookie"},"csrfHeader":{"type":"apiKey","in":"header","name":"X-BMA-Csrf","description":"CSRF token header required for browser-session mutations. The value must match the session's CSRF cookie.","scopes":[],"schemeName":"csrfHeader"}}},"servers":{"0bf5897a-c269-4b65-9499-ed03df44e358":{"url":"https://api.staging.bma.beeos.ai/api/v1","description":"Hosted BMA"},"949c42bc-5dd5-4a3b-abdf-7e9c2463228e":{"url":"/api/v1","description":"Self-hosted BMA, relative to the deployment origin"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"BMA personal or organization access token","description":"An opaque BMA personal or organization bearer token.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An opaque BMA personal or organization bearer token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"cookie","name":"__Host-bma_session","description":"Browser session cookie. HTTPS deployments use __Host-bma_session; local HTTP development uses bma_session.","scopes":[],"schemeName":"browserSessionCookie"},"schema":{"title":"__Host-bma_session","type":"string","description":"Browser session cookie. HTTPS deployments use __Host-bma_session; local HTTP development uses bma_session.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"browserSessionCookie","name":"__Host-bma_session"},{"scheme":{"type":"apiKey","in":"header","name":"X-BMA-Csrf","description":"CSRF token header required for browser-session mutations. The value must match the session's CSRF cookie.","scopes":[],"schemeName":"csrfHeader"},"schema":{"title":"X-BMA-Csrf","type":"string","description":"CSRF token header required for browser-session mutations. The value must match the session's CSRF cookie.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"csrfHeader","name":"X-BMA-Csrf"}],"title":"browserSessionCookie \u0026 csrfHeader"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"localhost","siteName":"BMA Developer Docs","title":"List an MCP server's tools - BMA Developer Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools","matchLevel":0},"zh":{"href":"/zh/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools","matchLevel":1}}},"originalFileLocation":"api-reference/native/configs-and-profiles/list-an-mcp-servers-tools.mdx","locale":"en"},"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=\"system\"}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=\"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless server/discover first, falling back to the initialize handshake for session-based servers), and returns the server\u0026#x27;s tools/list result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config mcp_servers..auth shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an auth hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an oauth hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server\u0026#x27;s authorization requirements and responds 422 with an auth hint — oauth when the server advertises an OAuth authorization server, bearer when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no auth hint.\">\u003cmeta data-mint-head name=\"application-name\" content=\"BMA Developer Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/favicons/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicons/favicon-32x32.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicons/favicon-16x16.png\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/favicons/favicon.ico\">\u003cmeta data-mint-head property=\"og:title\" content=\"List an MCP server\u0026#x27;s tools - BMA Developer Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless server/discover first, falling back to the initialize handshake for session-based servers), and returns the server\u0026#x27;s tools/list result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config mcp_servers..auth shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an auth hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an oauth hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server\u0026#x27;s authorization requirements and responds 422 with an auth hint — oauth when the server advertises an OAuth authorization server, bearer when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no auth hint.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"BMA Developer Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://local./api-reference/native/configs-and-profiles/list-an-mcp-servers-tools\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"List an MCP server\u0026#x27;s tools - BMA Developer Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Connects to a remote MCP server over streamable HTTP, negotiates the protocol version (stateless server/discover first, falling back to the initialize handshake for session-based servers), and returns the server\u0026#x27;s tools/list result. The request is not stored; use it to preview which tools a server exposes before referencing it from an agent config. Authentication mirrors the agent config mcp_servers..auth shape and resolves secrets available to the project. When the server does not speak MCP, the API responds 422 without an auth hint. When the server or its authorization server does not respond or fails, including a malformed MCP response or a JSON-RPC internal error from the server, the API responds 424; retrying may succeed once the server recovers. When the authorization server rejects the configured OAuth secret, the API responds 422 with an oauth hint so the caller can log in again. When BMA times out reading or storing discovery state, the API responds 503. When the server rejects the connection with HTTP 401 or 403, the API probes the server\u0026#x27;s authorization requirements and responds 422 with an auth hint — oauth when the server advertises an OAuth authorization server, bearer when it expects a token but advertises no OAuth metadata. If that probe fails for a non-transient reason, the 422 carries no auth hint.\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/favicons/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"BMA Developer Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#F97316\">\u003clink data-mint-head rel=\"canonical\" href=\"https://local./api-reference/native/configs-and-profiles/list-an-mcp-servers-tools\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://local./api-reference/native/configs-and-profiles/list-an-mcp-servers-tools\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://local./zh/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://local./api-reference/native/configs-and-profiles/list-an-mcp-servers-tools\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"BMA Developer Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"BMA Developer Docs","nav":{"languages":[{"language":"en","default":true,"banner":{"content":"BMA is in **early access**. Pages mark each capability as Available, Preview, or Roadmap.","dismissible":true},"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"SDKs","pages":[{"title":"SDKs","href":"/sdks/overview"}]},{"tab":"API reference","groups":[{"group":"API reference","pages":[{"title":"API reference","icon":"book","href":"/api-reference/introduction"}]},{"group":"Native REST API","pages":[{"group":"Events","pages":[{"title":"List event webhooks for one scope","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/event-webhooks","href":"/api-reference/native/events/list-event-webhooks-for-one-scope"},{"title":"Create an event webhook","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/event-webhooks","href":"/api-reference/native/events/create-an-event-webhook"},{"title":"Delete an event webhook","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/event-webhooks/{webhookID}","href":"/api-reference/native/events/delete-an-event-webhook"},{"title":"Update event webhook settings","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/event-webhooks/{webhookID}","href":"/api-reference/native/events/update-event-webhook-settings"},{"title":"List turns","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/turns","href":"/api-reference/native/events/list-turns"},{"title":"List turn events","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/turns/{turnID}/events","href":"/api-reference/native/events/list-turn-events"},{"title":"List events","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/events","href":"/api-reference/native/events/list-events"},{"title":"Stream events","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/events/stream","href":"/api-reference/native/events/stream-events"},{"title":"List session artifacts","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts","href":"/api-reference/native/events/list-session-artifacts"},{"title":"Upload a session artifact","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts","href":"/api-reference/native/events/upload-a-session-artifact"},{"title":"Get session artifact content","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts/{artifactID}/content","href":"/api-reference/native/events/get-session-artifact-content"},{"title":"Get artifact","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/artifacts/{artifactID}","href":"/api-reference/native/events/get-artifact"},{"title":"Get artifact content","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/artifacts/{artifactID}/content","href":"/api-reference/native/events/get-artifact-content"}]},{"group":"Users and API Keys","pages":[{"title":"List the authenticated user's personal access tokens","openapi":"/api-reference/openapi.yaml get /personal-access-tokens","href":"/api-reference/native/users-and-api-keys/list-the-authenticated-users-personal-access-tokens"},{"title":"Create personal access token","openapi":"/api-reference/openapi.yaml post /personal-access-tokens","href":"/api-reference/native/users-and-api-keys/create-personal-access-token"},{"title":"Revoke a personal access token","openapi":"/api-reference/openapi.yaml post /personal-access-tokens/{tokenID}/revoke","href":"/api-reference/native/users-and-api-keys/revoke-a-personal-access-token"},{"title":"Get the authenticated user and their organizations","openapi":"/api-reference/openapi.yaml get /me","href":"/api-reference/native/users-and-api-keys/get-the-authenticated-user-and-their-organizations"},{"title":"Delete the authenticated user's account","openapi":"/api-reference/openapi.yaml delete /me","href":"/api-reference/native/users-and-api-keys/delete-the-authenticated-users-account"},{"title":"List pending invitations","openapi":"/api-reference/openapi.yaml get /invitations","href":"/api-reference/native/users-and-api-keys/list-pending-invitations"},{"title":"Accept invitation","openapi":"/api-reference/openapi.yaml post /invitations/{invitationID}/accept","href":"/api-reference/native/users-and-api-keys/accept-invitation"},{"title":"Decline invitation","openapi":"/api-reference/openapi.yaml post /invitations/{invitationID}/decline","href":"/api-reference/native/users-and-api-keys/decline-invitation"},{"title":"List org API keys","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/api-keys","href":"/api-reference/native/users-and-api-keys/list-org-api-keys"},{"title":"Create org API key","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/api-keys","href":"/api-reference/native/users-and-api-keys/create-org-api-key"},{"title":"Get an org API key","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/api-keys/{keyID}","href":"/api-reference/native/users-and-api-keys/get-an-org-api-key"},{"title":"Update an org API key","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/api-keys/{keyID}","href":"/api-reference/native/users-and-api-keys/update-an-org-api-key"},{"title":"Revoke an org API key","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/api-keys/{keyID}/revoke","href":"/api-reference/native/users-and-api-keys/revoke-an-org-api-key"},{"title":"List an org API key's explicit project role grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/api-keys/{keyID}/projects","href":"/api-reference/native/users-and-api-keys/list-an-org-api-keys-explicit-project-role-grants"},{"title":"Set an org API key's role on a project","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/api-keys/{keyID}/projects/{projectID}","href":"/api-reference/native/users-and-api-keys/set-an-org-api-keys-role-on-a-project"},{"title":"Remove an org API key's project role grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/api-keys/{keyID}/projects/{projectID}","href":"/api-reference/native/users-and-api-keys/remove-an-org-api-keys-project-role-grant"}]},{"group":"Machine Daemon","pages":[]},{"group":"Organizations and Projects","pages":[{"title":"List the authenticated principal's organizations","openapi":"/api-reference/openapi.yaml get /orgs","href":"/api-reference/native/organizations-and-projects/list-the-authenticated-principals-organizations"},{"title":"Create organization","openapi":"/api-reference/openapi.yaml post /orgs","href":"/api-reference/native/organizations-and-projects/create-organization"},{"title":"Delete organization","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}","href":"/api-reference/native/organizations-and-projects/delete-organization"},{"title":"Get org usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/usage","href":"/api-reference/native/organizations-and-projects/get-org-usage"},{"title":"Get usage timeseries","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/usage/timeseries","href":"/api-reference/native/organizations-and-projects/get-usage-timeseries"},{"title":"List visible projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects","href":"/api-reference/native/organizations-and-projects/list-visible-projects"},{"title":"Create project","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects","href":"/api-reference/native/organizations-and-projects/create-project"},{"title":"Delete project","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}","href":"/api-reference/native/organizations-and-projects/delete-project"},{"title":"Get project usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/usage","href":"/api-reference/native/organizations-and-projects/get-project-usage"},{"title":"List organization members","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/members","href":"/api-reference/native/organizations-and-projects/list-organization-members"},{"title":"Remove org member","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/members/{userID}","href":"/api-reference/native/organizations-and-projects/remove-org-member"},{"title":"Update org member role","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/members/{userID}","href":"/api-reference/native/organizations-and-projects/update-org-member-role"},{"title":"List a member's explicit project role grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/members/{userID}/projects","href":"/api-reference/native/organizations-and-projects/list-a-members-explicit-project-role-grants"},{"title":"Set a member's role on a project","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/members/{userID}/projects/{projectID}","href":"/api-reference/native/organizations-and-projects/set-a-members-role-on-a-project"},{"title":"Remove a member's project role grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/members/{userID}/projects/{projectID}","href":"/api-reference/native/organizations-and-projects/remove-a-members-project-role-grant"},{"title":"List org invitations","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/invitations","href":"/api-reference/native/organizations-and-projects/list-org-invitations"},{"title":"Create org invitation","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/invitations","href":"/api-reference/native/organizations-and-projects/create-org-invitation"},{"title":"Delete org invitation","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/invitations/{invitationID}","href":"/api-reference/native/organizations-and-projects/delete-org-invitation"}]},{"group":"Agents","pages":[{"title":"List agents across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/agents","href":"/api-reference/native/agents/list-agents-across-projects"},{"title":"List agents","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents","href":"/api-reference/native/agents/list-agents"},{"title":"Create agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents","href":"/api-reference/native/agents/create-agent"},{"title":"Get agent","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}","href":"/api-reference/native/agents/get-agent"},{"title":"Get agent usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/usage","href":"/api-reference/native/agents/get-agent-usage"},{"title":"Archive agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/archive","href":"/api-reference/native/agents/archive-agent"},{"title":"Update agent config","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/config","href":"/api-reference/native/agents/update-agent-config"},{"title":"Read the session model override metadata","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/read-the-session-model-override-metadata"},{"title":"Create or replace the session model override","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/create-or-replace-the-session-model-override"},{"title":"Revoke the session model override","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/revoke-the-session-model-override"},{"title":"Modify the session model override","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agents/{agentID}/model-override","href":"/api-reference/native/agents/modify-the-session-model-override"},{"title":"Read the agent executor binding","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/executor-binding","href":"/api-reference/native/agents/read-the-agent-executor-binding"},{"title":"Run the agent on an agent executor","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/agents/{agentID}/executor-binding","href":"/api-reference/native/agents/run-the-agent-on-an-agent-executor"},{"title":"Read a session model override metadata","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/read-a-session-model-override-metadata"},{"title":"Create or replace a session model override","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/create-or-replace-a-session-model-override"},{"title":"Revoke a session model override","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/revoke-a-session-model-override"},{"title":"Modify a session model override","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/model-override","href":"/api-reference/native/agents/modify-a-session-model-override"},{"title":"Create agent input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs","href":"/api-reference/native/agents/create-agent-input"},{"title":"List agent sessions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions","href":"/api-reference/native/agents/list-agent-sessions"},{"title":"Create agent session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions","href":"/api-reference/native/agents/create-agent-session"},{"title":"Get agent session","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}","href":"/api-reference/native/agents/get-agent-session"},{"title":"Update agent session","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}","href":"/api-reference/native/agents/update-agent-session"},{"title":"Archive agent session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/archive","href":"/api-reference/native/agents/archive-agent-session"},{"title":"Cancel agent session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/cancel","href":"/api-reference/native/agents/cancel-agent-session"},{"title":"Get an agent session by id","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-sessions/{sessionID}","href":"/api-reference/native/agents/get-an-agent-session-by-id"},{"title":"List tool calls","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/tool-calls","href":"/api-reference/native/agents/list-tool-calls"},{"title":"Submit a result for a ready custom tool call","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/tool-calls/{toolCallID}/result","href":"/api-reference/native/agents/submit-a-result-for-a-ready-custom-tool-call"},{"title":"Cancel agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/cancel","href":"/api-reference/native/agents/cancel-agent"},{"title":"List waiting backlog inputs","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/backlog","href":"/api-reference/native/agents/list-waiting-backlog-inputs"},{"title":"Cancel queued backlog input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/cancel","href":"/api-reference/native/agents/cancel-queued-backlog-input"},{"title":"Move queued backlog input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/move","href":"/api-reference/native/agents/move-queued-backlog-input"},{"title":"Promote queued input to steering","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/promote_to_steering","href":"/api-reference/native/agents/promote-queued-input-to-steering"},{"title":"Demote steering input to queued","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/inputs/{inputID}/demote_to_queued","href":"/api-reference/native/agents/demote-steering-input-to-queued"}]},{"group":"Configs and Profiles","pages":[{"title":"List agent profiles across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/agent-profiles","href":"/api-reference/native/configs-and-profiles/list-agent-profiles-across-projects"},{"title":"Resolve agent config tools","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-configs/tools","href":"/api-reference/native/configs-and-profiles/resolve-agent-config-tools"},{"title":"Create agent config","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-configs","href":"/api-reference/native/configs-and-profiles/create-agent-config"},{"title":"Get tool catalog","openapi":"/api-reference/openapi.yaml get /tool-catalog","href":"/api-reference/native/configs-and-profiles/get-tool-catalog"},{"title":"Search the MCP server registry","description":"Search the API's snapshot of the public MCP registry. The snapshot only holds active servers that publish a `streamable-http` remote. Results are ranked by relevance when `q` is set, otherwise ordered by name.","openapi":"/api-reference/openapi.yaml get /mcp-servers","href":"/api-reference/native/configs-and-profiles/search-the-mcp-server-registry"},{"title":"List an MCP server's tools","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/mcp-servers/tools","href":"/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools"},{"title":"Get agent config","description":"Returns one agent config: its compiled definition with names resolved to IDs, and its source if it was saved with one. Configs BMA derives on its own, such as those for subagents and integration launches, have no source.","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-configs/{agentConfigID}","href":"/api-reference/native/configs-and-profiles/get-agent-config"},{"title":"Get generated agent config source","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-configs/{agentConfigID}/generated-source","href":"/api-reference/native/configs-and-profiles/get-generated-agent-config-source"},{"title":"List agent profiles","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-profiles","href":"/api-reference/native/configs-and-profiles/list-agent-profiles"},{"title":"Create agent profile","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-profiles","href":"/api-reference/native/configs-and-profiles/create-agent-profile"},{"title":"Get agent profile","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}","href":"/api-reference/native/configs-and-profiles/get-agent-profile"},{"title":"Delete agent profile","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}","href":"/api-reference/native/configs-and-profiles/delete-agent-profile"},{"title":"Rename agent profile","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}","href":"/api-reference/native/configs-and-profiles/rename-agent-profile"},{"title":"Get agent profile usage","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}/usage","href":"/api-reference/native/configs-and-profiles/get-agent-profile-usage"},{"title":"Update agent profile","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agent-profiles/{agentProfileID}/config","href":"/api-reference/native/configs-and-profiles/update-agent-profile"},{"title":"List cron triggers","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/cron-triggers","href":"/api-reference/native/configs-and-profiles/list-cron-triggers"},{"title":"Create cron trigger","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/cron-triggers","href":"/api-reference/native/configs-and-profiles/create-cron-trigger"},{"title":"Get cron trigger","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/cron-triggers/{cronTriggerID}","href":"/api-reference/native/configs-and-profiles/get-cron-trigger"},{"title":"Delete cron trigger","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/cron-triggers/{cronTriggerID}","href":"/api-reference/native/configs-and-profiles/delete-cron-trigger"},{"title":"Update cron trigger","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/cron-triggers/{cronTriggerID}","href":"/api-reference/native/configs-and-profiles/update-cron-trigger"}]},{"group":"Skills","pages":[{"title":"List skills visible through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/skills","href":"/api-reference/native/skills/list-skills-visible-through-ownership-authority"},{"title":"Create skill","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/skills","href":"/api-reference/native/skills/create-skill"},{"title":"Get skill through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/skills/{skillID}","href":"/api-reference/native/skills/get-skill-through-ownership-authority"},{"title":"Update skill by uploading a new revision","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/skills/{skillID}","href":"/api-reference/native/skills/update-skill-by-uploading-a-new-revision"},{"title":"Delete skill","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/skills/{skillID}","href":"/api-reference/native/skills/delete-skill"},{"title":"List skill grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/skills/{skillID}/grants","href":"/api-reference/native/skills/list-skill-grants"},{"title":"Create skill grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/skills/{skillID}/grants","href":"/api-reference/native/skills/create-skill-grant"},{"title":"Delete skill grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/skills/{skillID}/grants/{grantID}","href":"/api-reference/native/skills/delete-skill-grant"},{"title":"List skills available to project","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/skills","href":"/api-reference/native/skills/list-skills-available-to-project"}]},{"group":"Memory Stores","pages":[{"title":"List memory stores across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/memory-stores","href":"/api-reference/native/memory-stores/list-memory-stores-across-projects"},{"title":"List memory stores","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores","href":"/api-reference/native/memory-stores/list-memory-stores"},{"title":"Create memory store","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/memory-stores","href":"/api-reference/native/memory-stores/create-memory-store"},{"title":"Get memory store","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}","href":"/api-reference/native/memory-stores/get-memory-store"},{"title":"Delete memory store","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}","href":"/api-reference/native/memory-stores/delete-memory-store"},{"title":"Update memory store","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}","href":"/api-reference/native/memory-stores/update-memory-store"},{"title":"List memory files","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/files","href":"/api-reference/native/memory-stores/list-memory-files"},{"title":"Download memory file","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/file","href":"/api-reference/native/memory-stores/download-memory-file"},{"title":"Write memory file","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/file","href":"/api-reference/native/memory-stores/write-memory-file"},{"title":"Delete memory file","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/memory-stores/{memoryStoreID}/file","href":"/api-reference/native/memory-stores/delete-memory-file"}]},{"group":"Secrets","pages":[{"title":"List secrets visible through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/secrets","href":"/api-reference/native/secrets/list-secrets-visible-through-ownership-authority"},{"title":"Create secret","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets","href":"/api-reference/native/secrets/create-secret"},{"title":"Start MCP OAuth for a new secret","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets/mcp-oauth","href":"/api-reference/native/secrets/start-mcp-oauth-for-a-new-secret"},{"title":"Get secret through ownership authority","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/secrets/{secretID}","href":"/api-reference/native/secrets/get-secret-through-ownership-authority"},{"title":"Delete secret","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/secrets/{secretID}","href":"/api-reference/native/secrets/delete-secret"},{"title":"Update secret metadata","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/secrets/{secretID}","href":"/api-reference/native/secrets/update-secret-metadata"},{"title":"Create secret version","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets/{secretID}/versions","href":"/api-reference/native/secrets/create-secret-version"},{"title":"List secret grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/secrets/{secretID}/grants","href":"/api-reference/native/secrets/list-secret-grants"},{"title":"Create secret grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/secrets/{secretID}/grants","href":"/api-reference/native/secrets/create-secret-grant"},{"title":"Delete secret grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/secrets/{secretID}/grants/{grantID}","href":"/api-reference/native/secrets/delete-secret-grant"},{"title":"List secrets available to project","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/secrets","href":"/api-reference/native/secrets/list-secrets-available-to-project"},{"title":"Get secret available to project","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/secrets/{secretID}","href":"/api-reference/native/secrets/get-secret-available-to-project"}]},{"group":"Integrations","pages":[{"title":"Connect an integration through OAuth","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/oauth/setup","href":"/api-reference/native/integrations/connect-an-integration-through-oauth"},{"title":"Create a Slack provider app and connect it to an BMA integration","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/slack-setup","href":"/api-reference/native/integrations/create-a-slack-provider-app-and-connect-it-to-an-bma-integration"},{"title":"Start registration of a customer-owned GitHub App","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/github-setup","href":"/api-reference/native/integrations/start-registration-of-a-customer-owned-github-app"},{"title":"Inspect installations of a customer-owned GitHub App","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/github-setup/installations","href":"/api-reference/native/integrations/inspect-installations-of-a-customer-owned-github-app"},{"title":"List integrations across projects","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/integrations","href":"/api-reference/native/integrations/list-integrations-across-projects"},{"title":"List project integrations","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations","href":"/api-reference/native/integrations/list-project-integrations"},{"title":"Create an integration and optional launcher","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations","href":"/api-reference/native/integrations/create-an-integration-and-optional-launcher"},{"title":"Get project integration","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}","href":"/api-reference/native/integrations/get-project-integration"},{"title":"Update integration settings","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}","href":"/api-reference/native/integrations/update-integration-settings"},{"title":"Delete integration setup and revoke its capabilities","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}","href":"/api-reference/native/integrations/delete-integration-setup-and-revoke-its-capabilities"},{"title":"List integration conversation subscriptions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/subscriptions","href":"/api-reference/native/integrations/list-integration-conversation-subscriptions"},{"title":"Attach an agent to an integration conversation","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/subscriptions","href":"/api-reference/native/integrations/attach-an-agent-to-an-integration-conversation"},{"title":"Stop forwarding an integration conversation to an agent","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/subscriptions/{subscriptionID}","href":"/api-reference/native/integrations/stop-forwarding-an-integration-conversation-to-an-agent"},{"title":"Verify and configure integration credentials","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/setup","href":"/api-reference/native/integrations/verify-and-configure-integration-credentials"},{"title":"Disconnect this integration without deleting its configuration","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/disconnect","href":"/api-reference/native/integrations/disconnect-this-integration-without-deleting-its-configuration"},{"title":"List repositories a GitHub integration can access","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integrations/{integrationID}/github-repositories","href":"/api-reference/native/integrations/list-repositories-a-github-integration-can-access"},{"title":"List installed integration implementations and their capabilities","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/integration-definitions","href":"/api-reference/native/integrations/list-installed-integration-implementations-and-their-capabilities"}]},{"group":"Machines","pages":[{"title":"List an agent's pooled machines","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/machines","href":"/api-reference/native/machines/list-an-agents-pooled-machines"},{"title":"Create a persistent machine for an agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/machines","href":"/api-reference/native/machines/create-a-persistent-machine-for-an-agent"},{"title":"Delete an agent's persistent machine","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/machines/{machineID}","href":"/api-reference/native/machines/delete-an-agents-persistent-machine"},{"title":"List visible project machines","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines","href":"/api-reference/native/machines/list-visible-project-machines"},{"title":"Get machine interaction capabilities","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/capabilities","href":"/api-reference/native/machines/get-machine-interaction-capabilities"},{"title":"Resume a paused or archived machine","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/resume","href":"/api-reference/native/machines/resume-a-paused-or-archived-machine"},{"title":"List a machine's workspace backups","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/backups","href":"/api-reference/native/machines/list-a-machines-workspace-backups"},{"title":"Back up a machine's workspace now","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/backups","href":"/api-reference/native/machines/back-up-a-machines-workspace-now"},{"title":"Recreate a machine from a workspace backup","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/restore","href":"/api-reference/native/machines/recreate-a-machine-from-a-workspace-backup"},{"title":"List project machine grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machine-grants","href":"/api-reference/native/machines/list-project-machine-grants"},{"title":"Create project machine grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machine-grants","href":"/api-reference/native/machines/create-project-machine-grant"},{"title":"Delete project machine grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/machine-grants/{grantID}","href":"/api-reference/native/machines/delete-project-machine-grant"},{"title":"List visible machines","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machines","href":"/api-reference/native/machines/list-visible-machines"},{"title":"Create machine","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines","href":"/api-reference/native/machines/create-machine"},{"title":"Connect a BYO machine","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines/connect","href":"/api-reference/native/machines/connect-a-byo-machine"},{"title":"Get machine","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machines/{machineID}","href":"/api-reference/native/machines/get-machine"},{"title":"Delete machine","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/machines/{machineID}","href":"/api-reference/native/machines/delete-machine"},{"title":"Update machine execution defaults","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/machines/{machineID}","href":"/api-reference/native/machines/update-machine-execution-defaults"},{"title":"List byo machine daemon tokens","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machines/{machineID}/daemon-tokens","href":"/api-reference/native/machines/list-byo-machine-daemon-tokens"},{"title":"Create byo machine daemon token","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines/{machineID}/daemon-tokens","href":"/api-reference/native/machines/create-byo-machine-daemon-token"},{"title":"Revoke machine daemon token","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machines/{machineID}/daemon-tokens/{tokenID}/revoke","href":"/api-reference/native/machines/revoke-machine-daemon-token"}]},{"group":"Interactions","pages":[{"title":"List agent interactions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/interactions","href":"/api-reference/native/interactions/list-agent-interactions"},{"title":"Resolve agent interaction","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/interactions/{interactionID}/resolve","href":"/api-reference/native/interactions/resolve-agent-interaction"}]},{"group":"Files","pages":[{"title":"List files","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/files","href":"/api-reference/native/files/list-files"},{"title":"Upload a file","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/files","href":"/api-reference/native/files/upload-a-file"},{"title":"Get file metadata","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/files/{fileID}","href":"/api-reference/native/files/get-file-metadata"},{"title":"Delete a file","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/files/{fileID}","href":"/api-reference/native/files/delete-a-file"},{"title":"Download a file","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/files/{fileID}/content","href":"/api-reference/native/files/download-a-file"},{"title":"List session file resources","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/resources","href":"/api-reference/native/files/list-session-file-resources"},{"title":"Mount a file into a session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/resources","href":"/api-reference/native/files/mount-a-file-into-a-session"},{"title":"Unmount a file from a session","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/resources/{resourceID}","href":"/api-reference/native/files/unmount-a-file-from-a-session"},{"title":"Promote a session artifact to a file","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/agents/{agentID}/sessions/{sessionID}/artifacts/{artifactID}/promote","href":"/api-reference/native/files/promote-a-session-artifact-to-a-file"}]},{"group":"Desktops","pages":[{"title":"Create a desktop session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions","href":"/api-reference/native/desktops/create-a-desktop-session"},{"title":"Get a desktop session","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}","href":"/api-reference/native/desktops/get-a-desktop-session"},{"title":"Close a desktop session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/close","href":"/api-reference/native/desktops/close-a-desktop-session"},{"title":"Get desktop control status","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control","href":"/api-reference/native/desktops/get-desktop-control-status"},{"title":"Acquire desktop control","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/acquire","href":"/api-reference/native/desktops/acquire-desktop-control"},{"title":"Renew desktop control","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/renew","href":"/api-reference/native/desktops/renew-desktop-control"},{"title":"Release desktop control","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/release","href":"/api-reference/native/desktops/release-desktop-control"},{"title":"Hand control back","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/control/handback","href":"/api-reference/native/desktops/hand-control-back"},{"title":"Capture the desktop","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/screenshot","href":"/api-reference/native/desktops/capture-the-desktop"},{"title":"Send desktop input","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/actions","href":"/api-reference/native/desktops/send-desktop-input"},{"title":"Observe the desktop as the agent","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/observe","href":"/api-reference/native/desktops/observe-the-desktop-as-the-agent"},{"title":"Resume the agent after a takeover","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/resume","href":"/api-reference/native/desktops/resume-the-agent-after-a-takeover"},{"title":"Submit an agent desktop action","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/actions","href":"/api-reference/native/desktops/submit-an-agent-desktop-action"},{"title":"Confirm a pending agent action","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/desktop-sessions/{desktopSessionID}/agent/actions/{pendingID}/confirm","href":"/api-reference/native/desktops/confirm-a-pending-agent-action"}]},{"group":"Terminals","pages":[{"title":"List terminal sessions","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions","href":"/api-reference/native/terminals/list-terminal-sessions"},{"title":"Create a terminal session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions","href":"/api-reference/native/terminals/create-a-terminal-session"},{"title":"Get a terminal session","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions/{terminalSessionID}","href":"/api-reference/native/terminals/get-a-terminal-session"},{"title":"Close a terminal session","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions/{terminalSessionID}/close","href":"/api-reference/native/terminals/close-a-terminal-session"},{"title":"Mint a terminal connection ticket","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machines/{machineID}/terminal-sessions/{terminalSessionID}/connection-ticket","href":"/api-reference/native/terminals/mint-a-terminal-connection-ticket"}]},{"group":"Actors","pages":[{"title":"List project actors","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/actors","href":"/api-reference/native/actors/list-project-actors"},{"title":"Upsert an external actor","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/projects/{projectID}/actors","href":"/api-reference/native/actors/upsert-an-external-actor"},{"title":"Get a project actor","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/actors/{actorID}","href":"/api-reference/native/actors/get-a-project-actor"}]},{"group":"Models","pages":[{"title":"List model provider configs","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs","href":"/api-reference/native/models/list-model-provider-configs"},{"title":"Create model provider config","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/model-provider-configs","href":"/api-reference/native/models/create-model-provider-config"},{"title":"Get model provider config","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}","href":"/api-reference/native/models/get-model-provider-config"},{"title":"Update model provider config","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}","href":"/api-reference/native/models/update-model-provider-config"},{"title":"Delete model provider config","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}","href":"/api-reference/native/models/delete-model-provider-config"},{"title":"Get model catalog","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/model-catalog","href":"/api-reference/native/models/get-model-catalog"},{"title":"List configured models","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models","href":"/api-reference/native/models/list-configured-models"},{"title":"Create configured model","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models","href":"/api-reference/native/models/create-configured-model"},{"title":"Update configured model","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models/{configuredModelID}","href":"/api-reference/native/models/update-configured-model"},{"title":"Delete configured model","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/model-provider-configs/{modelProviderConfigID}/models/{configuredModelID}","href":"/api-reference/native/models/delete-configured-model"},{"title":"List project model grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/model-grants","href":"/api-reference/native/models/list-project-model-grants"},{"title":"Create project model grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/model-grants","href":"/api-reference/native/models/create-project-model-grant"},{"title":"Delete project model grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/model-grants/{modelGrantID}","href":"/api-reference/native/models/delete-project-model-grant"},{"title":"Update project model grant","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/model-grants/{modelGrantID}","href":"/api-reference/native/models/update-project-model-grant"}]},{"group":"Machine Pools","pages":[{"title":"List machine pools","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machine-pools","href":"/api-reference/native/machine-pools/list-machine-pools"},{"title":"Create machine pool","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machine-pools","href":"/api-reference/native/machine-pools/create-machine-pool"},{"title":"Check machine pool connection","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/machine-pools/check-connection","href":"/api-reference/native/machine-pools/check-machine-pool-connection"},{"title":"Get machine pool","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/machine-pools/{poolID}","href":"/api-reference/native/machine-pools/get-machine-pool"},{"title":"Update machine pool","openapi":"/api-reference/openapi.yaml put /orgs/{orgID}/machine-pools/{poolID}","href":"/api-reference/native/machine-pools/update-machine-pool"},{"title":"Delete machine pool","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/machine-pools/{poolID}","href":"/api-reference/native/machine-pools/delete-machine-pool"},{"title":"List project machine pool grants","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machine-pool-grants","href":"/api-reference/native/machine-pools/list-project-machine-pool-grants"},{"title":"Create project machine pool grant","openapi":"/api-reference/openapi.yaml post /orgs/{orgID}/projects/{projectID}/machine-pool-grants","href":"/api-reference/native/machine-pools/create-project-machine-pool-grant"},{"title":"Get project machine pool grant","openapi":"/api-reference/openapi.yaml get /orgs/{orgID}/projects/{projectID}/machine-pool-grants/{poolGrantID}","href":"/api-reference/native/machine-pools/get-project-machine-pool-grant"},{"title":"Delete project machine pool grant","openapi":"/api-reference/openapi.yaml delete /orgs/{orgID}/projects/{projectID}/machine-pool-grants/{poolGrantID}","href":"/api-reference/native/machine-pools/delete-project-machine-pool-grant"},{"title":"Update project machine pool grant","openapi":"/api-reference/openapi.yaml patch /orgs/{orgID}/projects/{projectID}/machine-pool-grants/{poolGrantID}","href":"/api-reference/native/machine-pools/update-project-machine-pool-grant"}]}]},{"group":"Managed Agents extensions","pages":[{"group":"API Reference","pages":[{"title":"Mint a desktop watch ticket for a session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/desktop/stream","href":"/api-reference/extensions/mint-a-desktop-watch-ticket-for-a-session-bma-extension"},{"title":"List files uploaded into the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/files","href":"/api-reference/extensions/list-files-uploaded-into-the-session-bma-extension"},{"title":"Upload one file into the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml post /v1/sessions/{session_id}/files","href":"/api-reference/extensions/upload-one-file-into-the-session-bma-extension"},{"title":"Download one session file (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/files/{file_id}/content","href":"/api-reference/extensions/download-one-session-file-bma-extension"},{"title":"List the session's mounted file resources (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml get /v1/sessions/{session_id}/resources","href":"/api-reference/extensions/list-the-sessions-mounted-file-resources-bma-extension"},{"title":"Mount one project file into the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml post /v1/sessions/{session_id}/resources","href":"/api-reference/extensions/mount-one-project-file-into-the-session-bma-extension"},{"title":"Unmount one file resource from the session (BMA extension)","openapi":"/api-reference/managed-agents-extensions.openapi.yaml delete /v1/sessions/{session_id}/resources/{resource_id}","href":"/api-reference/extensions/unmount-one-file-resource-from-the-session-bma-extension"}]}]}]},{"tab":"Self-hosting","pages":[{"title":"Self-hosting","href":"/self-hosting/overview"}]},{"tab":"Changelog \u0026 roadmap","pages":[{"title":"Changelog \u0026 roadmap","href":"/changelog"}]}]},{"language":"zh","banner":{"content":"BMA 处于**抢先体验**阶段。各页面会把每项能力标注为 Available、Preview 或 Roadmap。","dismissible":true},"pages":[{"title":"zh","href":"/zh/api-reference/native/configs-and-profiles/list-an-mcp-servers-tools"}]}]},"basePath":"","title":"List an MCP server's tools - BMA Developer Docs","buildId":"223f4d0f93b3","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-CCxzie0y.js","dist-C8phz87P.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-DfU2JnNK.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DLP13Bsa.js","utils-LK_Rx0Zu.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BSq7eEfK.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bchcwpn2.js","snippetPresets-B-BsDEmk.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CNoZnlAG.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DqKAmR6F.js","shallow-Dq5-SwG1.js","getApiPlaygroundDisplay-B6YMrfFr.js","CodeSnippet-DvvqqrVi.js","CodeSnippets-D6Vj56PD.js","Page-03hAnTHd.js","getPastedJson-BKlc8wx2.js","icon-HMNWawTa.js","MethodPill-Dd_Z_kqi.js","DuplicateIcon-DK5o2DOi.js","createIcon-BhUMOhLi.js","DynamicMarkdown-CoGC92CO.js","SectionHeading-K9MvhMbX.js","axios-vUo_bRtp.js","Markdown-DqqHYs0x.js","AssistantPageLink-BVRLOPpC.js"]}