check_cci_installationLABSCO SUMMARY
A natural-language front end to CumulusCI, so Salesforce chores happen by intent rather than remembered commands.
Each tool maps to a CCI flow or task and hands back the command it runs, so an agent can create a scratch org, deploy to it, and run the Apex tests as a sequence, falling back to run_generic_cci_task for anything the named tools do not cover.
What it is
A server that fronts CumulusCI so an assistant can drive Salesforce development without memorising CLI syntax; it turns common CCI operations into named tools and can run any other CCI task on request.
What you get
- Scratch org management: create_dev_scratch_org, create_feature_scratch_org, create_beta_scratch_org, plus list_orgs and open_org
- Development operations: run_tests runs Apex tests, retrieve_changes pulls metadata from an org, and deploy pushes local metadata to one
- check_cci_installation verifies CumulusCI is set up and guides installation; run_generic_cci_task handles any task without a dedicated tool by inspecting it first
- Framework documentation is exposed as resources — trigger, logging, and cache-manager guidelines an agent can read on demand
Requirements
Python and a working CumulusCI install, plus access to a Salesforce org (a Dev Hub for scratch orgs). Runs directly or as a Docker container.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
Standing up a fresh dev environment
create_dev_scratch_org runs the CCI dev-org flow and open_org opens it in a browser, so a working org is one request away.
Deploying and verifying a change
deploy pushes local metadata to a chosen org and run_tests runs the Apex tests there, so a change is shipped and checked together.
Pulling changes made in the org
retrieve_changes brings metadata edits from an org back into the local project.
Running a CCI task with no dedicated tool
run_generic_cci_task looks the task up, reads its parameters, and runs it with the values collected — covering the long tail of CCI commands.
10 tools
Listed in project docs. Your client may show a different list.
create_dev_scratch_orgcreate_feature_scratch_orgcreate_beta_scratch_orglist_orgsopen_orgrun_testsretrieve_changesdeployrun_generic_cci_taskBEFORE YOU INSTALL
What to know first
Tools you get
10 tools named in the project's documentation.
Requires
- docker on PATH
- Python 3.12+
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Build the image from the repository, then point your client at it.
Server setup
git clone https://github.com/jorgesolebur/mcp-cci
cd mcp-cci
docker build -t ghcr.io/jorgesolebur/mcp-sfcore-th-dev:latest --build-arg PORT=8050 .Install CumulusCI on the machine your agent runs commands on and connect your Dev Hub: pipx install cumulusci-plus-azure-devops, then cci org connect <YOUR_DEV_HUB>. The tools hand back cci commands for the agent to run there.
MCP Clients
Claude Desktop
{
"mcpServers": {
"sfcore-th-dev": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"TRANSPORT",
"ghcr.io/jorgesolebur/mcp-sfcore-th-dev:latest"
],
"env": {
"TRANSPORT": "stdio"
}
}
}
}Windsurf
SSE needs the server already running: start the image you built with docker run -d -p 8050:8050 ghcr.io/jorgesolebur/mcp-sfcore-th-dev:latest, then add:
{
"mcpServers": {
"sfcore-th-dev": {
"serverUrl": "http://localhost:8050/sse"
}
}
}