[{"data":1,"prerenderedAt":1099},["ShallowReactive",2],{"docs-navigation":3,"-docs-guides-ai-agents":410,"-docs-guides-ai-agents-surround":1094},[4,19,166,319,333,397],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":18},"Overview","i-lucide-compass","\u002Fdocs\u002Foverview","docs\u002F1.overview",[10,14],{"title":11,"path":12,"stem":13},"Introduction","\u002Fdocs\u002Foverview\u002Fintroduction","docs\u002F1.overview\u002F1.introduction",{"title":15,"path":16,"stem":17},"JFrog compatibility","\u002Fdocs\u002Foverview\u002Fjfrog-compatibility","docs\u002F1.overview\u002F2.jfrog-compatibility",false,{"title":20,"icon":21,"path":22,"stem":23,"children":24,"page":18},"Installation","i-lucide-download","\u002Fdocs\u002Finstallation","docs\u002F2.installation",[25,29,43,68,108,112,116,162],{"title":26,"path":27,"stem":28},"Choosing a method","\u002Fdocs\u002Finstallation\u002Foverview","docs\u002F2.installation\u002F1.overview",{"title":30,"icon":31,"path":32,"stem":33,"children":34,"page":18},"Single binary","i-lucide-terminal","\u002Fdocs\u002Finstallation\u002Fsingle-binary","docs\u002F2.installation\u002F2.single-binary",[35,39],{"title":36,"path":37,"stem":38},"Quick start","\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Fquick-start","docs\u002F2.installation\u002F2.single-binary\u002F1.quick-start",{"title":40,"path":41,"stem":42},"Limits and backups","\u002Fdocs\u002Finstallation\u002Fsingle-binary\u002Foperations","docs\u002F2.installation\u002F2.single-binary\u002F2.operations",{"title":44,"icon":45,"path":46,"stem":47,"children":48,"page":18},"Docker","i-simple-icons-docker","\u002Fdocs\u002Finstallation\u002Fdocker","docs\u002F2.installation\u002F3.docker",[49,52,56,60,64],{"title":36,"path":50,"stem":51},"\u002Fdocs\u002Finstallation\u002Fdocker\u002Fquick-start","docs\u002F2.installation\u002F3.docker\u002F1.quick-start",{"title":53,"path":54,"stem":55},"PostgreSQL and S3","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fpostgresql-and-s3","docs\u002F2.installation\u002F3.docker\u002F2.postgresql-and-s3",{"title":57,"path":58,"stem":59},"Docker Compose","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose","docs\u002F2.installation\u002F3.docker\u002F3.compose",{"title":61,"path":62,"stem":63},"Compose settings","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose-settings","docs\u002F2.installation\u002F3.docker\u002F4.compose-settings",{"title":65,"path":66,"stem":67},"Compose with another object store","\u002Fdocs\u002Finstallation\u002Fdocker\u002Fcompose-other-object-storage","docs\u002F2.installation\u002F3.docker\u002F5.compose-other-object-storage",{"title":69,"icon":70,"path":71,"stem":72,"children":73,"page":18},"Kubernetes","i-simple-icons-kubernetes","\u002Fdocs\u002Finstallation\u002Fkubernetes","docs\u002F2.installation\u002F4.kubernetes",[74,77,80,84,88,92,96,100,104],{"title":5,"path":75,"stem":76},"\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Foverview","docs\u002F2.installation\u002F4.kubernetes\u002F1.overview",{"title":36,"path":78,"stem":79},"\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fquick-start","docs\u002F2.installation\u002F4.kubernetes\u002F2.quick-start",{"title":81,"path":82,"stem":83},"External PostgreSQL","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexternal-postgresql","docs\u002F2.installation\u002F4.kubernetes\u002F3.external-postgresql",{"title":85,"path":86,"stem":87},"External object storage","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexternal-object-storage","docs\u002F2.installation\u002F4.kubernetes\u002F4.external-object-storage",{"title":89,"path":90,"stem":91},"Exposing Relic","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fexposing","docs\u002F2.installation\u002F4.kubernetes\u002F5.exposing",{"title":93,"path":94,"stem":95},"Values","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fvalues","docs\u002F2.installation\u002F4.kubernetes\u002F6.values",{"title":97,"path":98,"stem":99},"Upgrades and removal","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fupgrades","docs\u002F2.installation\u002F4.kubernetes\u002F7.upgrades",{"title":101,"path":102,"stem":103},"Hardening and probes","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fhardening","docs\u002F2.installation\u002F4.kubernetes\u002F8.hardening",{"title":105,"path":106,"stem":107},"Monitoring","\u002Fdocs\u002Finstallation\u002Fkubernetes\u002Fmonitoring","docs\u002F2.installation\u002F4.kubernetes\u002F9.monitoring",{"title":109,"path":110,"stem":111},"Cloudflare","\u002Fdocs\u002Finstallation\u002Fcloudflare","docs\u002F2.installation\u002F5.cloudflare",{"title":113,"path":114,"stem":115},"Configuration reference","\u002Fdocs\u002Finstallation\u002Fconfiguration","docs\u002F2.installation\u002F6.configuration",{"title":117,"icon":118,"path":119,"stem":120,"children":121,"page":18},"Storage","i-lucide-hard-drive","\u002Fdocs\u002Finstallation\u002Fstorage","docs\u002F2.installation\u002F7.storage",[122,126,130,134,138,142,146,150,154,158],{"title":123,"path":124,"stem":125},"Storage overview","\u002Fdocs\u002Finstallation\u002Fstorage\u002Foverview","docs\u002F2.installation\u002F7.storage\u002F1.overview",{"title":127,"path":128,"stem":129},"Azure Blob Storage","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fazure-blob-storage","docs\u002F2.installation\u002F7.storage\u002F10.azure-blob-storage",{"title":131,"path":132,"stem":133},"SeaweedFS","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fseaweedfs","docs\u002F2.installation\u002F7.storage\u002F2.seaweedfs",{"title":135,"path":136,"stem":137},"Amazon S3","\u002Fdocs\u002Finstallation\u002Fstorage\u002Famazon-s3","docs\u002F2.installation\u002F7.storage\u002F3.amazon-s3",{"title":139,"path":140,"stem":141},"Cloudflare R2","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fcloudflare-r2","docs\u002F2.installation\u002F7.storage\u002F4.cloudflare-r2",{"title":143,"path":144,"stem":145},"MinIO","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fminio","docs\u002F2.installation\u002F7.storage\u002F5.minio",{"title":147,"path":148,"stem":149},"Google Cloud Storage","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fgoogle-cloud-storage","docs\u002F2.installation\u002F7.storage\u002F6.google-cloud-storage",{"title":151,"path":152,"stem":153},"Backblaze B2","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fbackblaze-b2","docs\u002F2.installation\u002F7.storage\u002F7.backblaze-b2",{"title":155,"path":156,"stem":157},"Other S3-compatible services","\u002Fdocs\u002Finstallation\u002Fstorage\u002Fother","docs\u002F2.installation\u002F7.storage\u002F8.other",{"title":159,"path":160,"stem":161},"Filesystem","\u002Fdocs\u002Finstallation\u002Fstorage\u002Ffilesystem","docs\u002F2.installation\u002F7.storage\u002F9.filesystem",{"title":163,"path":164,"stem":165},"Development","\u002Fdocs\u002Finstallation\u002Fdevelopment","docs\u002F2.installation\u002F8.development",{"title":167,"icon":168,"path":169,"stem":170,"children":171,"page":18},"Guides","i-lucide-book-open","\u002Fdocs\u002Fguides","docs\u002F3.guides",[172,176,180,254,296,300,303,307,311,315],{"title":173,"path":174,"stem":175},"Repositories","\u002Fdocs\u002Fguides\u002Frepositories","docs\u002F3.guides\u002F1.repositories",{"title":177,"path":178,"stem":179},"Replication","\u002Fdocs\u002Fguides\u002Freplication","docs\u002F3.guides\u002F10.replication",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":18},"Package types","i-lucide-package","\u002Fdocs\u002Fguides\u002Fpackage-types","docs\u002F3.guides\u002F2.package-types",[186,190,194,198,202,206,210,214,218,222,226,230,234,238,242,246,250],{"title":187,"path":188,"stem":189},"npm, yarn and pnpm","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnpm","docs\u002F3.guides\u002F2.package-types\u002F01.npm",{"title":191,"path":192,"stem":193},"Maven and Gradle","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fmaven-gradle","docs\u002F3.guides\u002F2.package-types\u002F02.maven-gradle",{"title":195,"path":196,"stem":197},"Docker and OCI","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fdocker","docs\u002F3.guides\u002F2.package-types\u002F03.docker",{"title":199,"path":200,"stem":201},"Go","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fgo","docs\u002F3.guides\u002F2.package-types\u002F04.go",{"title":203,"path":204,"stem":205},"PyPI","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fpypi","docs\u002F3.guides\u002F2.package-types\u002F05.pypi",{"title":207,"path":208,"stem":209},"Helm","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fhelm","docs\u002F3.guides\u002F2.package-types\u002F06.helm",{"title":211,"path":212,"stem":213},"NuGet","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnuget","docs\u002F3.guides\u002F2.package-types\u002F07.nuget",{"title":215,"path":216,"stem":217},"RubyGems","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Frubygems","docs\u002F3.guides\u002F2.package-types\u002F08.rubygems",{"title":219,"path":220,"stem":221},"Cargo","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fcargo","docs\u002F3.guides\u002F2.package-types\u002F09.cargo",{"title":223,"path":224,"stem":225},"Conan","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fconan","docs\u002F3.guides\u002F2.package-types\u002F10.conan",{"title":227,"path":228,"stem":229},"Terraform and OpenTofu","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fterraform","docs\u002F3.guides\u002F2.package-types\u002F11.terraform",{"title":231,"path":232,"stem":233},"Hugging Face","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fhugging-face","docs\u002F3.guides\u002F2.package-types\u002F12.hugging-face",{"title":235,"path":236,"stem":237},"Generic files","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fgeneric","docs\u002F3.guides\u002F2.package-types\u002F13.generic",{"title":239,"path":240,"stem":241},"RPM","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Frpm","docs\u002F3.guides\u002F2.package-types\u002F14.rpm",{"title":243,"path":244,"stem":245},"Debian","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fdebian","docs\u002F3.guides\u002F2.package-types\u002F15.debian",{"title":247,"path":248,"stem":249},"Alpine","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Falpine","docs\u002F3.guides\u002F2.package-types\u002F16.alpine",{"title":251,"path":252,"stem":253},"Nix","\u002Fdocs\u002Fguides\u002Fpackage-types\u002Fnix","docs\u002F3.guides\u002F2.package-types\u002F17.nix",{"title":255,"icon":256,"path":257,"stem":258,"children":259,"page":18},"Security","i-lucide-shield","\u002Fdocs\u002Fguides\u002Fsecurity","docs\u002F3.guides\u002F3.security",[260,264,268,272,276,280,284,288,292],{"title":261,"path":262,"stem":263},"Permissions","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fpermissions","docs\u002F3.guides\u002F3.security\u002F1.permissions",{"title":265,"path":266,"stem":267},"LDAP","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fldap","docs\u002F3.guides\u002F3.security\u002F2.ldap",{"title":269,"path":270,"stem":271},"Access tokens","\u002Fdocs\u002Fguides\u002Fsecurity\u002Ftokens","docs\u002F3.guides\u002F3.security\u002F3.tokens",{"title":273,"path":274,"stem":275},"Relic Scan","\u002Fdocs\u002Fguides\u002Fsecurity\u002Frelic-scan","docs\u002F3.guides\u002F3.security\u002F4.relic-scan",{"title":277,"path":278,"stem":279},"CVE intelligence","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fcve-intelligence","docs\u002F3.guides\u002F3.security\u002F5.cve-intelligence",{"title":281,"path":282,"stem":283},"Audit log","\u002Fdocs\u002Fguides\u002Fsecurity\u002Faudit-log","docs\u002F3.guides\u002F3.security\u002F6.audit-log",{"title":285,"path":286,"stem":287},"Single sign-on","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fsingle-sign-on","docs\u002F3.guides\u002F3.security\u002F7.single-sign-on",{"title":289,"path":290,"stem":291},"SCIM provisioning","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fscim","docs\u002F3.guides\u002F3.security\u002F8.scim",{"title":293,"path":294,"stem":295},"Workload identities","\u002Fdocs\u002Fguides\u002Fsecurity\u002Fworkload-identities","docs\u002F3.guides\u002F3.security\u002F9.workload-identities",{"title":297,"path":298,"stem":299},"Operations","\u002Fdocs\u002Fguides\u002Foperations","docs\u002F3.guides\u002F4.operations",{"title":105,"path":301,"stem":302},"\u002Fdocs\u002Fguides\u002Fmonitoring","docs\u002F3.guides\u002F5.monitoring",{"title":304,"path":305,"stem":306},"Metrics reference","\u002Fdocs\u002Fguides\u002Fmetrics-reference","docs\u002F3.guides\u002F6.metrics-reference",{"title":308,"path":309,"stem":310},"Webhooks","\u002Fdocs\u002Fguides\u002Fwebhooks","docs\u002F3.guides\u002F7.webhooks",{"title":312,"path":313,"stem":314},"Projects","\u002Fdocs\u002Fguides\u002Fprojects","docs\u002F3.guides\u002F8.projects",{"title":316,"path":317,"stem":318},"AI agents","\u002Fdocs\u002Fguides\u002Fai-agents","docs\u002F3.guides\u002F9.ai-agents",{"title":320,"icon":321,"path":322,"stem":323,"children":324,"page":18},"API","i-lucide-braces","\u002Fdocs\u002Fapi","docs\u002F4.api",[325,329],{"title":326,"path":327,"stem":328},"API usage","\u002Fdocs\u002Fapi\u002Foverview","docs\u002F4.api\u002F1.overview",{"title":330,"path":331,"stem":332},"Relic API","\u002Fdocs\u002Fapi\u002Frelic-api","docs\u002F4.api\u002F2.relic-api",{"title":334,"icon":31,"path":335,"stem":336,"children":337,"page":18},"CLI","\u002Fdocs\u002Fcli","docs\u002F5.cli",[338,341,345,349,353,357,361,365,369,373,377,381,385,389,393],{"title":5,"path":339,"stem":340},"\u002Fdocs\u002Fcli\u002Foverview","docs\u002F5.cli\u002F01.overview",{"title":342,"path":343,"stem":344},"Sign in and contexts","\u002Fdocs\u002Fcli\u002Fsign-in","docs\u002F5.cli\u002F02.sign-in",{"title":346,"path":347,"stem":348},"Resources","\u002Fdocs\u002Fcli\u002Fresources","docs\u002F5.cli\u002F03.resources",{"title":350,"path":351,"stem":352},"apply, diff and delete","\u002Fdocs\u002Fcli\u002Fapply","docs\u002F5.cli\u002F04.apply",{"title":354,"path":355,"stem":356},"Artifacts","\u002Fdocs\u002Fcli\u002Ffiles","docs\u002F5.cli\u002F05.files",{"title":358,"path":359,"stem":360},"Server, API and tokens","\u002Fdocs\u002Fcli\u002Fplatform","docs\u002F5.cli\u002F06.platform",{"title":362,"path":363,"stem":364},"Builds and images","\u002Fdocs\u002Fcli\u002Fbuilds","docs\u002F5.cli\u002F07.builds",{"title":366,"path":367,"stem":368},"Scanning and auditing","\u002Fdocs\u002Fcli\u002Fsecurity","docs\u002F5.cli\u002F08.security",{"title":370,"path":371,"stem":372},"Releases","\u002Fdocs\u002Fcli\u002Freleases","docs\u002F5.cli\u002F09.releases",{"title":374,"path":375,"stem":376},"Evidence","\u002Fdocs\u002Fcli\u002Fevidence","docs\u002F5.cli\u002F10.evidence",{"title":378,"path":379,"stem":380},"Package managers","\u002Fdocs\u002Fcli\u002Fpackage-managers","docs\u002F5.cli\u002F11.package-managers",{"title":382,"path":383,"stem":384},"Scan reports and VEX","\u002Fdocs\u002Fcli\u002Freports-and-vex","docs\u002F5.cli\u002F12.reports-and-vex",{"title":386,"path":387,"stem":388},"Migrating from Artifactory","\u002Fdocs\u002Fcli\u002Fimport","docs\u002F5.cli\u002F13.import",{"title":390,"path":391,"stem":392},"Database","\u002Fdocs\u002Fcli\u002Fdatabase","docs\u002F5.cli\u002F14.database",{"title":394,"path":395,"stem":396},"Machine setup","\u002Fdocs\u002Fcli\u002Fsetup","docs\u002F5.cli\u002F15.setup",{"title":398,"icon":399,"path":400,"stem":401,"children":402,"page":18},"SDK","i-lucide-boxes","\u002Fdocs\u002Fsdk","docs\u002F6.sdk",[403,406],{"title":5,"path":404,"stem":405},"\u002Fdocs\u002Fsdk\u002Foverview","docs\u002F6.sdk\u002F1.overview",{"title":407,"path":408,"stem":409},"Relic API clients","\u002Fdocs\u002Fsdk\u002Frelic-api-clients","docs\u002F6.sdk\u002F2.relic-api-clients",{"id":411,"title":316,"body":412,"description":1087,"extension":1088,"links":1089,"meta":1090,"navigation":1091,"path":317,"seo":1092,"stem":318,"__hash__":1093},"docs\u002Fdocs\u002F3.guides\u002F9.ai-agents.md",{"type":413,"value":414,"toc":1081},"minimark",[415,419,510,515,521,549,556,659,663,674,709,712,836,840,843,867,883,888,901,904,907,930,934,985,993,1002,1005,1026,1029,1047,1050,1066,1069,1077],[416,417,418],"p",{},"Relic serves the Model Context Protocol (MCP). Its read-only tools call the\nRelic API as you, so an agent sees only what you may read.",[420,421,422,435],"table",{},[423,424,425],"thead",{},[426,427,428,432],"tr",{},[429,430,431],"th",{},"Tool",[429,433,434],{},"Answers",[436,437,438,450,460,470,480,490,500],"tbody",{},[426,439,440,447],{},[441,442,443],"td",{},[444,445,446],"code",{},"search_artifacts",[441,448,449],{},"files whose name contains a text",[426,451,452,457],{},[441,453,454],{},[444,455,456],{},"artifact_details",[441,458,459],{},"a file's size, checksums, properties, builds and scan",[426,461,462,467],{},[441,463,464],{},[444,465,466],{},"artifact_findings",[441,468,469],{},"a file's vulnerabilities, malicious packages, secrets and misconfigurations",[426,471,472,477],{},[441,473,474],{},[444,475,476],{},"explain_download",[441,478,479],{},"whether a download is blocked, and by what",[426,481,482,487],{},[441,483,484],{},[444,485,486],{},"list_repositories",[441,488,489],{},"the repositories, with their class and format",[426,491,492,497],{},[441,493,494],{},[444,495,496],{},"repository_setup",[441,498,499],{},"the URLs a client uses for a repository",[426,501,502,507],{},[441,503,504],{},[444,505,506],{},"package_allowed",[441,508,509],{},"whether a package version may be added as a dependency",[511,512,514],"h2",{"id":513},"over-standard-input-and-output","Over standard input and output",[416,516,517,520],{},[444,518,519],{},"relic mcp"," runs as a subprocess of the agent, with the current context's\ncredentials. Sign in first:",[522,523,528],"pre",{"className":524,"code":525,"language":526,"meta":527,"style":527},"language-bash shiki shiki-themes material-theme-lighter github-light-default github-dark-default","relic auth login https:\u002F\u002Frelic.example.com\n","bash","",[444,529,530],{"__ignoreMap":527},[531,532,535,539,543,546],"span",{"class":533,"line":534},"line",1,[531,536,538],{"class":537},"seIyd","relic",[531,540,542],{"class":541},"sasMN"," auth",[531,544,545],{"class":541}," login",[531,547,548],{"class":541}," https:\u002F\u002Frelic.example.com\n",[416,550,551,552,555],{},"Then register the command, for example in a project's ",[444,553,554],{},".mcp.json",":",[522,557,561],{"className":558,"code":559,"language":560,"meta":527,"style":527},"language-json shiki shiki-themes material-theme-lighter github-light-default github-dark-default","{\n  \"mcpServers\": {\n    \"relic\": {\"command\": \"relic\", \"args\": [\"mcp\"]}\n  }\n}\n","json",[444,562,563,569,588,647,653],{"__ignoreMap":527},[531,564,565],{"class":533,"line":534},[531,566,568],{"class":567},"sWneD","{\n",[531,570,572,576,580,583,585],{"class":533,"line":571},2,[531,573,575],{"class":574},"sK3rv","  \"",[531,577,579],{"class":578},"s10kg","mcpServers",[531,581,582],{"class":574},"\"",[531,584,555],{"class":567},[531,586,587],{"class":567}," {\n",[531,589,591,594,597,599,601,604,606,610,612,614,618,620,622,625,627,630,632,634,637,639,642,644],{"class":533,"line":590},3,[531,592,593],{"class":574},"    \"",[531,595,538],{"class":596},"st6vK",[531,598,582],{"class":574},[531,600,555],{"class":567},[531,602,603],{"class":567}," {",[531,605,582],{"class":574},[531,607,609],{"class":608},"syaID","command",[531,611,582],{"class":574},[531,613,555],{"class":567},[531,615,617],{"class":616},"sX5mu"," \"",[531,619,538],{"class":541},[531,621,582],{"class":616},[531,623,624],{"class":567},",",[531,626,617],{"class":574},[531,628,629],{"class":608},"args",[531,631,582],{"class":574},[531,633,555],{"class":567},[531,635,636],{"class":567}," [",[531,638,582],{"class":616},[531,640,641],{"class":541},"mcp",[531,643,582],{"class":616},[531,645,646],{"class":567},"]}\n",[531,648,650],{"class":533,"line":649},4,[531,651,652],{"class":567},"  }\n",[531,654,656],{"class":533,"line":655},5,[531,657,658],{"class":567},"}\n",[511,660,662],{"id":661},"over-http","Over HTTP",[416,664,665,666,669,670,673],{},"The server serves streamable HTTP at ",[444,667,668],{},"\u002Fmcp",". It needs an access token as\n",[444,671,672],{},"Authorization: Bearer \u003Ctoken>",". Create one:",[522,675,677],{"className":524,"code":676,"language":526,"meta":527,"style":527},"relic auth token create --description \"coding agent\" --expires-days 30\n",[444,678,679],{"__ignoreMap":527},[531,680,681,683,685,688,691,695,697,700,702,705],{"class":533,"line":534},[531,682,538],{"class":537},[531,684,542],{"class":541},[531,686,687],{"class":541}," token",[531,689,690],{"class":541}," create",[531,692,694],{"class":693},"smky3"," --description",[531,696,617],{"class":616},[531,698,699],{"class":541},"coding agent",[531,701,582],{"class":616},[531,703,704],{"class":693}," --expires-days",[531,706,708],{"class":707},"sIO_5"," 30\n",[416,710,711],{},"Then point the agent at the endpoint:",[522,713,715],{"className":558,"code":714,"language":560,"meta":527,"style":527},"{\n  \"mcpServers\": {\n    \"relic\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Frelic.example.com\u002Fmcp\",\n      \"headers\": {\"Authorization\": \"Bearer ${RELIC_TOKEN}\"}\n    }\n  }\n}\n",[444,716,717,721,733,745,767,787,820,826,831],{"__ignoreMap":527},[531,718,719],{"class":533,"line":534},[531,720,568],{"class":567},[531,722,723,725,727,729,731],{"class":533,"line":571},[531,724,575],{"class":574},[531,726,579],{"class":578},[531,728,582],{"class":574},[531,730,555],{"class":567},[531,732,587],{"class":567},[531,734,735,737,739,741,743],{"class":533,"line":590},[531,736,593],{"class":574},[531,738,538],{"class":596},[531,740,582],{"class":574},[531,742,555],{"class":567},[531,744,587],{"class":567},[531,746,747,750,753,755,757,759,762,764],{"class":533,"line":649},[531,748,749],{"class":574},"      \"",[531,751,752],{"class":608},"type",[531,754,582],{"class":574},[531,756,555],{"class":567},[531,758,617],{"class":616},[531,760,761],{"class":541},"http",[531,763,582],{"class":616},[531,765,766],{"class":567},",\n",[531,768,769,771,774,776,778,780,783,785],{"class":533,"line":655},[531,770,749],{"class":574},[531,772,773],{"class":608},"url",[531,775,582],{"class":574},[531,777,555],{"class":567},[531,779,617],{"class":616},[531,781,782],{"class":541},"https:\u002F\u002Frelic.example.com\u002Fmcp",[531,784,582],{"class":616},[531,786,766],{"class":567},[531,788,790,792,795,797,799,801,803,807,809,811,813,816,818],{"class":533,"line":789},6,[531,791,749],{"class":574},[531,793,794],{"class":608},"headers",[531,796,582],{"class":574},[531,798,555],{"class":567},[531,800,603],{"class":567},[531,802,582],{"class":574},[531,804,806],{"class":805},"smKOL","Authorization",[531,808,582],{"class":574},[531,810,555],{"class":567},[531,812,617],{"class":616},[531,814,815],{"class":541},"Bearer ${RELIC_TOKEN}",[531,817,582],{"class":616},[531,819,658],{"class":567},[531,821,823],{"class":533,"line":822},7,[531,824,825],{"class":567},"    }\n",[531,827,829],{"class":533,"line":828},8,[531,830,652],{"class":567},[531,832,834],{"class":533,"line":833},9,[531,835,658],{"class":567},[511,837,839],{"id":838},"routing-an-agents-dependencies","Routing an agent's dependencies",[416,841,842],{},"In a project directory, point the package manager at Relic and tell agents to\ncheck dependencies first:",[522,844,846],{"className":524,"code":845,"language":526,"meta":527,"style":527},"relic package setup npm npm-virtual --agent\n",[444,847,848],{"__ignoreMap":527},[531,849,850,852,855,858,861,864],{"class":533,"line":534},[531,851,538],{"class":537},[531,853,854],{"class":541}," package",[531,856,857],{"class":541}," setup",[531,859,860],{"class":541}," npm",[531,862,863],{"class":541}," npm-virtual",[531,865,866],{"class":693}," --agent\n",[416,868,869,870,873,874,876,877,879,880,882],{},"This writes the client's configuration to your user files (the token stays out\nof the project), adds a section to ",[444,871,872],{},"AGENTS.md"," telling agents to use only the\nrepository and ask ",[444,875,506],{}," first, and registers ",[444,878,519],{}," in\n",[444,881,554],{},". Other content of both files is kept.",[416,884,885,887],{},[444,886,506],{}," refuses a version when:",[889,890,891,895,898],"ul",{},[892,893,894],"li",{},"the malicious package catalog lists it;",[892,896,897],{},"the repository's npm or PyPI metadata leaves it out (cooling down,\nquarantined, blocked or absent);",[892,899,900],{},"a stored finding, end of life, deprecation or lack of maintenance violates a\nblocking rule of a watch covering the repository (ignore rules apply).",[416,902,903],{},"A package URL type the repository's format cannot hold is an error; a generic\nrepository takes any type. The answer also lists the version's operational\nrisks.",[416,905,906],{},"Run the same check from the command line; it exits 1 when refused:",[522,908,910],{"className":524,"code":909,"language":526,"meta":527,"style":527},"relic package check pkg:npm\u002Flodash@4.17.21 --repository npm-virtual\n",[444,911,912],{"__ignoreMap":527},[531,913,914,916,918,921,924,927],{"class":533,"line":534},[531,915,538],{"class":537},[531,917,854],{"class":541},[531,919,920],{"class":541}," check",[531,922,923],{"class":541}," pkg:npm\u002Flodash@4.17.21",[531,925,926],{"class":693}," --repository",[531,928,929],{"class":541}," npm-virtual\n",[511,931,933],{"id":932},"mcp-server-and-skill-registries","MCP server and skill registries",[420,935,936,946],{},[423,937,938],{},[426,939,940,943],{},[429,941,942],{},"Format",[429,944,945],{},"Holds",[436,947,948,964],{},[426,949,950,954],{},[441,951,952],{},[444,953,641],{},[441,955,956,957,960,961],{},"MCP registry ",[444,958,959],{},"server.json"," files, served at ",[444,962,963],{},"\u002Fapi\u002Fmcp\u002F\u003Crepository>\u002Fv0\u002Fservers",[426,965,966,971],{},[441,967,968],{},[444,969,970],{},"skills",[441,972,973,974,977,978,981,982],{},"zip files with a ",[444,975,976],{},"SKILL.md"," whose front matter gives ",[444,979,980],{},"name"," and ",[444,983,984],{},"description",[416,986,987,988,992],{},"An entry is listed and served only after an administrator approves its\ncontent, in ",[989,990,991],"strong",{},"Agent registry"," in the UI or with the CLI. Until then, every route\n(the files API, the Artifactory®-compatible API) refuses to download, copy or\nmove it, except for administrators and viewers. New content needs a new\napproval. Relic Scan scans skill bundles like any zip file.",[416,994,995,996,998,999,1001],{},"A file the registry cannot read (invalid JSON, no ",[444,997,980],{},", a zip without\n",[444,1000,976],{},", or too large) is never served. Replace it with a valid one.",[416,1003,1004],{},"Upload a server definition:",[522,1006,1008],{"className":524,"code":1007,"language":526,"meta":527,"style":527},"relic artifact upload server.json mcp-servers\u002Fweather\u002F1.1.0\u002Fserver.json\n",[444,1009,1010],{"__ignoreMap":527},[531,1011,1012,1014,1017,1020,1023],{"class":533,"line":534},[531,1013,538],{"class":537},[531,1015,1016],{"class":541}," artifact",[531,1018,1019],{"class":541}," upload",[531,1021,1022],{"class":541}," server.json",[531,1024,1025],{"class":541}," mcp-servers\u002Fweather\u002F1.1.0\u002Fserver.json\n",[416,1027,1028],{},"List the entries of a repository you may read (administrators and viewers also see\nunapproved ones):",[522,1030,1032],{"className":524,"code":1031,"language":526,"meta":527,"style":527},"relic registry list mcp-servers\n",[444,1033,1034],{"__ignoreMap":527},[531,1035,1036,1038,1041,1044],{"class":533,"line":534},[531,1037,538],{"class":537},[531,1039,1040],{"class":541}," registry",[531,1042,1043],{"class":541}," list",[531,1045,1046],{"class":541}," mcp-servers\n",[416,1048,1049],{},"Approve one:",[522,1051,1053],{"className":524,"code":1052,"language":526,"meta":527,"style":527},"relic registry approve mcp-servers\u002Fweather\u002F1.1.0\u002Fserver.json\n",[444,1054,1055],{"__ignoreMap":527},[531,1056,1057,1059,1061,1064],{"class":533,"line":534},[531,1058,538],{"class":537},[531,1060,1040],{"class":541},[531,1062,1063],{"class":541}," approve",[531,1065,1025],{"class":541},[416,1067,1068],{},"Point an MCP client's registry at Relic:",[522,1070,1075],{"className":1071,"code":1073,"language":1074,"meta":527},[1072],"language-text","https:\u002F\u002Frelic.example.com\u002Fapi\u002Fmcp\u002Fmcp-servers\n","text",[444,1076,1073],{"__ignoreMap":527},[1078,1079,1080],"style",{},"html pre.shiki code .seIyd, html code.shiki .seIyd{--shiki-light:#E2931D;--shiki-default:#953800;--shiki-dark:#FFA657}html pre.shiki code .sasMN, html code.shiki .sasMN{--shiki-light:#91B859;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sWneD, html code.shiki .sWneD{--shiki-light:#39ADB5;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sK3rv, html code.shiki .sK3rv{--shiki-light:#39ADB5;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .s10kg, html code.shiki .s10kg{--shiki-light:#9C3EDA;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .st6vK, html code.shiki .st6vK{--shiki-light:#E2931D;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .syaID, html code.shiki .syaID{--shiki-light:#F76D47;--shiki-default:#116329;--shiki-dark:#7EE787}html pre.shiki code .sX5mu, html code.shiki .sX5mu{--shiki-light:#39ADB5;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html pre.shiki code .smky3, html code.shiki .smky3{--shiki-light:#91B859;--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .sIO_5, html code.shiki .sIO_5{--shiki-light:#F76D47;--shiki-default:#0550AE;--shiki-dark:#79C0FF}html pre.shiki code .smKOL, html code.shiki .smKOL{--shiki-light:#E53935;--shiki-default:#116329;--shiki-dark:#7EE787}",{"title":527,"searchDepth":571,"depth":571,"links":1082},[1083,1084,1085,1086],{"id":513,"depth":571,"text":514},{"id":661,"depth":571,"text":662},{"id":838,"depth":571,"text":839},{"id":932,"depth":571,"text":933},"Give coding agents read-only access to Relic over the Model Context Protocol.","md",null,{},true,{"title":316,"description":1087},"1zttonhYRU9WGdWh-StMReGv1Eqc96Gsfdq-0vjV9Jc",[1095,1097],{"title":312,"path":313,"stem":314,"description":1096,"children":-1},"Group repositories into projects, with members in roles and a storage quota.",{"title":326,"path":327,"stem":328,"description":1098,"children":-1},"How the Relic API is served, how to authenticate to it, and where it is described.",1793857339730]