How to configure Chainloop MCP in your AI clients and agents
Chainloop remote Model Context Protocol (MCP) server is a new way to interact with Chainloop natively from your AI clients or agents. This allows you to perform complex queries, craft compliance reports, or implement advanced agentic workflows. All of this done securely, using the data already stored and signed in Chainloop.
The MCP server is enabled by default. For self-hosted instances, use your instance’s MCP endpoint in the configurations below.
Connect your AI client to https://api.app.chainloop.dev/mcp. You can authenticate in two ways:
User authentication: Sign in with your Chainloop account through single sign-on (SSO). Your client opens a browser where you sign in and authorize access to Chainloop.
API token: Authenticate with a Chainloop API token. The token’s permissions determine what your client can access.
Follow the instructions for your client below. Select User Auth or API Token where both options are available.
Use the install button or add the configuration below to .cursor/mcp.json in your project root. For all projects, use ~/.cursor/mcp.json instead. If the file already contains MCP servers, add chainloop to the existing mcpServers object.
Add the following configuration to opencode.json in your project root. If the file already contains MCP servers, add chainloop to the existing mcp object.
Claude Desktop supports remote MCP servers through custom connectors.
Open Connectors in Claude. Select Add custom connector. For Team and Enterprise plans, an organization owner must add the connector first.
Name the connector Chainloop. Enter https://api.app.chainloop.dev/mcp as the remote MCP server URL.
Complete the connector setup. Select Connect. Complete the browser authentication to authorize access to Chainloop.
Enable the Chainloop connector from the + menu in your conversation.
Example prompt:
Show me info about my Chainloop organization and projects
For API token authentication, open the connector’s Request headers. Add an Authorization header with the value Bearer <your-chainloop-api-token>.For self-hosted instances, use your instance’s MCP endpoint. It must be reachable from Anthropic’s servers. See Claude’s custom connector documentation for setup and network requirements.
If you are using ChatGPT, you can connect to the Chainloop MCP server by creating a custom connector that points to https://api.app.chainloop.dev/mcp.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Chainloop Documentation","description":"Chainloop secures your software supply chain by automating compliance, ensuring traceability, and enhancing collaboration across Dev, Sec, and Ops. With real-time visibility, a centralized evidence store, and a curated policy library, it accelerates delivery and helps teams ship secure, compliant software faster.","colors":{"primary":"#2D1BD2","light":"#FF5C4D","dark":"#9F8951"},"logo":{"light":"https://mintcdn.com/chainloop/piBVJM34fSFTGk0R/images/logo/light.svg?fit=max\u0026auto=format\u0026n=piBVJM34fSFTGk0R\u0026q=85\u0026s=4bc355683f7e78c629ece2e28db71dff","dark":"https://mintcdn.com/chainloop/xJ5hNAgMrS6U1u_m/images/logo/dark.png?fit=max\u0026auto=format\u0026n=xJ5hNAgMrS6U1u_m\u0026q=85\u0026s=9e6be3ff192adebcb1f8fda40d07f9e4","href":"https://chainloop.dev/"},"favicon":"https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/images/favicon/favicon-32x32.png?fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=1a0b74dcba7ec787f8ed05421f617d11","navbar":{"primary":{"type":"button","label":"Get a demo","href":"https://chainloop.dev/book-a-demo"}},"footer":{"socials":{"slack":"https://join.slack.com/t/chainloop-community/shared_invite/zt-2k34dvx3r-u85uGP_KiLC6ic5Wy4aRnQ","github":"https://github.com/chainloop-dev","x":"https://x.com/chainloop_dev","linkedin":"https://www.linkedin.com/company/chainloop-dev","youtube":"https://www.youtube.com/@chainloop-dev"}},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"integrations":{"intercom":{"appId":"t3644vit"},"posthog":{"apiKey":"phc_rCvU7fL4Ndr4GpzH54RNdyNUWNgTpuHX7ApDxFW6G9FS","apiHost":"https://t.chainloop.dev"},"cookies":{"key":"chainloop_analytics_consent","value":"granted"}},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://chainloop.dev/"},{"anchor":"Blog","icon":"newspaper","href":"https://chainloop.dev/blog"},{"anchor":"Get Help","icon":"headset","href":"https://help.chainloop.dev"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chainloop","hasAudioNarration":false,"actualSubdomain":"chainloop","customDomains":["docs.chainloop.dev"],"gitSource":{"type":"github","owner":"chainloop-dev","repo":"platform-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ade285f018724cf907fff7f","collectionId":"37c6a179-d919-43ca-87aa-06fb700e8f05","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ade285f018724cf907fff7f"},"feedback":{"thumbs":false,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ade285f018724cf907fff7f","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Documentation","count":90},{"language":"default","tag":"Reference","count":65},{"language":"default","tag":"API Reference","count":62},{"language":"default","tag":"Platform Endpoints","count":59},{"language":"default","tag":"Guides","count":40},{"language":"default","tag":"Concepts","count":23},{"language":"default","tag":"References","count":17},{"language":"default","tag":"Deployment","count":15},{"language":"default","tag":"Configuration Guides","count":12},{"language":"default","tag":"AssessmentService","count":11}]},"assistantConfig":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/chainloop-mcp","slug":"/guides/chainloop-mcp","pageMetadata":{"title":"How to use the Chainloop MCP server","description":"How to configure Chainloop MCP in your AI clients and agents","og:image":"/guides/img/mcp-1.webp","href":"/guides/chainloop-mcp"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"How to configure Chainloop MCP in your AI clients and agents\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,img:`img`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Tab,Tabs,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Chainloop remote `,_jsx(_components.a,{href:`https://modelcontextprotocol.io/`,children:`Model Context Protocol`}),` (MCP) server is a new way to interact with Chainloop natively from your AI clients or agents. This allows you to `,_jsx(_components.strong,{children:`perform complex queries, craft compliance reports, or implement advanced agentic workflows`}),`. All of this done securely, using the data already stored and `,_jsx(_components.a,{href:`/concepts/attestations`,children:`signed`}),` in Chainloop.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=0e4593001faa9f41de83755d964e6126`,alt:`info`,\"data-og-width\":`2534`,width:`2534`,\"data-og-height\":`1178`,height:`1178`,\"data-path\":`guides/img/mcp-1.webp`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?w=280\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=e28011fad9088755d185d15b7dad3ddb 280w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?w=560\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=4840733251cb9b61bd124250e510d16b 560w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?w=840\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=bad1826dbdc753e4d427d5c8d6f35721 840w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?w=1100\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=9f1c88b4c2cf49da2a15909b3c7e86b3 1100w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?w=1650\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=682a82eb0db7cd299cde59db8412de77 1650w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-1.webp?w=2500\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=a9af9f21572d0512a501505f07203365 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-connect-to-the-mcp-server`,children:`How to connect to the MCP server`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`The MCP server is enabled by default. For self-hosted instances, use your instance’s MCP endpoint in the configurations below.`})}),`\n`,_jsxs(_components.p,{children:[`Connect your AI client to `,_jsx(_components.code,{children:`https://api.app.chainloop.dev/mcp`}),`. You can authenticate in two ways:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`User authentication:`}),` Sign in with your Chainloop account through single sign-on (SSO). Your client opens a browser where you sign in and authorize access to Chainloop.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`API token:`}),` Authenticate with a Chainloop `,_jsx(_components.a,{href:`/reference/api-tokens`,children:`API token`}),`. The token’s permissions determine what your client can access.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Follow the instructions for your client below. Select `,_jsx(_components.strong,{children:`User Auth`}),` or `,_jsx(_components.strong,{children:`API Token`}),` where both options are available.`]}),`\n`,_jsx(Heading,{level:`3`,id:`claude-code`,children:`Claude Code`}),`\n`,_jsx(_components.p,{children:`Run the command for your authentication method:`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`User Auth`,id:`user-auth`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chainloop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://api.app.chainloop.dev/mcp`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Open Claude Code. Run `,_jsx(_components.code,{children:`/mcp`}),`. Select `,_jsx(_components.strong,{children:`chainloop`}),`. Complete the browser authentication.`]})]}),_jsxs(Tab,{title:`API Token`,id:`api-token`,children:[_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`CHAINLOOP_TOKEN`}),` to your Chainloop `,_jsx(_components.a,{href:`/reference/api-tokens`,children:`API token`}),` before you run this command:`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`claude`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --transport`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` http`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chainloop`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://api.app.chainloop.dev/mcp`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:' \"Authorization: Bearer ${'}),_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:`CHAINLOOP_TOKEN`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`}\"`})]}),`\n`]})})}),_jsxs(_components.p,{children:[`Open Claude Code. Run `,_jsx(_components.code,{children:`/mcp`}),` to check the Chainloop connection.`]})]})]}),`\n`,_jsx(_components.p,{children:`Example prompt:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me info about my Chainloop organization and projects`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`For installation scopes and other options, see the `,_jsx(_components.a,{href:`https://code.claude.com/docs/en/mcp`,children:`Claude Code MCP documentation`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`codex`,children:`Codex`}),`\n`,_jsx(_components.p,{children:`Run the commands for your authentication method:`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`User Auth`,id:`user-auth-2`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chainloop`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://api.app.chainloop.dev/mcp`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` login`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chainloop`})]}),`\n`]})})}),_jsx(_components.p,{children:`Complete the browser authentication when prompted.`})]}),_jsxs(Tab,{title:`API Token`,id:`api-token-2`,children:[_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`CHAINLOOP_TOKEN`}),` to your Chainloop `,_jsx(_components.a,{href:`/reference/api-tokens`,children:`API token`}),` in the environment that starts Codex.`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`codex`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chainloop`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` https://api.app.chainloop.dev/mcp`}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:` --bearer-token-env-var`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` CHAINLOOP_TOKEN`})]}),`\n`]})})})]})]}),`\n`,_jsxs(_components.p,{children:[`Open Codex. Run `,_jsx(_components.code,{children:`/mcp`}),` to check the Chainloop connection.`]}),`\n`,_jsx(_components.p,{children:`Example prompt:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me info about my Chainloop organization and projects`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`For other configuration options, see the `,_jsx(_components.a,{href:`https://developers.openai.com/codex/mcp/`,children:`OpenAI Docs for Codex MCP`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`cursor`,children:`Cursor`}),`\n`,_jsxs(_components.p,{children:[`Use the install button or add the configuration below to `,_jsx(_components.code,{children:`.cursor/mcp.json`}),` in your project root. For all projects, use `,_jsx(_components.code,{children:`~/.cursor/mcp.json`}),` instead. If the file already contains MCP servers, add `,_jsx(_components.code,{children:`chainloop`}),` to the existing `,_jsx(_components.code,{children:`mcpServers`}),` object.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.a,{href:`https://cursor.com/en-US/install-mcp?name=chainloop\u0026config=eyJ1cmwiOiJodHRwczovL2FwaS5hcHAuY2hhaW5sb29wLmRldi9tY3AifQ%3D%3D`,children:_jsx(_components.img,{src:`https://cursor.com/deeplink/mcp-install-dark.svg`,alt:`Install MCP Server`})})}),`\n`,_jsxs(Tabs,{children:[_jsx(Tab,{title:`User Auth`,id:`user-auth-3`,children:_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chainloop\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.app.chainloop.dev/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),_jsxs(Tab,{title:`API Token`,id:`api-token-3`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcpServers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chainloop\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.app.chainloop.dev/mcp\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"headers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"Authorization\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:'\"Bearer ${env:CHAINLOOP_TOKEN}\"'})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`CHAINLOOP_TOKEN`}),` to your Chainloop `,_jsx(_components.a,{href:`/reference/api-tokens`,children:`API token`}),` in the environment that starts Cursor.`]})]})]}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Customize`}),` in Cursor’s sidebar. Enable `,_jsx(_components.strong,{children:`chainloop`}),`. For `,_jsx(_components.strong,{children:`User Auth`}),`, complete the browser authentication when prompted.`]}),`\n`,_jsx(_components.p,{children:`Example prompt:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me info about my Chainloop organization and projects`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=ca7b3b681d38cc522eddb016898a92ed`,alt:`Chainloop MCP tools in Cursor`,\"data-og-width\":`973`,width:`973`,\"data-og-height\":`177`,height:`177`,\"data-path\":`guides/img/mcp-3.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?w=280\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=8a4a9f431dbd6586e6583aebf560b596 280w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?w=560\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=67d190cc42d372c4e9da528172f45463 560w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?w=840\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=a5faeea38faa1778807400538882d871 840w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?w=1100\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=0190889942fc3fd0d138841dc1b32b91 1100w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?w=1650\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=71213f0113ae1a7b00148d8e521bbd28 1650w, https://mintcdn.com/chainloop/yJa2Iopv98OPg1FZ/guides/img/mcp-3.png?w=2500\u0026fit=max\u0026auto=format\u0026n=yJa2Iopv98OPg1FZ\u0026q=85\u0026s=e40df6e9007b502755565efb452bc65d 2500w`})}),`\n`,_jsx(Heading,{level:`3`,id:`visual-studio-code`,children:`Visual Studio Code`}),`\n`,_jsxs(_components.p,{children:[`Enable GitHub Copilot Chat. Use the `,_jsx(_components.a,{href:`vscode:mcp/install?%7B%22name%22%3A%22chainloop%22%2C%22serverUrl%22%3A%22https%3A%2F%2Fapi.app.chainloop.dev%2Fmcp%22%7D`,children:`install link`}),` or add the server manually with these steps:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open the Command Palette (`,_jsx(_components.strong,{children:`Cmd+Shift+P`}),` on macOS or `,_jsx(_components.strong,{children:`Ctrl+Shift+P`}),` on Windows/Linux). Run `,_jsx(_components.strong,{children:`MCP: Add Server`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select `,_jsx(_components.strong,{children:`HTTP (HTTP or Server-Sent Events)`}),`. Enter `,_jsx(_components.code,{children:`https://api.app.chainloop.dev/mcp`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Name the server `,_jsx(_components.code,{children:`chainloop`}),`. Choose where to save the configuration.`]}),`\n`,_jsxs(_components.li,{children:[`Run `,_jsx(_components.strong,{children:`MCP: List Servers`}),`. Select `,_jsx(_components.strong,{children:`chainloop`}),`. Select `,_jsx(_components.strong,{children:`Start Server`}),`. Complete the browser authentication when prompted.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`For self-hosted instances, use your instance’s MCP endpoint.`}),`\n`,_jsxs(_components.p,{children:[`Open Copilot Chat in `,_jsx(_components.strong,{children:`Agent`}),` mode. Enable the Chainloop tools.`]}),`\n`,_jsx(_components.p,{children:`Example prompt:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me info about my Chainloop organization and projects`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`For other configuration options, see the `,_jsx(_components.a,{href:`https://code.visualstudio.com/docs/agent-customization/mcp-servers`,children:`VS Code MCP documentation`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`opencode`,children:`OpenCode`}),`\n`,_jsxs(_components.p,{children:[`Add the following configuration to `,_jsx(_components.code,{children:`opencode.json`}),` in your project root. If the file already contains MCP servers, add `,_jsx(_components.code,{children:`chainloop`}),` to the existing `,_jsx(_components.code,{children:`mcp`}),` object.`]}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`User Auth`,id:`user-auth-4`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$schema\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://opencode.ai/config.json\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcp\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chainloop\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"remote\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.app.chainloop.dev/mcp\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(_components.p,{children:`Run this command. Complete the browser authentication when prompted:`}),_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`opencode`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` mcp`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` auth`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` chainloop`})]}),`\n`]})})})]}),_jsxs(Tab,{title:`API Token`,id:`api-token-4`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`13`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`13`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"$schema\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://opencode.ai/config.json\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"mcp\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"chainloop\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"remote\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.app.chainloop.dev/mcp\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"oauth\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#569CD6`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"headers\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#9CDCFE`,\"--shiki-dark\":`#9CDCFE`},children:` \"Authorization\"`}),_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer {env:CHAINLOOP_TOKEN}\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Set `,_jsx(_components.code,{children:`CHAINLOOP_TOKEN`}),` to your Chainloop `,_jsx(_components.a,{href:`/reference/api-tokens`,children:`API token`}),` in the environment that starts OpenCode.`]})]})]}),`\n`,_jsx(_components.p,{children:`Open OpenCode in your project.`}),`\n`,_jsx(_components.p,{children:`Example prompt:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me info about my Chainloop organization and projects. Use the chainloop tools.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`For other configuration options, see the `,_jsx(_components.a,{href:`https://opencode.ai/docs/mcp-servers/`,children:`OpenCode MCP documentation`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`claude-desktop`,children:`Claude Desktop`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.a,{href:`https://claude.ai/download`,children:`Claude Desktop`}),` supports remote MCP servers through custom connectors.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.strong,{children:`Connectors`}),` in Claude. Select `,_jsx(_components.strong,{children:`Add custom connector`}),`. For Team and Enterprise plans, an organization owner must add the connector first.`]}),`\n`,_jsxs(_components.li,{children:[`Name the connector `,_jsx(_components.code,{children:`Chainloop`}),`. Enter `,_jsx(_components.code,{children:`https://api.app.chainloop.dev/mcp`}),` as the remote MCP server URL.`]}),`\n`,_jsxs(_components.li,{children:[`Complete the connector setup. Select `,_jsx(_components.strong,{children:`Connect`}),`. Complete the browser authentication to authorize access to Chainloop.`]}),`\n`,_jsxs(_components.li,{children:[`Enable the Chainloop connector from the `,_jsx(_components.strong,{children:`+`}),` menu in your conversation.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Example prompt:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Show me info about my Chainloop organization and projects`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`For `,_jsx(_components.a,{href:`/reference/api-tokens`,children:`API token`}),` authentication, open the connector’s `,_jsx(_components.strong,{children:`Request headers`}),`. Add an `,_jsx(_components.code,{children:`Authorization`}),` header with the value `,_jsx(_components.code,{children:`Bearer \u003cyour-chainloop-api-token>`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For self-hosted instances, use your instance’s MCP endpoint. It must be reachable from Anthropic’s servers. See `,_jsx(_components.a,{href:`https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp`,children:`Claude’s custom connector documentation`}),` for setup and network requirements.`]}),`\n`,_jsx(Heading,{level:`3`,id:`claude-ai`,children:`Claude.ai`}),`\n`,_jsxs(_components.p,{children:[`If you are using Claude.ai, follow the same `,_jsx(_components.a,{href:`#claude-desktop`,children:`custom connector setup as Claude Desktop`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=f855f1bcc43bce7de25d8e2435130388`,alt:`info`,\"data-og-width\":`1246`,width:`1246`,\"data-og-height\":`942`,height:`942`,\"data-path\":`guides/img/claude-connector.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?w=280\u0026fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=4bf2dc5049f0bbecbb1ea0caea56ccd9 280w, https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?w=560\u0026fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=7d09745671a5a8d825416c78706caf2d 560w, https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?w=840\u0026fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=210eb530a2f64bcd3b9f7f3b035af60e 840w, https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?w=1100\u0026fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=73a3c1b16aa760a1bcf76695e8dcf4e4 1100w, https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?w=1650\u0026fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=4390a1a36f238373d8be8760ec792c05 1650w, https://mintcdn.com/chainloop/CxZ7jA9GjqcxH1w5/guides/img/claude-connector.png?w=2500\u0026fit=max\u0026auto=format\u0026n=CxZ7jA9GjqcxH1w5\u0026q=85\u0026s=138e776c1a595eae8263874ca79a3878 2500w`}),`\n`,_jsx(Heading,{level:`3`,id:`chatgpt`,children:`ChatGPT`}),`\n`,_jsxs(_components.p,{children:[`If you are using ChatGPT, you can connect to the Chainloop MCP server by creating a `,_jsx(_components.strong,{children:`custom connector`}),` that points to `,_jsx(_components.code,{children:`https://api.app.chainloop.dev/mcp`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"How to use the Chainloop MCP server","description":"How to configure Chainloop MCP in your AI clients and agents","og:image":"/guides/img/mcp-1.webp","href":"/guides/chainloop-mcp"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How to connect to the MCP server","slug":"how-to-connect-to-the-mcp-server","depth":2,"children":[{"title":"Claude Code","slug":"claude-code","depth":3,"children":[]},{"title":"Codex","slug":"codex","depth":3,"children":[]},{"title":"Cursor","slug":"cursor","depth":3,"children":[]},{"title":"Visual Studio Code","slug":"visual-studio-code","depth":3,"children":[]},{"title":"OpenCode","slug":"opencode","depth":3,"children":[]},{"title":"Claude Desktop","slug":"claude-desktop","depth":3,"children":[]},{"title":"Claude.ai","slug":"claude-ai","depth":3,"children":[]},{"title":"ChatGPT","slug":"chatgpt","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/chainloop/253f77efa74d603b/cioanalytics.js","/_mintlify/custom/chainloop/86afb8ad5e3e2752/banner-expiry.js","/_mintlify/custom/chainloop/6873c2c42265ece7/hubspot.js","/_mintlify/custom/chainloop/f6648ff7bc1812af/termly.js"],"subdomain":"chainloop","siteName":"Chainloop Documentation","title":"How to use the Chainloop MCP server - Chainloop Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-21T22:33:15.354Z","originalFileLocation":"guides/chainloop-mcp.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"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=\"How to configure Chainloop MCP in your AI clients and agents\">\u003cmeta data-mint-head name=\"application-name\" content=\"Chainloop Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"How to use the Chainloop MCP server - Chainloop Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"How to configure Chainloop MCP in your AI clients and agents\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Chainloop Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.chainloop.dev/guides/chainloop-mcp\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chainloop.mintlify.app/guides/img/mcp-1.webp\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"How to use the Chainloop MCP server - Chainloop Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"How to configure Chainloop MCP in your AI clients and agents\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chainloop.mintlify.app/guides/img/mcp-1.webp\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/chainloop/mw3ai7qmEaYOPNu0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Chainloop Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2D1BD2\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.chainloop.dev/guides/chainloop-mcp\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/chainloop-mcp.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.chainloop.dev/#organization\",\"name\":\"Chainloop Documentation\",\"url\":\"https://docs.chainloop.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chainloop/piBVJM34fSFTGk0R/images/logo/light.svg?fit=max\u0026auto=format\u0026n=piBVJM34fSFTGk0R\u0026q=85\u0026s=4bc355683f7e78c629ece2e28db71dff\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.chainloop.dev#website\",\"name\":\"Chainloop Documentation\",\"url\":\"https://docs.chainloop.dev\",\"publisher\":{\"@id\":\"https://docs.chainloop.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.chainloop.dev/guides/chainloop-mcp#webpage\",\"url\":\"https://docs.chainloop.dev/guides/chainloop-mcp\",\"name\":\"How to use the Chainloop MCP server\",\"description\":\"How to configure Chainloop MCP in your AI clients and agents\",\"dateModified\":\"2026-10-21T22:33:15.354Z\",\"isPartOf\":{\"@id\":\"https://docs.chainloop.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.chainloop.dev/guides/chainloop-mcp#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.chainloop.dev/guides/chainloop-mcp#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://docs.chainloop.dev/guides/evaluate-platform\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to use the Chainloop MCP server\",\"item\":\"https://docs.chainloop.dev/guides/chainloop-mcp\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.chainloop.dev/guides/chainloop-mcp#article\",\"headline\":\"How to use the Chainloop MCP server\",\"name\":\"How to use the Chainloop MCP server\",\"description\":\"How to configure Chainloop MCP in your AI clients and agents\",\"url\":\"https://docs.chainloop.dev/guides/chainloop-mcp\",\"mainEntityOfPage\":{\"@id\":\"https://docs.chainloop.dev/guides/chainloop-mcp#webpage\"},\"image\":\"https://docs.chainloop.dev/guides/img/mcp-1.webp\",\"dateModified\":\"2026-10-21T22:33:15.354Z\",\"publisher\":{\"@id\":\"https://docs.chainloop.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.chainloop.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Chainloop Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Chainloop Documentation","nav":{"global":{"anchors":[{"anchor":"Website","icon":"globe","href":"https://chainloop.dev/"},{"anchor":"Blog","icon":"newspaper","href":"https://chainloop.dev/blog"},{"anchor":"Get Help","icon":"headset","href":"https://help.chainloop.dev"}]},"tabs":[{"tab":"Documentation","groups":[{"group":" ","pages":[{"title":"Welcome to Chainloop","href":"/welcome"},{"title":"Quickstart","href":"/quickstart"},{"title":"AI Sessions Quickstart","href":"/ai-sessions"}]},{"group":"Getting Started","pages":[{"title":"Overview","href":"/get-started/overview"},{"title":"Setup","href":"/get-started/setup"},{"title":"Your First Attestation","href":"/get-started/first-attestation"},{"title":"Set Metadata expectations","href":"/get-started/adding-contract"},{"title":"Set Policies expectations","href":"/get-started/adding-policies"},{"title":"Product and Project Compliance","href":"/get-started/add-frameworks"},{"title":"Next Steps","href":"/get-started/next-steps"}]},{"group":"Concepts","pages":[{"title":"Overview","href":"/concepts/overview"},{"title":"Attestations","href":"/concepts/attestations"},{"title":"Workflows","href":"/concepts/workflows"},{"title":"Workflow Templates","href":"/concepts/workflow-templates"},{"title":"Contracts","href":"/concepts/contracts"},{"title":"Material Types","href":"/concepts/material-types"},{"title":"AI Coding Sessions","href":"/concepts/ai-coding-sessions"},{"title":"AI Code Security Analysis","href":"/concepts/ai-code-analysis"},{"title":"Policies","href":"/concepts/policies"},{"title":"Control and Quality Gates","href":"/concepts/control-gates"},{"title":"Policy Groups","href":"/concepts/policy-groups"},{"title":"Projects and Versions","href":"/concepts/projects-versions"},{"title":"Products","href":"/concepts/products"},{"title":"Business Units","href":"/concepts/business-units"},{"title":"Compliance Frameworks and Requirements","href":"/concepts/compliance-frameworks"},{"title":"Vulnerability Management and Risk Assessment","href":"/concepts/vulnerability-management"},{"title":"Integrations","href":"/concepts/integrations"},{"title":"Notifications","href":"/concepts/notifications"},{"title":"Issue Trackers","href":"/concepts/issue-trackers"},{"title":"Content Addressable Storage (CAS) backend","href":"/concepts/cas-backend"},{"title":"Environments and Logical Environments","href":"/concepts/environments"},{"title":"Artifact Deployment Tracking","href":"/concepts/deployments"},{"title":"Ask Chainloop","href":"/concepts/ask-chainloop"}]},{"group":"Guides","pages":[{"group":"Deployment","pages":[{"title":"Evaluate Chainloop Platform","href":"/guides/evaluate-platform"},{"title":"Enterprise edition","href":"/guides/deployment/chainloop-ee"},{"title":"Open Source Evidence Store","href":"/guides/deployment/oss"},{"group":"Configuration Guides","pages":[{"title":"Migrating to chainloop-ee chart","href":"/guides/deployment/guides/migration-guide"},{"title":"Use Azure KeyVault as secrets backend","href":"/guides/deployment/guides/azure-keyvault"},{"title":"Use Ory Hydra as OIDC (OpenID Connect) provider","href":"/guides/deployment/guides/hydra-oauth2"},{"title":"Use Active Directory as Single Sign-On provider","href":"/guides/deployment/guides/oidc-ad"},{"title":"Configure your Identity Provider for SAML SSO","href":"/guides/deployment/guides/saml-idp"},{"title":"Use Keyfactor EJBCA to generate ephemeral signing certificates","href":"/guides/deployment/guides/ejbca"},{"title":"Automatic provisioning of user roles and groups","href":"/guides/deployment/guides/provisioning"},{"title":"Restrict organization creation to specific users","href":"/guides/deployment/guides/restrict-org-creation"},{"title":"Organization provisioning with API tokens","href":"/guides/deployment/guides/org-provisioning"},{"title":"Managed CAS with AWS S3 Access Points","href":"/guides/deployment/guides/managed-cas"},{"title":"GitHub App (Self-hosted)","href":"/guides/deployment/guides/github-app"},{"title":"GitLab (Self-managed)","href":"/guides/deployment/guides/gitlab"}]}]},{"title":"How to write custom policies","href":"/guides/custom-policies"},{"title":"How to run LLM-driven policies","href":"/guides/llm-policies"},{"title":"Declarative Resource Management","href":"/guides/declarative-resource-management"},{"title":"Repository Integration","href":"/guides/repository-integration"},{"title":"Connect GitHub \u0026 GitLab","href":"/guides/connect-repository"},{"title":"Using PR Policies as Control Gates","href":"/guides/pr-policies-control-gate"},{"title":"Set up Vulnerability Management in your project","href":"/guides/vulnerability-management"},{"title":"Generate and Continuously Scan SBOMs","href":"/guides/generate-and-scan-sboms"},{"group":"WASM Policies","pages":[{"title":"Writing WASM Policies","href":"/guides/wasm-policies/overview"},{"title":"Go SDK for WASM Policies","href":"/guides/wasm-policies/go-sdk"},{"title":"JavaScript SDK for WASM Policies","href":"/guides/wasm-policies/javascript-sdk"},{"title":"WASM Policy Examples \u0026 Patterns","href":"/guides/wasm-policies/examples"}]},{"title":"Send SBOMs to Dependency-Track","href":"/guides/dependency-track"},{"group":"Track Compliance","pages":[{"title":"EU Cyber Resilience Act (CRA)","href":"/guides/cra"},{"title":"SLSA Levels","href":"/guides/slsa"},{"title":"SSDF","href":"/guides/ssdf"}]},{"title":"Use Dagger With Chainloop","description":null,"href":"/guides/dagger-integration"},{"title":"How to use the Chainloop MCP server","href":"/guides/chainloop-mcp"},{"title":"How to collect AI agent configuration","description":"Automatically gather agentic development configuration files as attestation evidence","href":"/guides/ai-config-collector"},{"title":"How to record AI coding sessions","href":"/guides/chainloop-trace"},{"title":"How to record AI coding sessions in a Docker Sandbox","href":"/guides/docker-sandboxes"},{"title":"Keyless Attestations in GitHub","href":"/guides/github-keyless"},{"title":"Keyless Attestations in GitLab","href":"/guides/gitlab-keyless"},{"title":"Use Keyfactor SignServer for attestation signing","href":"/guides/signserver"},{"title":"How to monitor your CI/CD systems with Chainloop and Prometheus","href":"/guides/prometheus"}]},{"group":"References","pages":[{"group":"Compliance Frameworks","pages":[{"title":"EU Cyber Resilience Act (CRA)","mode":"wide","href":"/reference/cyber-resilience-act"},{"title":"SLSA Framework","mode":"wide","href":"/reference/slsa-provenance"},{"title":"SSDF","mode":"wide","href":"/reference/ssdf"}]},{"title":"Role Based Access Control","href":"/reference/rbac"},{"title":"Signing and Verification","mode":"wide","href":"/reference/signing"},{"title":"Model Context Protocol (MCP) Server","href":"/reference/mcp-server"},{"title":"Audit Logs","href":"/reference/audit-logs"},{"title":"Authentication Methods","href":"/reference/api-tokens"},{"title":"CI/CD Runner Context","href":"/reference/runner-context"},{"title":"GitHub Permissions","href":"/reference/github-permissions"},{"title":"Built-in Scanners","href":"/reference/scanners"},{"title":"API","href":"/reference/api"},{"title":"SCM Protection Policies","href":"/reference/branch-protection-policies"},{"title":"Policies","href":"/reference/policies"},{"title":"Builtin functions for Rego policies","href":"/reference/builtin-functions"},{"title":"LLM Support","href":"/reference/llm-support"},{"title":"AI Session Score","href":"/reference/ai-score"}]},{"group":"Misc","pages":[{"title":"Frequently Asked Questions","href":"/misc/faq"}]}]},{"tab":"Reference","menu":[{"item":"CLI Reference","icon":"terminal","pages":[{"title":"CLI Reference","href":"/cli/installation"}]},{"item":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api-reference/overview"}]}],"pages":[{"title":"Reference","href":"/cli/installation"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]}]},"title":"How to use the Chainloop MCP server - Chainloop Documentation","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":["a74be98ba7","07c022d89b"],"chunks":["zoom-image-lightbox-B0E5HDf_.js","lightbox-handle-r17bVUz3.js","Frame-B0bJ23PC.js","DynamicMarkdown-UGQuxDKp.js"]}