{
  "service": "circleci",
  "displayName": "CircleCI",
  "categories": [
    "Developer Tools"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Personal API Token",
      "placeholder": "circleci_personal_token",
      "description": "CircleCI personal API token used with the Circle-Token header. API v2 does not support project tokens. Create it from User Settings > Personal API Tokens in CircleCI: https://app.circleci.com/settings/user/tokens.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://circleci.com",
  "actions": [
    {
      "id": "circleci.get_current_user",
      "service": "circleci",
      "name": "get_current_user",
      "description": "Get the currently authenticated CircleCI user profile.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "avatar_url": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL to the user's avatar on the VCS."
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The unique ID of the user."
          },
          "login": {
            "type": "string",
            "minLength": 1,
            "description": "The VCS login of the current user."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The display name of the current user."
          }
        },
        "additionalProperties": true,
        "description": "CircleCI user."
      }
    },
    {
      "id": "circleci.get_job_artifacts",
      "service": "circleci",
      "name": "get_job_artifacts",
      "description": "List artifacts for a CircleCI job.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "jobNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "The CircleCI job number."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug",
          "jobNumber"
        ],
        "description": "Input for listing job artifacts."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "path": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The artifact path."
                },
                "node_index": {
                  "type": "integer",
                  "description": "The node index that stored the artifact."
                },
                "url": {
                  "type": "string",
                  "description": "The artifact download URL.",
                  "format": "uri"
                }
              },
              "additionalProperties": true,
              "description": "CircleCI artifact."
            },
            "description": "Artifacts returned by CircleCI."
          },
          "next_page_token": {
            "anyOf": [
              {
                "type": "string",
                "description": "Pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated CircleCI artifact list."
      }
    },
    {
      "id": "circleci.get_job_details",
      "service": "circleci",
      "name": "get_job_details",
      "description": "Get CircleCI job details by project slug and job number.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "jobNumber": {
            "type": "integer",
            "minimum": 1,
            "description": "The CircleCI job number."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug",
          "jobNumber"
        ],
        "description": "Input for getting job details."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "web_url": {
            "type": "string",
            "description": "URL of the job in the CircleCI web UI.",
            "format": "uri"
          },
          "project": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Project information for the job."
          },
          "parallel_runs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Parallel run information."
            },
            "description": "Parallel run statuses for the job."
          },
          "started_at": {
            "type": "string",
            "description": "The time when the job started.",
            "format": "date-time"
          },
          "latest_workflow": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The latest workflow that included the job."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The CircleCI job name."
          },
          "executor": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Executor information for the job."
          },
          "parallelism": {
            "type": "integer",
            "description": "The number of parallel runs."
          },
          "status": {
            "type": "string",
            "enum": [
              "success",
              "running",
              "not_run",
              "failed",
              "retried",
              "queued",
              "not_running",
              "infrastructure_fail",
              "timedout",
              "on_hold",
              "terminated-unknown",
              "blocked",
              "canceled",
              "unauthorized"
            ],
            "description": "The current job status reported by CircleCI."
          },
          "number": {
            "type": "integer",
            "description": "The CircleCI job number."
          },
          "pipeline": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Pipeline information for the job."
          }
        },
        "additionalProperties": true,
        "description": "CircleCI job details."
      }
    },
    {
      "id": "circleci.get_pipeline",
      "service": "circleci",
      "name": "get_pipeline",
      "description": "Get a CircleCI pipeline by pipeline ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique ID of the CircleCI pipeline."
          }
        },
        "additionalProperties": false,
        "required": [
          "pipelineId"
        ],
        "description": "Input for getting a pipeline."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The unique ID of the CircleCI pipeline."
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CircleCI pipeline error."
            },
            "description": "Errors attached to the pipeline."
          },
          "project_slug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "updated_at": {
            "type": "string",
            "description": "The time when the pipeline was last updated.",
            "format": "date-time"
          },
          "number": {
            "type": "integer",
            "description": "The pipeline number."
          },
          "state": {
            "type": "string",
            "enum": [
              "created",
              "errored",
              "setup-pending",
              "setup",
              "pending"
            ],
            "description": "The current pipeline state reported by CircleCI."
          },
          "created_at": {
            "type": "string",
            "description": "The time when the pipeline was created.",
            "format": "date-time"
          },
          "trigger": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Trigger metadata for the pipeline."
          },
          "vcs": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Version control metadata for the pipeline."
          }
        },
        "additionalProperties": true,
        "description": "CircleCI pipeline."
      },
      "followUpActions": [
        "circleci.list_workflows_by_pipeline"
      ]
    },
    {
      "id": "circleci.get_project",
      "service": "circleci",
      "name": "get_project",
      "description": "Get CircleCI project details by project slug.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug"
        ],
        "description": "Input for getting a project."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "The project name."
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The unique ID of the project."
          },
          "organization_name": {
            "type": "string",
            "description": "The organization name that owns the project."
          },
          "organization_slug": {
            "type": "string",
            "description": "The organization slug that owns the project."
          },
          "organization_id": {
            "type": "string",
            "description": "The unique ID of the organization."
          },
          "vcs_info": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Version control information for the project."
          }
        },
        "additionalProperties": true,
        "description": "CircleCI project."
      },
      "followUpActions": [
        "circleci.list_pipelines_for_project"
      ]
    },
    {
      "id": "circleci.get_workflow_summary",
      "service": "circleci",
      "name": "get_workflow_summary",
      "description": "Get CircleCI Insights summary metrics for a workflow.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "workflowName": {
            "type": "string",
            "minLength": 1,
            "description": "The CircleCI workflow name."
          },
          "allBranches": {
            "type": "boolean",
            "description": "Whether to aggregate across all branches."
          },
          "branch": {
            "type": "string",
            "minLength": 1,
            "description": "The VCS branch name."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug",
          "workflowName"
        ],
        "description": "Input for getting a workflow insights summary. Do not provide both allBranches and branch."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "metrics": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Aggregated workflow metrics."
          },
          "trends": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Workflow trend metrics."
          },
          "workflow_names": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            },
            "description": "Workflow names available for the project."
          }
        },
        "additionalProperties": true,
        "description": "CircleCI workflow summary."
      }
    },
    {
      "id": "circleci.list_insights_summary",
      "service": "circleci",
      "name": "list_insights_summary",
      "description": "Get CircleCI Insights summary metrics for an organization.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "orgSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Organization slug in the form `vcs-slug/org-name`."
          },
          "reportingWindow": {
            "type": "string",
            "enum": [
              "last-7-days",
              "last-24-hours",
              "last-30-days",
              "last-60-days",
              "last-90-days"
            ],
            "description": "The reporting window used by CircleCI Insights."
          }
        },
        "additionalProperties": false,
        "required": [
          "orgSlug"
        ],
        "description": "Input for listing organization insights summary."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "org_data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "Organization-level summary data."
          },
          "org_project_data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "Project summary data."
            },
            "description": "Project summary data across the organization."
          },
          "all_projects": {
            "anyOf": [
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                },
                "description": "All project names available in the organization."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "CircleCI Insights organization summary."
      }
    },
    {
      "id": "circleci.list_pipelines_for_project",
      "service": "circleci",
      "name": "list_pipelines_for_project",
      "description": "List CircleCI pipelines for a project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "branch": {
            "type": "string",
            "minLength": 1,
            "description": "The VCS branch name."
          },
          "pageToken": {
            "type": "string",
            "minLength": 1,
            "description": "Pagination token returned by CircleCI."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug"
        ],
        "description": "Input for listing project pipelines."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The unique ID of the CircleCI pipeline."
                },
                "errors": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {},
                    "additionalProperties": true,
                    "description": "CircleCI pipeline error."
                  },
                  "description": "Errors attached to the pipeline."
                },
                "project_slug": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
                },
                "updated_at": {
                  "type": "string",
                  "description": "The time when the pipeline was last updated.",
                  "format": "date-time"
                },
                "number": {
                  "type": "integer",
                  "description": "The pipeline number."
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "created",
                    "errored",
                    "setup-pending",
                    "setup",
                    "pending"
                  ],
                  "description": "The current pipeline state reported by CircleCI."
                },
                "created_at": {
                  "type": "string",
                  "description": "The time when the pipeline was created.",
                  "format": "date-time"
                },
                "trigger": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Trigger metadata for the pipeline."
                },
                "vcs": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "Version control metadata for the pipeline."
                }
              },
              "additionalProperties": true,
              "description": "CircleCI pipeline."
            },
            "description": "The pipelines returned by CircleCI."
          },
          "next_page_token": {
            "anyOf": [
              {
                "type": "string",
                "description": "Pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated CircleCI pipeline list."
      }
    },
    {
      "id": "circleci.list_project_env_vars",
      "service": "circleci",
      "name": "list_project_env_vars",
      "description": "List masked CircleCI environment variables for a project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug"
        ],
        "description": "Input for listing project environment variables."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The environment variable name."
                },
                "value": {
                  "type": "string",
                  "description": "The masked environment variable value returned by CircleCI."
                },
                "created-at": {
                  "type": "string",
                  "description": "The creation timestamp payload returned by CircleCI, when present."
                }
              },
              "additionalProperties": true,
              "description": "CircleCI environment variable."
            },
            "description": "Environment variables returned by CircleCI."
          },
          "next_page_token": {
            "anyOf": [
              {
                "type": "string",
                "description": "Pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated CircleCI environment variable list."
      }
    },
    {
      "id": "circleci.list_workflows_by_pipeline",
      "service": "circleci",
      "name": "list_workflows_by_pipeline",
      "description": "List workflows for a CircleCI pipeline.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "pipelineId": {
            "type": "string",
            "minLength": 1,
            "description": "The unique ID of the CircleCI pipeline."
          },
          "pageToken": {
            "type": "string",
            "minLength": 1,
            "description": "Pagination token returned by CircleCI."
          }
        },
        "additionalProperties": false,
        "required": [
          "pipelineId"
        ],
        "description": "Input for listing pipeline workflows."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "pipeline_id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The unique ID of the CircleCI pipeline."
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The unique ID of the workflow."
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The workflow name."
                },
                "project_slug": {
                  "type": "string",
                  "minLength": 1,
                  "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "success",
                    "canceled",
                    "error",
                    "failed",
                    "failing",
                    "not_run",
                    "on_hold",
                    "running",
                    "unauthorized"
                  ],
                  "description": "The current workflow status reported by CircleCI."
                },
                "started_by": {
                  "type": "string",
                  "minLength": 1,
                  "description": "The user ID that started the workflow."
                },
                "pipeline_number": {
                  "type": "integer",
                  "description": "The pipeline number that owns the workflow."
                },
                "created_at": {
                  "type": "string",
                  "description": "The time when the workflow was created.",
                  "format": "date-time"
                },
                "stopped_at": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The time when the workflow stopped, or null."
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": true,
              "description": "CircleCI workflow."
            },
            "description": "The workflows returned by CircleCI."
          },
          "next_page_token": {
            "anyOf": [
              {
                "type": "string",
                "description": "Pagination token for the next page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": false,
        "description": "Paginated CircleCI workflow list."
      }
    },
    {
      "id": "circleci.trigger_pipeline",
      "service": "circleci",
      "name": "trigger_pipeline",
      "description": "Trigger a new CircleCI pipeline for a project.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "minLength": 1,
            "description": "Project slug in the form `vcs-slug/org-name/repo-name`. GitHub App and GitLab projects may use an opaque CircleCI slug such as `circleci/<org-id>/<project-id>`."
          },
          "branch": {
            "type": "string",
            "minLength": 1,
            "description": "The VCS branch name."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "The VCS tag name."
          },
          "parameters": {
            "type": "object",
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "description": "A string parameter value."
                },
                {
                  "type": "number",
                  "description": "A numeric parameter value."
                },
                {
                  "type": "boolean",
                  "description": "A boolean parameter value."
                }
              ]
            },
            "description": "Pipeline parameters declared in `.circleci/config.yml`."
          }
        },
        "additionalProperties": false,
        "required": [
          "projectSlug"
        ],
        "description": "Input for triggering a pipeline. Provide either branch or tag, not both."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "The unique ID of the CircleCI pipeline."
          },
          "state": {
            "type": "string",
            "enum": [
              "created",
              "errored",
              "setup-pending",
              "setup",
              "pending"
            ],
            "description": "The current pipeline state reported by CircleCI."
          },
          "number": {
            "type": "integer",
            "description": "The pipeline number."
          },
          "created_at": {
            "type": "string",
            "description": "The time when the pipeline was created.",
            "format": "date-time"
          }
        },
        "additionalProperties": true,
        "description": "CircleCI pipeline creation response."
      },
      "followUpActions": [
        "circleci.get_pipeline"
      ]
    }
  ]
}
