---
title: "CircleCI MCP server for AI agents - actionlake"
description: "Give Claude 114 CircleCI actions through one MCP server: insights, pipeline definitions. Your agent never holds the credential. 100,000 calls a month free."
canonical: https://actionlake.com/connectors/circleci
updated: 2026-10-22
---

Connectors · Developer & infrastructure

# CircleCI MCP server for AI agents.

actionlake is an MCP gateway: one remote MCP server that connects Claude and other MCP clients to CircleCI and the rest of your systems. It gives your agent 114 CircleCI actions (64 reads, 29 writes and 21 that wait for a confirmation) and holds the CircleCI credential itself, so the agent never does. It paces CircleCI's limits and records every call.

[Connect CircleCI free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

100,000 free calls a month. No card, no email, no password: press Start a free sandbox on the next screen and keep the key it shows you.

`claude mcp add --transport http actionlake https://connect.actionlake.com/mcp`

the first call

```
do {
  action: "circleci.pipelines.list",
  intent: "check which CircleCI account is connected"
}
# Get a list of pipelines · read · 1 upstream call
```

- 114 actions in one signed file
- 64 read look, never change
- 29 write create and update
- 21 wait for a yes destructive, confirmed first

Set up

## Connect CircleCI in three steps.

1. 01
   ### Add actionlake to Claude.
   Run the command once in Claude Code; its consent page can create a free sandbox: 100,000 calls a month, no card. In the Claude app, add a custom connector with the URL below and paste your key on the consent page. Creating a new sandbox from the Claude app is not yet tested by us.
   `https://connect.actionlake.com/mcp`
2. 02
   ### Connect CircleCI.
   API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead. actionlake stores what you paste write-only, sealed under your tenant's key.
   - `api_token` CircleCI personal API token
   ```
   account { op: "connections.requirements", service: "circleci" }
   # free: exactly what to paste, and what is found for you
   ```
3. 03
   ### Make the first call. Check before a write.
   Ask in plain words; Claude picks the action. Before anything changes, `check` validates the call and prices it, for free.
   ```
   do    { action: "circleci.pipelines.list" }
   # get a list of pipelines · read · 1 upstream call
   check { action: "circleci.groups.create", input: { … } }
   # free: inputs, permissions, cost and confirmations, nothing sent
   ```

CircleCI at a glance

**Sign-in**

API key. No consent screen: your agent can connect it for you, but the key then passes through your chat. To keep it out of the model's context, paste it in the console instead.

**You provide**

`api_token`

**Limits we pace to**

10 calls a second, per connection

**API covered**

CircleCI API v2 (OpenAPI 3.0.3, info.version v2)`circleci.com/api/v2`

**Built from**

CircleCI's documentation, read 22 October 2026[circleci.com](https://circleci.com/api/v2/openapi.json) [circleci.com](https://circleci.com/docs/api/v2/index.html)

**Service file**

Version 1.0.0, signed (Ed25519)

**Cached reads**

62 of 64 reads, for up to 5 minutes; a write clears what it affects

**Shared entities**

4, so ask can line CircleCI up with your other systems

**Data**

Processed and stored in Sydney, Australia. No US region yet

Capabilities

## What an AI agent can do in CircleCI.

114 actions in 36 areas. Every one carries its effect, so a key can allow the reads and hold the rest.

- **64** read look, never change
- **29** write create and update
- **21** destructive wait for a confirmation

1. ### Insights
   10
   10 read · 0 write · 0 destructive
   Job timeseries data · Get summary metrics for a project workflow's jobs. · Get recent runs of a workflow · Get summary metrics for a project's workflows
2. ### Pipeline definitions
   5
   2 read · 2 write · 1 destructive
   Create pipeline definition · List pipeline definitions · Get pipeline definition · Update pipeline definition
3. ### Pipelines
   5
   4 read · 1 write · 0 destructive
   Get a list of pipelines · Get a pipeline by ID · Continue a pipeline · Get a pipeline's configuration
4. ### Project pipelines
   5
   3 read · 0 write · 2 destructive
   Get all pipelines · [Recommended] Trigger a new pipeline · Trigger a new pipeline · Get your pipelines
5. ### Schedules
   5
   2 read · 2 write · 1 destructive
   List schedule triggers · Create a schedule · Update a schedule · Get a schedule by ID. Available only on schedules associated with GitHub OAuth or Bitbucket Cloud pipeline definitions.
6. ### Triggers
   5
   2 read · 2 write · 1 destructive
   List pipeline definition triggers · Create trigger · Get trigger · Update trigger
7. ### Webhooks
   5
   2 read · 2 write · 1 destructive
   Create an outbound webhook · List webhooks · Update an outbound webhook · Get a webhook
8. ### Checkout keys
   4
   2 read · 1 write · 1 destructive
   Create a new checkout key · Get all checkout keys · Get a checkout key · Delete a checkout key

**28 more areas · 70 actions**

- Contexts **4**
- Groups **4**
- Policy decisions **4**
- Project env vars **4**
- Projects **4**
- Workflows **4**
- Context env vars **3**
- Context restrictions **3**
- Oidc org claims **3**
- Oidc project claims **3**
- Organizations **3**
- Otel exporters **3**
- Policy bundles **3**
- URL orb allow list **3**
- Deploy components **2**
- Deploy environments **2**
- Jobs **2**
- Me **2**
- Policy decision settings **2**
- Project jobs **2**
- Project settings **2**
- Usage exports **2**
- Deploy component versions **1**
- Job artifacts **1**
- Job tests **1**
- Pipeline workflows **1**
- Users **1**
- Workflow jobs **1**

Top actions

## The CircleCI API, shaped for agents.

The ids your agent types, what each does, and the one name it shares with other systems. 39 of CircleCI's 39 action names are shared with at least one other connector, so an agent learns them once.

| Action | What it does | Effect | Same name in |
| --- | --- | --- | --- |
| `circleci.job_artifacts.list` Get a job's artifacts | Get a job's artifacts. | read | `devops.artifact.list` 17 connectors |
| `circleci.groups.list` Groups in an organization | Groups in an organization. | read | `identity.group.list` 262 connectors |
| `circleci.me.get` User Information | User Information. | read | `identity.current_user.get` 307 connectors |
| `circleci.groups.create` Create Groups | Create Groups. | write | `identity.group.create` 205 connectors |
| `circleci.schedules.list` List schedule triggers | List schedule triggers. | read | `automation.schedule.list` 18 connectors |
| `circleci.groups.delete` Delete a group | Delete a group. | destructive | `identity.group.delete` 181 connectors |
| `circleci.deploy_environments.list` List Environments | List Environments. | read | `devops.environment.list` 24 connectors |
| `circleci.pipelines.list` Get a list of pipelines | Get a list of pipelines. | read | `devops.pipeline_run.list` 13 connectors |
| `circleci.project_pipelines.list` Get all pipelines | Get all pipelines. | read | `devops.pipeline_run.list` 13 connectors |
| `circleci.workflow_jobs.list` Get a workflow's jobs | Get a workflow's jobs. | read | `devops.pipeline_job.list` 9 connectors |
| `circleci.webhooks.create` Create an outbound webhook | Create an outbound webhook. | write | `automation.webhook.create` 209 connectors |
| `circleci.schedules.create` Create a schedule | Create a schedule. | write | `automation.schedule.create` 16 connectors |

Try it

## Prompts to paste into Claude.

Each one names the CircleCI actions it will call, so you know what it reads and what it changes before you send it.

1. Read read
   List the CircleCI groups and how many members each one has.
   calls `circleci.groups.list`
2. Write write
   Create Groups in CircleCI. Show me exactly what you will send before you save it.
   calls `circleci.groups.create`

Governance for CircleCI

## Destructive actions wait for a yes.

21 CircleCI actions are destructive. These are all of them:

- Delete a group `circleci.groups.delete`
- Delete an outbound webhook `circleci.webhooks.delete`
- [Recommended] Trigger a new pipeline `circleci.project_pipelines.run`
- Trigger a new pipeline `circleci.project_pipelines.trigger`
- Cancel a workflow `circleci.workflows.cancel`
- Delete a schedule `circleci.schedules.delete`
- Cancel job by job ID `circleci.jobs.cancel`
- Cancel job by job number `circleci.project_jobs.cancel`
- Delete trigger `circleci.triggers.delete`
- Delete an environment variable `circleci.project_env_vars.delete`
- Delete a context `circleci.contexts.delete`
- Delete a project `circleci.projects.delete`
- Delete a checkout key `circleci.checkout_keys.delete`
- Delete an organization `circleci.organizations.delete`
- 🧪 Delete an OTLP exporter `circleci.otel_exporters.delete`
- Delete org-level claims `circleci.oidc_org_claims.delete`
- Remove an environment variable `circleci.context_env_vars.delete`
- Remove an entry from the org's URL orb allow-list `circleci.url_orb_allow_list.delete`
- Delete project-level claims `circleci.oidc_project_claims.delete`
- Delete context restriction `circleci.context_restrictions.delete`
- Delete pipeline definition `circleci.pipeline_definitions.delete`

A destructive action runs only with `confirm: true`. Under the `human` policy the agent cannot confirm for itself: the run stops until a named person approves, in the console or from a signed link in an email. The cap on a key is refused before the call is sent, never after.

do circleci.groups.delete confirm_policy: **human**

Delete a group?

**intent:** the user asked me to delete a group

run suspended · waiting for a named person · key _circleci-agent_ cannot confirm itself

In the console, or from an emailed signed link.

a key for this connector

```
account {
  op: "keys.create", name: "circleci-agent",
  allowed_actions: ["circleci.*"], cap_calls: 2000,
  confirm_policy: "human_for_writes",
  approval_rules: [
    { match: "circleci.groups.delete", approver: "lead@example.com" },
    { match: "circleci.webhooks.delete", approver: "lead@example.com" },
    { match: "circleci.project_pipelines.run", approver: "lead@example.com" }
  ]
}
```

Illustrative. Scoped to CircleCI only, capped at 2,000 upstream calls, every write confirmed, and the destructive ones approved by a named person.

Cost

## What CircleCI costs on actionlake.

Every CircleCI action is one upstream call, the only thing actionlake bills. Searching, `check`, `cost`, `account` and any call CircleCI refused with 401, 403, 429 or a 5xx are free. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

- 1 upstream call per action all 114 CircleCI actions
- 114 actions page each page of a long list is one call
- 62 reads can be cached a cache hit costs nothing
- 100,000 calls a month, free paid plans from US$49 a month for 250,000

[See pricing](https://actionlake.com/pricing)

Action index

## Every CircleCI action.

114 actions by area: the id your agent calls, what it does, and its effect.

**Insights 10**

- `circleci.insights.branches_get` Get all branches for a project read
- `circleci.insights.flaky_tests_get` Get flaky tests for a project read
- `circleci.insights.job_timeseries_list` Job timeseries data read
- `circleci.insights.org_summary_get` Get summary metrics with trends for the entire org, and for each project. read
- `circleci.insights.project_summary_get` Get summary metrics and trends for a project across it's workflows and branches read
- `circleci.insights.workflow_jobs_list` Get summary metrics for a project workflow's jobs. read
- `circleci.insights.workflow_runs_list` Get recent runs of a workflow read
- `circleci.insights.workflow_summary_get` Get metrics and trends for workflows read
- `circleci.insights.workflow_test_metrics_get` Get test metrics for a project's workflows read
- `circleci.insights.workflows_list` Get summary metrics for a project's workflows read

**Pipeline definitions 5**

- `circleci.pipeline_definitions.create` Create pipeline definition write
- `circleci.pipeline_definitions.delete` Delete pipeline definition destructive
- `circleci.pipeline_definitions.get` Get pipeline definition read
- `circleci.pipeline_definitions.list` List pipeline definitions read
- `circleci.pipeline_definitions.update` Update pipeline definition write

**Pipelines 5**

- `circleci.pipelines.config_get` Get a pipeline's configuration read
- `circleci.pipelines.continue` Continue a pipeline write
- `circleci.pipelines.get` Get a pipeline by ID read
- `circleci.pipelines.list` Get a list of pipelines read
- `circleci.pipelines.values_get` Get pipeline values for a pipeline read

**Project pipelines 5**

- `circleci.project_pipelines.get_by_number` Get a pipeline by pipeline number read
- `circleci.project_pipelines.list` Get all pipelines read
- `circleci.project_pipelines.list_mine` Get your pipelines read
- `circleci.project_pipelines.run` [Recommended] Trigger a new pipeline destructive
- `circleci.project_pipelines.trigger` Trigger a new pipeline destructive

**Schedules 5**

- `circleci.schedules.create` Create a schedule write
- `circleci.schedules.delete` Delete a schedule destructive
- `circleci.schedules.get` Get a schedule by ID. Available only on schedules associated with GitHub OAuth or Bitbucket Cloud pipeline definitions. read
- `circleci.schedules.list` List schedule triggers read
- `circleci.schedules.update` Update a schedule write

**Triggers 5**

- `circleci.triggers.create` Create trigger write
- `circleci.triggers.delete` Delete trigger destructive
- `circleci.triggers.get` Get trigger read
- `circleci.triggers.list` List pipeline definition triggers read
- `circleci.triggers.update` Update trigger write

**Webhooks 5**

- `circleci.webhooks.create` Create an outbound webhook write
- `circleci.webhooks.delete` Delete an outbound webhook destructive
- `circleci.webhooks.get` Get a webhook read
- `circleci.webhooks.list` List webhooks read
- `circleci.webhooks.update` Update an outbound webhook write

**Checkout keys 4**

- `circleci.checkout_keys.create` Create a new checkout key write
- `circleci.checkout_keys.delete` Delete a checkout key destructive
- `circleci.checkout_keys.get` Get a checkout key read
- `circleci.checkout_keys.list` Get all checkout keys read

**Contexts 4**

- `circleci.contexts.create` Create a new context write
- `circleci.contexts.delete` Delete a context destructive
- `circleci.contexts.get` Get a context read
- `circleci.contexts.list` List contexts read

**Groups 4**

- `circleci.groups.create` Create Groups write
- `circleci.groups.delete` Delete a group destructive
- `circleci.groups.get` A group in an organization read
- `circleci.groups.list` Groups in an organization read

**Policy decisions 4**

- `circleci.policy_decisions.create` Makes a decision write
- `circleci.policy_decisions.get` Retrieves the owner's decision audit log by given decisionID read
- `circleci.policy_decisions.list` Retrieves the owner's decision audit logs. read
- `circleci.policy_decisions.policy_bundle_get` Retrieves Policy Bundle for a given decision log ID read

**Project env vars 4**

- `circleci.project_env_vars.create` Create an environment variable write
- `circleci.project_env_vars.delete` Delete an environment variable destructive
- `circleci.project_env_vars.get` Get a masked environment variable read
- `circleci.project_env_vars.list` List all environment variables read

**Projects 4**

- `circleci.projects.create` Create a new project write
- `circleci.projects.delete` Delete a project destructive
- `circleci.projects.get` Get a project read
- `circleci.projects.rollback` Rollback a project write

**Workflows 4**

- `circleci.workflows.approve` Approve a job write
- `circleci.workflows.cancel` Cancel a workflow destructive
- `circleci.workflows.get` Get a workflow read
- `circleci.workflows.rerun` Rerun a workflow write

**Context env vars 3**

- `circleci.context_env_vars.delete` Remove an environment variable destructive
- `circleci.context_env_vars.list` List environment variables read
- `circleci.context_env_vars.upsert` Add or update an environment variable write

**Context restrictions 3**

- `circleci.context_restrictions.create` Create context restriction write
- `circleci.context_restrictions.delete` Delete context restriction destructive
- `circleci.context_restrictions.list` Get context restrictions read

**Oidc org claims 3**

- `circleci.oidc_org_claims.delete` Delete org-level claims destructive
- `circleci.oidc_org_claims.get` Get org-level claims read
- `circleci.oidc_org_claims.update` Patch org-level claims write

**Oidc project claims 3**

- `circleci.oidc_project_claims.delete` Delete project-level claims destructive
- `circleci.oidc_project_claims.get` Get project-level claims read
- `circleci.oidc_project_claims.update` Patch project-level claims write

**Organizations 3**

- `circleci.organizations.create` Create a new organization write
- `circleci.organizations.delete` Delete an organization destructive
- `circleci.organizations.get` Get an organization read

**Otel exporters 3**

- `circleci.otel_exporters.create` 🧪 Create an OTLP exporter write
- `circleci.otel_exporters.delete` 🧪 Delete an OTLP exporter destructive
- `circleci.otel_exporters.list` 🧪 List OTLP exporters read

**Policy bundles 3**

- `circleci.policy_bundles.get` Retrieves Policy Bundle read
- `circleci.policy_bundles.policy_get` Retrieves a policy document read
- `circleci.policy_bundles.upsert` Creates policy bundle for the context write

**URL orb allow list 3**

- `circleci.url_orb_allow_list.create` Create a new URL Orb allow-list entry write
- `circleci.url_orb_allow_list.delete` Remove an entry from the org's URL orb allow-list destructive
- `circleci.url_orb_allow_list.list` List the entries in the org's URL Orb allow-list read

**Deploy components 2**

- `circleci.deploy_components.get` Get Component read
- `circleci.deploy_components.list` List Components read

**Deploy environments 2**

- `circleci.deploy_environments.get` Get Environment read
- `circleci.deploy_environments.list` List Environments read

**Jobs 2**

- `circleci.jobs.cancel` Cancel job by job ID destructive
- `circleci.jobs.get` Get a job read

**Me 2**

- `circleci.me.collaborations_list` Collaborations read
- `circleci.me.get` User Information read

**Policy decision settings 2**

- `circleci.policy_decision_settings.get` Get the decision settings read
- `circleci.policy_decision_settings.update` Set the decision settings write

**Project jobs 2**

- `circleci.project_jobs.cancel` Cancel job by job number destructive
- `circleci.project_jobs.get` Get job details read

**Project settings 2**

- `circleci.project_settings.get` Get project settings read
- `circleci.project_settings.update` Update project settings write

**Usage exports 2**

- `circleci.usage_exports.create` Create a usage export write
- `circleci.usage_exports.get` Get a usage export read

**Deploy component versions 1**

- `circleci.deploy_component_versions.list` List Component Versions read

**Job artifacts 1**

- `circleci.job_artifacts.list` Get a job's artifacts read

**Job tests 1**

- `circleci.job_tests.list` Get a job's test metadata read

**Pipeline workflows 1**

- `circleci.pipeline_workflows.list` Get a pipeline's workflows read

**Users 1**

- `circleci.users.get` User Information read

**Workflow jobs 1**

- `circleci.workflow_jobs.list` Get a workflow's jobs read

Questions

## The CircleCI MCP server, answered.

**Is there a CircleCI MCP server for Claude?**

Yes. actionlake is an MCP gateway: a remote MCP server that gives Claude, or another MCP client, 114 CircleCI actions across insights, pipeline definitions, pipelines and project pipelines, through the same eight tools it uses for every other connector. actionlake is independent; it is not made or endorsed by CircleCI.

**What do I need to connect CircleCI?**

CircleCI personal API token. The free call account { op: "connections.requirements", service: "circleci" } lists exactly what to paste.

**Can an AI agent delete or change things in CircleCI?**

Only if its key allows it, and only with an explicit confirmation. 21 CircleCI actions are destructive, including delete a group, delete an outbound webhook and [Recommended] Trigger a new pipeline. Each runs only with confirm: true. Under the human confirm policy, or an approval rule on the key, the run waits until a named person approves it.

**Will an AI agent use up my CircleCI API limit?**

actionlake paces every call to the limits in the CircleCI service file: 10 calls a second per connection. Repeated reads are answered from cache (62 CircleCI actions can be), which never reaches CircleCI.

**What does a CircleCI action cost?**

One upstream call, the only unit actionlake bills. A list that pages bills one call per page (114 CircleCI actions page). Cache hits, searches, dry runs and calls CircleCI refused with 401, 403, 429 or a 5xx are free. The Free plan includes 100,000 calls a month with no card. Paid plans start at US$49 a month for 250,000 calls, with overage from US$0.30 down to US$0.18 per 1,000.

**Which CircleCI API does it cover?**

The CircleCI API v2 (OpenAPI 3.0.3, info.version v2) at circleci.com/api/v2. It is built from CircleCI's documentation as read on 22 October 2026. 114 actions in 36 areas, each one in the signed service file (version 1.0.0).

**Does actionlake keep my CircleCI data, and where?**

actionlake processes and stores data in Sydney, Australia; there is no US region yet. Reads may be cached for up to 5 minutes, and a write clears the reads it affects. Each run's request and response is kept, sealed, for your plan's trace window: 1 day on Free, 3 days on Starter, 7 days on Pro, 14 days on Team, 30 days on Business and 30 days on Enterprise. Your CircleCI credential is sealed under your tenant's key, never logged and never returned. Your traffic is not used to train models.

**Which AI clients can use it?**

Claude Code, tested by us end to end, and the Claude app as a custom connector, tested by us with an existing key. Other MCP clients that support remote servers over Streamable HTTP (MCP revisions 2025-06-18 and 2025-11-25) and OAuth dynamic client registration, or a bearer header, should connect the same way; we have not tested them. Or plain REST, under the same action names.

## More connectors like CircleCI

Shares the most action names with

- [Bitrise 17](https://actionlake.com/connectors/bitrise)
- [Buildkite 17](https://actionlake.com/connectors/buildkite)
- [Apify 11](https://actionlake.com/connectors/apify)
- [Cloudsmith 10](https://actionlake.com/connectors/cloudsmith)
- [Browserbase 9](https://actionlake.com/connectors/browserbase)
- [Optimizely Feature Experimentation 8](https://actionlake.com/connectors/optimizely-feature-experimentation)

Joins with, on shared entities

- [Rubrik Security Cloud 2](https://actionlake.com/connectors/rubrik-security-cloud)
- [Cloudflare 2](https://actionlake.com/connectors/cloudflare)
- [Databricks 2](https://actionlake.com/connectors/databricks)
- [Delinea Secret Server 2](https://actionlake.com/connectors/delinea-secret-server)
- [authentik 2](https://actionlake.com/connectors/authentik)
- [HashiCorp Vault 2](https://actionlake.com/connectors/hashicorp-vault)

Browse

- [All Developer & infrastructure connectors](https://actionlake.com/connectors/category/developer-and-infrastructure)
- [All connectors](https://actionlake.com/connectors)
- [How actionlake compares](https://actionlake.com/compare)

actionlake is independent. It is not made or endorsed by CircleCI; the name is the vendor's own. Counts are from the CircleCI service file, version 1.0.0.

## Give your agent CircleCI today.

[Connect CircleCI free](https://actionlake.com/console?start=sandbox) [See pricing](https://actionlake.com/pricing)

Start free - 100,000 calls/month, no card. No signup. Hard caps on every key. Cached answers are free.

---

Source: https://actionlake.com/connectors/circleci
More: https://actionlake.com/llms.txt
