The Semaphore CI MCP connector routes your AI agent's tool calls to Semaphore CI's own MCP server through Scalekit. Each user signs in to Semaphore CI once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 18 tools.
- Tools
- 18
- What they doRead · write · destructive
- 15 · 3 · 015 read3 write0 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret>Create the Semaphore CI MCP connection
In AgentKit > Connections, create a Semaphore CI MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Semaphore CI MCP server, so you don't need to register an OAuth app.
Authorize a user and make your first call
quickstart.mts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'import { createInterface } from 'node:readline/promises'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENVIRONMENT_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'semaphorecimcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Semaphore CI MCP:', link)const rl = createInterface({ input: process.stdin, output: process.stdout })await rl.question('Press Enter after authorizing...')rl.close()// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'semaphorecimcp_organizations_list',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "semaphorecimcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Semaphore CI MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="semaphorecimcp_organizations_list",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolsemaphorecimcp_artifact_job_logsFetch a signed URL for full artifact-backed job logs in Semaphore CI.Read-onlyArtifact Job Logs
Fetch a signed URL for full artifact-backed job logs in Semaphore CI.
Inputs
job_idstringrequired- The UUID of the job whose artifact logs to fetch.
organization_idstringrequired- The UUID of the Semaphore CI organization.
semaphorecimcp_artifacts_listList artifacts for a project, workflow, or job scope in Semaphore CI.Read-onlyArtifacts List
List artifacts for a project, workflow, or job scope in Semaphore CI.
Inputs
organization_idstringrequired- The UUID of the Semaphore CI organization.
scopestringrequired- The scope level at which to list artifacts.one of
projectsworkflowsjobs scope_idstringrequired- The UUID of the scoped resource (project ID, workflow ID, or job ID).
pathstring- Optional path prefix to filter artifacts.
project_idstring- Optional project UUID for additional context filtering.
semaphorecimcp_artifacts_signed_urlGenerate a signed URL for a single artifact file in Semaphore CI.Read-onlyArtifacts Signed URL
Generate a signed URL for a single artifact file in Semaphore CI.
Inputs
organization_idstringrequired- The UUID of the Semaphore CI organization.
pathstringrequired- The artifact file path to generate a signed URL for.
scopestringrequired- The scope level of the artifact.one of
projectsworkflowsjobs scope_idstringrequired- The UUID of the scoped resource (project, workflow, or job).
methodstring- HTTP method for the signed URL (GET or HEAD).one of
GETHEADdefaultGET project_idstring- Optional project UUID for additional filtering context.
semaphorecimcp_docs_searchSearch Semaphore CI documentation for guides, references, and API details.Read-onlyDocs Search
Search Semaphore CI documentation for guides, references, and API details.
Inputs
querystringrequired- The search query string to look up in Semaphore documentation.
limitnumber- Maximum number of results to return (1–30).default
10 versionstring- Optional documentation version to scope the search.
semaphorecimcp_get_test_resultsFetch aggregated test results for a specific Semaphore CI job or pipeline.Read-onlyGet Test Results
Fetch aggregated test results for a specific Semaphore CI job or pipeline.
Inputs
scopestringrequired- Whether to fetch test results for a job or a pipeline.one of
jobpipeline job_idstring- The UUID of the job to fetch test results for (required when scope is 'job').
pipeline_idstring- The UUID of the pipeline to fetch test results for (required when scope is 'pipeline').
semaphorecimcp_jobs_describeGet detailed information about a specific Semaphore CI job including its status, timestamps, and configuration.Read-onlyJobs Describe
Get detailed information about a specific Semaphore CI job including its status, timestamps, and configuration.
Inputs
job_idstringrequired- The UUID of the job to describe.
organization_idstringrequired- The UUID of the Semaphore CI organization.
modestring- Level of detail to return for the job.one of
summarydetaileddefaultsummary
semaphorecimcp_jobs_logsRetrieve the execution logs for a Semaphore CI job.Read-onlyJobs Logs
Retrieve the execution logs for a Semaphore CI job.
Inputs
job_idstringrequired- The UUID of the job whose logs to retrieve.
organization_idstringrequired- The UUID of the Semaphore CI organization.
semaphorecimcp_organizations_listList Semaphore CI organizations the authenticated user has access to.Read-onlyOrganizations List
List Semaphore CI organizations the authenticated user has access to.
Inputs
cursorstring- Pagination cursor from a previous response.
limitnumber- Maximum number of organizations to return.
semaphorecimcp_pipeline_jobsList all jobs in a Semaphore CI pipeline.Read-onlyPipeline Jobs
List all jobs in a Semaphore CI pipeline.
Inputs
organization_idstringrequired- The UUID of the Semaphore CI organization.
pipeline_idstringrequired- The UUID of the pipeline whose jobs to list.
semaphorecimcp_pipelines_listList pipelines associated with a Semaphore CI workflow, most recent first.Read-onlyList Pipelines
List pipelines associated with a Semaphore CI workflow, most recent first.
Inputs
organization_idstringrequired- UUID of the organization that owns the workflow.
workflow_idstringrequired- UUID of the workflow to list pipelines for.
cursorstring- Pagination cursor for fetching the next page of results.
limitnumber- Maximum number of pipelines to return (1-100).default
20 modestring- Level of detail to include in the response.one of
summarydetaileddefaultsummary project_idstring- UUID of the project to filter pipelines by, or empty string for no filter.
semaphorecimcp_projects_listList projects that belong to a Semaphore CI organization.Read-onlyList Projects
List projects that belong to a Semaphore CI organization.
Inputs
organization_idstringrequired- UUID of the organization to list projects for.
cursorstring- Pagination cursor for fetching the next page of results.
limitnumber- Maximum number of projects to return (1-200).default
25 modestring- Level of detail to include in the response.one of
summarydetaileddefaultsummary
semaphorecimcp_projects_searchSearch Semaphore CI projects by name, repository URL, or description.Read-onlySearch Projects
Search Semaphore CI projects by name, repository URL, or description.
Inputs
organization_idstringrequired- UUID of the organization to search projects in.
limitnumber- Maximum number of projects to return (1-50).default
20 max_pagesnumber- Maximum number of pages to fetch when searching across paginated results (1-10).default
5 modestring- Level of detail to include in the response.one of
summarydetaileddefaultsummary querystring- Text query to filter projects by name or description.
repository_urlstring- Filter projects by their linked repository URL.
semaphorecimcp_tasks_describeGet detailed information about a Semaphore CI scheduled task (periodic).Read-onlyDescribe Task
Get detailed information about a Semaphore CI scheduled task (periodic).
Inputs
organization_idstringrequired- UUID of the organization that owns the project.
project_idstringrequired- UUID of the project that owns the task.
task_idstringrequired- UUID of the scheduled task to describe.
modestring- Level of detail to include in the response.one of
summarydetaileddefaultsummary
semaphorecimcp_tasks_listList scheduled tasks (periodics) for a Semaphore CI project.Read-onlyList Tasks
List scheduled tasks (periodics) for a Semaphore CI project.
Inputs
organization_idstringrequired- UUID of the organization that owns the project.
project_idstringrequired- UUID of the project to list tasks for.
cursorstring- Pagination cursor for fetching the next page of results.
limitnumber- Maximum number of tasks to return (1-100).default
20 modestring- Level of detail to include in the response.one of
summarydetaileddefaultsummary
semaphorecimcp_workflows_searchSearch recent Semaphore CI workflows for a project, most recent first.Read-onlySearch Workflows
Search recent Semaphore CI workflows for a project, most recent first.
Inputs
organization_idstringrequired- UUID of the organization that owns the project.
project_idstringrequired- UUID of the project to search workflows for.
branchstring- Filter workflows by git branch name.
cursorstring- Pagination cursor for fetching the next page of results.
limitnumber- Maximum number of workflows to return (1-100).default
20 modestring- Level of detail to include in the response.one of
summarydetaileddefaultsummary my_workflows_onlyboolean- If true, return only workflows triggered by the authenticated user.default
true requesterstring- Filter workflows by the username of the user who triggered them.
semaphorecimcp_tasks_runTrigger a Semaphore CI scheduled task to run immediately.WriteRun Task
Trigger a Semaphore CI scheduled task to run immediately.
Inputs
organization_idstringrequired- UUID of the organization that owns the project.
project_idstringrequired- UUID of the project that owns the task.
task_idstringrequired- UUID of the scheduled task to trigger.
branchstring- Git branch to run the task against, overriding the task's default branch.
parametersobject- Key-value pairs of pipeline parameters to pass to the task run.
pipeline_filestring- Path to the pipeline YAML file to use, overriding the task's default.
semaphorecimcp_workflows_rerunRerun an existing Semaphore CI workflow.WriteRerun Workflow
Rerun an existing Semaphore CI workflow.
Inputs
workflow_idstringrequired- ID of the workflow to rerun.
semaphorecimcp_workflows_runSchedule a new Semaphore CI workflow run for a project.WriteRun Workflow
Schedule a new Semaphore CI workflow run for a project.
Inputs
organization_idstringrequired- UUID of the organization that owns the project.
project_idstringrequired- UUID of the project to run the workflow for.
referencestringrequired- Git reference to run the workflow against (e.g., refs/heads/main).
commit_shastring- Specific git commit SHA to run the workflow at.
parametersobject- Key-value pairs of pipeline parameters to pass to the workflow run.
pipeline_filestring- Path to the pipeline YAML file to use for this workflow run.
No tools match.