Develocity MCP server: two endpoints, self-hosted
Why there are two tool sets on two endpoints, why Gradle insists the analytics credential be read-only and separate, and why you cannot even list the tools without a key.
Last verified 25 August 2026 · from docs.develocity.ai 2026.2, installation and AI clients pages
This page is one of 90 in a directory of monitoring and developer tools. Each page checks what an AI coding agent can get out of the tool through its MCP server, the connector that lets the agent query the tool directly.
Summary
The Gradle Develocity MCP server runs on your own infrastructure, because Develocity does. It is a Kubernetes pod, enabled by setting `mcpServer.enabled: true` in values.yaml, the Helm configuration file for your install, and it reports itself as develocity-mcp-server version 2026.2.4.
There are two tool sets. The Develocity tools cover individual builds: exceptions, stack traces, test outcomes and cache performance. The Analytics tools cover the organization: dependency risk, performance trends and CI stability.
They arrive on two endpoints. /mcp on the Develocity instance serves the build tools, and also the analytics tools when Athena Data Export is on. /drv-mcp on a Reporting Kit instance serves analytics alone.
An access key is required for every interaction, including `initialize` and listing the tools. Gradle states this explicitly. So this page could not run the usual unauthenticated tools/list capture, and it claims no tool count.
What is the Gradle Develocity MCP server?
Develocity records what your builds actually did: how long each task took, which tests failed, whether the cache hit, and what the exception was. It covers Gradle, Maven, sbt, Bazel, npm and Python builds.
The MCP server turns that record into something an agent can query. The stated use is investigating a build failure without leaving the editor, and comparing two builds to work out why the cache missed.
Both tool sets bundle skills: guided workflows that activate automatically to steer the client toward effective queries. Gradle describes them the same way for the build tools and the analytics tools.
Two tool sets, two endpoints, two version floors:
| Tool set | Endpoint | Requires |
|---|---|---|
| Develocity tools | /mcp on the Develocity instance | Develocity 2025.3 or higher |
| Develocity Analytics tools | /mcp as well, when Athena Data Export is on | Develocity 2025.4 or higher, and 2026.2.0 to run inside the same server |
| Develocity Analytics tools | /drv-mcp on a Reporting Kit instance | Develocity Reporting Kit 2.1 or higher |
Either set works alone. Gradle notes that some data, including test results and failure groups, comes only from the Develocity tools.
Develocity owns the build, and stops there.
| Part of the work | What Gradle Develocity has here | Can an agent reach it |
|---|---|---|
| Code, tests & review | Test outcomes, flaky tests and failure trends | Partial. Strong for tests, absent for code. It reads which tests failed and how often, and no diffs or reviews |
| CI & release | Build failures, task durations, cache effectiveness and CI stability | Yes. Core strength. Exception details, stack traces, failure grouping and build comparison are all reachable |
| Production observability | None | No metrics, logs or traces from running services |
| Agent observability & evals | None | No traces or evaluations of model behavior |
| AI cost management | None for AI spend | No model spend. Build time and cache hit rates are a different budget |
For an agent, Develocity answers why the build broke and why it was slow. The organization-wide version of both questions sits behind the analytics set. It knows nothing about the source of the change or what happened after it shipped.
What can an AI agent do with Gradle Develocity?
There are two tool sets on two endpoints, and neither publishes a count. The Develocity tools cover individual builds: exceptions, stack traces, test outcomes and cache performance. The Analytics tools cover the organization: dependency risk, performance trends and CI stability. /mcp on the Develocity instance serves the build tools, and the analytics tools too when Athena Data Export is on. /drv-mcp serves analytics alone.
Gradle Develocity MCP server limits: where answers come back incomplete
You cannot list the tools without a key. That boundary comes first, because it stops an evaluation before you can size the connector.
You cannot see the tool list without a key, and neither can anyone else.
Gradle states that the access key is required for every interaction, including initialize and listing the available tools. There is no anonymous handshake.
That is good security and awkward evaluation. No tool count is published either, so the inventory cannot be established before you deploy.
Guard: Issue a key with the permission, then run Gradle's own initialize curl before wiring any client to it.
The analytics half needs a second AWS credential, and Gradle says it must be read-only.
Athena Data Export already has credentials. Gradle states that the MCP server cannot reuse them, for security reasons, and that its own credentials must be read-only.
The published IAM template still includes PutObject and DeleteObject, and Gradle warns those must be scoped to the query results bucket alone.
Guard: Treat the two buckets separately when writing the role. Read on the build model data, write only on the query output location.
The agent says: “Builds are 20% slower.” Across one project, or all of them?
Two tool sets answer at two scopes. The Develocity tools see individual builds; the Analytics tools see aggregate data across the organization. In prose the two answers look identical.
Guard: Require the agent to name the tool set. The disclosure block above makes that the first rule.
The agent says: “There are no test results.” You may have connected the wrong half.
Gradle states that some data, including test results and failure groups, is available only from the Develocity tools. A Reporting Kit connection alone cannot reach them.
Guard: Connect /mcp if tests matter. /drv-mcp on its own answers aggregate questions only.
How to configure Gradle Develocity MCP for agents
- 1
Enable the pod
mcpServer.enabled: trueinvalues.yaml, then confirm withkubectl get pods -l app.kubernetes.io/component=mcp-server. - 2
Decide whether you need analytics at all
One set works without the other, and the analytics half carries the whole Athena prerequisite chain.
- 3
Create a second AWS credential if you do
Gradle states that the Athena credentials used by the MCP server cannot be the ones used by Athena Data Export, and must be read-only.
- 4
Issue an access key with the right permission
It must carry Access build data via the API and MCP, and it is checked on every request.
- 5
Plan for Claude Desktop separately
Gradle documents that it cannot send an access key header and needs a local proxy.
Paste this into your agent’s instructions
Two tool sets answer at two different scopes, and a build-level answer and an organization-level answer look alike once the agent writes them as prose.
When you answer using Develocity MCP tools, state: - Whether the answer came from the Develocity tools, which see individual builds, or the Analytics tools, which see aggregate data across the organization. - The build scan or the time window the numbers cover. - That test results and failure groups come only from the Develocity tools, so an analytics-only setup cannot see them. Never state that data does not exist. State which tool set you queried and what it returned. Write your answer in ASD-STE100 Simplified Technical English. Use short sentences with one idea in each.
Do you need the MCP server at all?
Not when you already know which build broke. A build scan URL in a browser remains the direct route then, and it is what the tools are reading behind the scenes.
The Develocity API is the direct path for anything scheduled, and it takes the same access key.
For flaky tests specifically, BuildPulse and Allure TestOps both connect over their own servers.
For the CI system rather than the build, Jenkins and CircleCI answer questions about the pipeline that Develocity does not model.
With MCP, failure grouping and build comparison arrive as tool results rather than as a page to read, which is the difference when the question is why two builds diverged.
Enable /mcp first. Add /drv-mcp only when the question is about the whole organization.
Gradle Develocity MCP server setup
The server runs inside your own Develocity deployment. Enable it with mcpServer.enabled: true in your Helm values, then confirm the pod is running.
Every block below carries a Develocity access key as a bearer token. The key needs the Access build data via the API and MCP permission, and Gradle states it is required for every interaction, including initialize and listing the tools.
Substitute your own Develocity host for develocity.example.com. Reporting Kit deployments add a second entry pointing at /drv-mcp on the Reporting Kit host.
Claude Code
Gradle documents the CLI form with --scope user. Add a second server for the analytics tools if you run Reporting Kit.
claude mcp add --transport http develocity --scope user \ https://develocity.example.com/mcp \ --header "Authorization: Bearer <access-key>"
Confirm it is running
Gradle publishes both checks. The pod listing confirms the deployment, and the initialize call confirms the key works. A key without the permission fails here rather than later.
kubectl get pods --namespace develocity \
-l app.kubernetes.io/component=mcp-server
curl -X POST https://develocity.example.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Authorization: Bearer <access-key>" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize",
"params":{"protocolVersion":"2025-03-26",
"capabilities":{},"clientInfo":{
"name":"curl-client","version":"1.0.0"}}}'Cursor
In ~/.cursor/mcp.json for all projects, or .cursor/mcp.json in one. The access key travels as a header, not as an environment variable.
{"mcpServers":{"develocity":{"type":"http",
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Codex CLI
Codex reads TOML, so the JSON blocks above will not transfer.
[mcp_servers.develocity] url = "https://develocity.example.com/mcp" [mcp_servers.develocity.headers] Authorization = "Bearer <access-key>"
Every other client
Each block below is the configuration for one client, with the file path and the key that client expects.
Claude Desktop
macOS ~/Library/Application Support/Claude/claude_desktop_config.json. Windows %APPDATA%\Claude\claude_desktop_config.json. There is no CLI. Edit through Settings, Developer, Edit Config.
Gradle documents that Claude Desktop cannot authenticate with an access key header, so a local proxy is required. It also notes that Gradle is not affiliated with mcp-remote and asks you to check it against your own security policy.
{"mcpServers":{"develocity":{"command":"npx",
"args":["-y","mcp-remote",
"https://develocity.example.com/mcp",
"--header","Authorization: Bearer ${API_ACCESS_TOKEN}",
"--transport","http-only"],
"env":{"API_ACCESS_TOKEN":"<access-key>"}}}}Quit and restart fully for changes to load. The key sits in env here rather than in a header, because the proxy substitutes it.
VS Code Copilot
.vscode/mcp.json per workspace, or your user profile. Gradle recommends an inputs prompt rather than a hardcoded key, so VS Code asks for it the first time the server starts.
{"inputs":[{"type":"promptString",
"id":"develocity-access-key",
"description":"Develocity Access Key","password":true}],
"servers":{"develocity":{"type":"http",
"url":"https://develocity.example.com/mcp",
"headers":{"Authorization":
"Bearer ${input:develocity-access-key}"}}}}The key is `servers`, not `mcpServers`. VS Code is the only client that uses that name, and copying a config from anywhere else fails silently.
Gemini CLI
~/.gemini/settings.json globally, or .gemini/settings.json per project. Gradle documents httpUrl here rather than url.
{"mcpServers":{"develocity":{
"httpUrl":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}The analytics endpoint
Add a second entry alongside the first. Gradle uses the name develocity-analytics throughout its own examples, and the host is the Reporting Kit instance rather than Develocity.
claude mcp add --transport http develocity-analytics \ --scope user https://reporting-kit.example.com/drv-mcp \ --header "Authorization: Bearer <access-key>"
IntelliJ IDEA and Android Studio
Gradle points IntelliJ users at the GitHub Copilot plugin, and Android Studio users at Gemini. Both take the same httpUrl and Authorization header shape as the Gemini CLI block.
{"mcpServers":{"develocity":{
"httpUrl":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Windsurf
~/.codeium/windsurf/mcp_config.json, which is the path Windsurf documents. Key mcpServers, carrying the same access key.
{"mcpServers":{"develocity":{"serverUrl":
"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Zed
~/.config/zed/settings.json, under context_servers, carrying the same access key.
{"context_servers":{"develocity":{
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Google Antigravity
~/.gemini/config/mcp_config.json globally, or .agents/mcp_config.json per project. Key mcpServers. There is no CLI. Use the /mcp overlay. Streamable HTTP is supported, carrying the same access key.
{"mcpServers":{"develocity":{"type":"http",
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Amp (Sourcegraph)
~/.config/amp/settings.json or .amp/settings.json, carrying the same access key. The amp mcp CLI covers approve, doctor and oauth.
{"amp.mcpServers":{"develocity":{
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Cline
~/.cline/mcp.json per the docs. The source also reads ~/.cline/data/settings/cline_mcp_settings.json. Key mcpServers, carrying the same access key.
{"mcpServers":{"develocity":{
"type":"streamableHttp",
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Goose (Block)
~/.config/goose/config.yaml, carrying the same access key in the headers map.
extensions:
develocity:
type: streamable_http
uri: https://develocity.example.com/mcp
headers:
Authorization: Bearer <access-key>Kiro (AWS)
.kiro/settings/mcp.json per workspace, or ~/.kiro/settings/mcp.json globally. Key mcpServers. Kiro runs stdio servers, so this route uses the same mcp-remote proxy Gradle documents for Claude Desktop.
{"mcpServers":{"develocity":{"command":"npx",
"args":["-y","mcp-remote",
"https://develocity.example.com/mcp",
"--header","Authorization: Bearer ${API_ACCESS_TOKEN}",
"--transport","http-only"],
"env":{"API_ACCESS_TOKEN":"<access-key>"}}}}Warp
~/.warp/.mcp.json or .warp/.mcp.json. Key mcpServers, carrying the same access key. Also addable through the /agent-add-mcp skill.
{"mcpServers":{"develocity":{
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}JetBrains Junie
.junie/mcp/mcp.json per project, or ~/.junie/mcp/mcp.json. Key mcpServers, carrying the same access key. Use /mcp in the CLI to manage.
{"mcpServers":{"develocity":{"type":"http",
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Roo Code
.roo/mcp.json per project. The global file is mcp_settings.json, opened from the Roo Code MCP settings view with Edit Global MCP. Key mcpServers, carrying the same access key.
{"mcpServers":{"develocity":{
"type":"streamable-http",
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Continue
.continue/mcpServers/*.yaml, one file per server, carrying the same access key.
name: Develocity
version: 0.0.1
schema: v1
mcpServers:
- name: develocity
type: streamable-http
url: https://develocity.example.com/mcp
requestOptions:
headers:
Authorization: Bearer <access-key>Trae
.trae/mcp.json per project, or paste into the UI under Raw Config (JSON). Key mcpServers, standard shape, carrying the same access key.
{"mcpServers":{"develocity":{
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Devin
Devin has no config file to edit. Servers are added through a web form in the settings UI, and Devin's documentation states you do not need to write or paste JSON. The block below is the shape those fields describe, shown for reference. Either route uses the same access key.
{"mcpServers":{"develocity":{"type":"http",
"url":"https://develocity.example.com/mcp",
"headers":{
"Authorization":"Bearer <access-key>"}}}}Read-only access, permissions and security
The key is checked on every call
Gradle states that the access key with the Access build data via the API and MCP permission is required for every interaction, including
initializeand listing the available tools. Nothing is readable before authentication.The analytics credential must be separate and read-only
Gradle states plainly that for security reasons the Athena credentials used by the MCP server cannot be the same as those used by Athena Data Export.
The IAM policy is narrower than it looks
It includes
PutObjectandDeleteObject, and Gradle warns those must apply only to the S3 bucket holding Athena query results, never the bucket holding the build model data.Build data carries source detail
Exception messages, stack traces and task names describe your codebase, and they are what these tools return.
The proxy is third-party
Gradle documents
mcp-remotefor Claude Desktop and states it is not affiliated with the project, asking you to check it against your own policy first.
Troubleshooting
- Listing the tools returns an error
- The access key is required for that call too. Gradle documents that every interaction, including
initializeand listing the tools, needs a key with the Access build data via the API and MCP permission. - The pod is not there
- The server is off by default. Set
mcpServer.enabled: trueinvalues.yaml, then check withkubectl get pods -l app.kubernetes.io/component=mcp-server. - Claude Desktop will not connect
- Documented. Claude Desktop cannot send an access key header, and Gradle's own answer is a local
mcp-remoteproxy with--transport http-only. - The analytics tools are missing
- They need Develocity 2025.4 or higher with Athena Data Export enabled, or Reporting Kit 2.1 or higher. Running them inside the Develocity MCP server needs 2026.2.0.
- Test results are not available
- An analytics-only setup cannot see them. Gradle states that some data, including test results and failure groups, comes only from the Develocity tools.
- Athena queries fail with a permission error
- Check which bucket the write permissions cover. The read-only role needs
PutObjecton the query results bucket only, and read access on the exported build model data.
Gradle Develocity MCP server: Reference
| Item | Value |
|---|---|
| Endpoints | /mcp on Develocity · /drv-mcp on Reporting Kit |
| Server name | develocity-mcp-server, version 2026.2.4 |
| Protocol | 2025-03-26 |
| Deployment | A Kubernetes pod, off by default |
| Enable with | mcpServer.enabled: true in Helm values |
| Develocity tools require | Develocity 2025.3 or higher |
| Analytics tools require | 2025.4 with Athena Data Export, or Reporting Kit 2.1 |
| Analytics in the same server | Develocity 2026.2.0 and higher |
| Auth | Bearer access key with Access build data via the API and MCP |
| Auth scope | Every interaction, initialize and tool listing included |
| Athena credential | Must be read-only, and separate from the export credential |
| Tool count | Not published, and not capturable without a key |
| Build tools support | Gradle, Maven, sbt, Bazel, npm and Python |
| Inventory source | docs.develocity.ai 2026.2, read 25 August 2026 |
What the vendor documents
Public discussion of this connector is thin, and no tool count is published. The facts below are the ones Gradle states in its own installation documentation.
| What was checked | What it shows |
|---|---|
| Tool sets | Two |
| Endpoints | Two, /mcp and /drv-mcp |
| Server version reported | 2026.2.4 |
| Protocol version | 2025-03-26 |
| Develocity capability areas listed | Six |
| Analytics capability areas listed | Four |
| Build tools covered | Gradle, Maven, sbt, Bazel, npm, Python |
| Tool count published | None |
“The Develocity MCP Server requires an access key with the Access build data via the API and MCP permission for every interaction, including the initialize request and listing the available tools.”
“For security reasons, the Athena credentials used by the MCP Server cannot be the same as the ones used by the Athena Data Export feature. The credentials used by the MCP Server must be read-only.”
“Gradle isn't affiliated with or involved in the development of mcp-remote. Please ensure that any third-party software you install complies with your organization's security policies.”
The 2026.2 documentation was read on 25 August 2026, across the MCP servers overview, the installation manual and the AI clients page. No tool count appears in any of them, and the endpoint cannot be queried without a key, so none is claimed on this page.
Should you connect an agent to Gradle Develocity?
Yes. Best for build failure investigation on /mcp, with analytics added only when the question is organization-wide.
- Strongest fit
- Develocity operators who want an agent explaining a failed or slow build without leaving the editor.
- Main advantage
- It runs inside your own deployment, so build data never leaves your infrastructure to reach the model's tools.
- Main weakness
- The tool inventory is not published and cannot be listed without a key, so the connector cannot be sized before it is deployed.
- Operational risk
- An over-broad Athena role. The published policy template includes write actions that must be scoped to the query results bucket alone.
From Oodle
One platform for agent traces and infrastructure
Agent traces usually sit in a different product from the rest of your telemetry, so when a slow database makes an agent slow the symptom is in one tool and the cause is in another. Oodle keeps both in one query surface, from $10 per million spans.
See agent observabilityFrequently asked questions
Does Develocity have an official MCP server?
Yes, and it ships with the product. It runs as a Kubernetes pod in your own deployment, enabled with mcpServer.enabled: true, and reports itself as develocity-mcp-server version 2026.2.4.
How many tools does it expose?
Gradle does not publish a count, and the tool list cannot be read without an access key, so this page claims none. Ten capability areas are described across the two tool sets.
What is the difference between /mcp and /drv-mcp?
/mcp on the Develocity instance serves the build tools, and the analytics tools too when Athena Data Export is on. /drv-mcp on a Reporting Kit instance serves the analytics tools alone.
Which versions do I need?
Develocity 2025.3 or higher for the build tools. For analytics, 2025.4 with Athena Data Export or Reporting Kit 2.1, and 2026.2.0 to run them inside the same server.
Why does Claude Desktop need a proxy?
It cannot authenticate with an access key header. Gradle documents mcp-remote with --transport http-only, and notes it is not affiliated with that project.
Do the tools bundle anything else?
Both sets bundle skills: guided workflows that activate automatically to help the client make effective use of the available data.