Yapay zeka ajanlarının CircleCI'dan gelen derleme hatalarını düzeltmesini sağlar. Claude, Cursor, VS Code ve diğer yapay zeka ajanları için Resmi CircleCI…
Neler yapabilirsiniz?
- CircleCI yapılandırmasını doğrula — .circleci/config.yml dosyanızı sözdizimi ve anlamsal hatalar için config_helper ile doğrulamayı isteyin.
- Pipeline durumunu al — Bir dal için en son pipeline durumunu get_latest_pipeline_status ile kontrol edin.
- Pipeline'ları tetikle ve yeniden çalıştır — run_pipeline ile yeni bir pipeline başlatın veya rerun_workflow ile bir iş akışını baştan ya da başarısız işten yeniden çalıştırın.
- Derleme hatalarını araştır — get_build_failure_logs ile ayrıntılı hata günlüklerini ve get_job_test_results ile test sonuçlarını alın.
- Kararsız testleri bulun — find_flaky_tests kullanarak test yürütme geçmişini analiz edip kararsız testleri tespit edin.
- Kullanım ve maliyetleri analiz edin — download_usage_api_data ile kullanım verilerini indirin ve find_underused_resource_classes ile az kullanılan kaynak sınıflarını bulun.
[!IMPORTANT]
Bu paket kullanımdan kaldırılmıştır. Lütfen geçiş yapın.
@circleci/mcp-server-circleciartık yeni özellik geliştirmesi almıyor. Bunun yerine CircleCI'nin barındırılan MCP sunucusunu veya CircleCI CLI MCP'yi kullanın — bkz. CircleCI MCP genel bakış.Bu depo arşivlenecektir. Mevcut sürümler npm'den kurulabilir durumda kalacaktır, ancak bir CircleCI Kişisel API Token'ı tutan, bakımı yapılmayan bir sunucuyu çalıştırmanız önerilmez.
Kendi kendine yönetilen uzak taşımayı (
start=remote) çalıştırıyorsanız, önce geçiş yapın: barındırılan sunucu bunun doğrudan yerine geçer ve kuruluşunuzun token'ını aracılık eden, ağa açık bir hizmeti işletme ihtiyacını ortadan kaldırır.
CircleCI MCP Sunucusu
Model Context Protocol (MCP), büyük dil modelleri (LLM'ler) ile harici sistemler arasındaki bağlamı yönetmek için yeni, standartlaştırılmış bir protokoldür. Bu depoda, CircleCI için bir MCP Sunucusu sağlıyoruz.
Cursor, Windsurf, Copilot, Claude veya MCP uyumlu herhangi bir istemciyi kullanarak IDE'nizden çıkmadan doğal dil ile CircleCI ile etkileşim kurabilirsiniz.
Araçlar
| Araç | Açıklama |
|---|---|
config_helper |
CircleCI yapılandırmanızı doğrulayın ve rehberlik alın |
download_usage_api_data |
CircleCI Kullanım API'sinden kullanım verilerini indirin |
find_flaky_tests |
Test yürütme geçmişini analiz ederek tutarsız (flaky) testleri belirleyin |
find_underused_resource_classes |
Yetersiz kullanılan bilgi işlem kaynaklarına sahip işleri bulun |
get_build_failure_logs |
CircleCI derlemelerinden ayrıntılı hata günlüklerini alın |
get_job_test_results |
CircleCI işleri için test meta verilerini ve sonuçlarını alın |
get_latest_pipeline_status |
Bir dal için en son pipeline'ın durumunu alın |
list_artifacts |
Bir CircleCI işi tarafından üretilen yapıtları (artifact) listeleyin |
list_component_versions |
Bir CircleCI bileşeni için tüm sürümleri listeleyin |
list_followed_projects |
Takip ettiğiniz tüm CircleCI projelerini listeleyin |
rerun_workflow |
Bir iş akışını baştan veya başarısız işten yeniden çalıştırın |
run_pipeline |
Bir pipeline'ı çalıştırmayı tetikleyin |
run_rollback_pipeline |
Bir proje için geri alma (rollback) tetikleyin |
Kurulum
Ekip / merkezi dağıtım: Kuruluşunuz için geliştirici başına veya paylaşılan CircleCI token'larıyla tek bir paylaşılan uzak sunucu (Kubernetes, Docker vb.) çalıştırmak için bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu.
Cursor
Ön koşullar:
- CircleCI Kişisel API token'ı (daha fazla bilgi)
- NPX: Node.js >= v18 ve pnpm
- Docker: Docker
Yerel MCP Sunucusunda NPX Kullanımı
Cursor MCP yapılandırmanıza aşağıdakini ekleyin:
{ "mcpServers": { "circleci-mcp-server": { "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci@latest"], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" } } }
}
CIRCLECI_BASE_URListeğe bağlıdır — yalnızca şirket içi (on-prem) müşteriler için gereklidir.
MAX_MCP_OUTPUT_LENGTHisteğe bağlıdır — MCP yanıtları için maksimum çıktı uzunluğu (varsayılan: 50000).
Yerel MCP Sunucusunda Docker Kullanımı
Cursor MCP yapılandırmanıza aşağıdakini ekleyin:
{ "mcpServers": { "circleci-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "-e", "MAX_MCP_OUTPUT_LENGTH", "circleci/mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" } } }
}
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu. Kullanıcı başına istemci yapılandırmasını kullanın ve Cursor MCP yapılandırmanıza ekleyin (Cursor Settings → MCP).
VS Code
Ön koşullar:
- CircleCI Kişisel API token'ı (daha fazla bilgi)
- NPX: Node.js >= v18 ve pnpm
- Docker: Docker
Yerel MCP Sunucusunda NPX Kullanımı
Projenizdeki .vscode/mcp.json dosyasına aşağıdakini ekleyin:
{ "inputs": [ { "type": "promptString", "id": "circleci-token", "description": "CircleCI API Token", "password": true }, { "type": "promptString", "id": "circleci-base-url", "description": "CircleCI Base URL", "default": "https://circleci.com" } ], "servers": { "circleci-mcp-server": { "type": "stdio", "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci@latest"], "env": { "CIRCLECI_TOKEN": "${input:circleci-token}", "CIRCLECI_BASE_URL": "${input:circleci-base-url}" } } }
}
💡 Girdiler ilk sunucu başlatılışında sorulur, ardından VS Code tarafından güvenli şekilde saklanır.
Yerel MCP Sunucusunda Docker Kullanımı
Projenizdeki .vscode/mcp.json dosyasına aşağıdakini ekleyin:
{ "inputs": [ { "type": "promptString", "id": "circleci-token", "description": "CircleCI API Token", "password": true }, { "type": "promptString", "id": "circleci-base-url", "description": "CircleCI Base URL", "default": "https://circleci.com" } ], "servers": { "circleci-mcp-server": { "type": "stdio", "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "circleci/mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "${input:circleci-token}", "CIRCLECI_BASE_URL": "${input:circleci-base-url}" } } }
}
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu. .vscode/mcp.json içindeki kullanıcı başına istemci yapılandırmasını kullanın.
Claude Desktop
Ön koşullar:
- CircleCI Kişisel API token'ı (daha fazla bilgi)
- NPX: Node.js >= v18 ve pnpm
- Docker: Docker
Yerel MCP Sunucusunda NPX Kullanımı
claude_desktop_config.json dosyanıza aşağıdakini ekleyin:
{ "mcpServers": { "circleci-mcp-server": { "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci@latest"], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" } } }
}
Yerel MCP Sunucusunda Docker Kullanımı
claude_desktop_config.json dosyanıza aşağıdakini ekleyin:
{ "mcpServers": { "circleci-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "-e", "MAX_MCP_OUTPUT_LENGTH", "circleci/mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" } } }
}
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu. Claude Desktop ve CLI istemcileri bölümünde gösterildiği gibi bir sarmalayıcı betik oluşturun ve ardından claude_desktop_config.json dosyanızı buna yönlendirin.
Yapılandırma dosyanızı bulmak veya oluşturmak için Claude Desktop ayarlarını açın, sol kenar çubuğunda Developer seçeneğine tıklayın ve ardından Edit Config seçeneğine tıklayın. Yapılandırma dosyası şu konumdadır:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%Claudeclaude_desktop_config.json
Daha fazla bilgi için: https://modelcontextprotocol.io/quickstart/user
Claude Code
Ön koşullar:
- CircleCI Kişisel API token'ı (daha fazla bilgi)
- NPX: Node.js >= v18 ve pnpm
- Docker: Docker
Yerel MCP Sunucusunda NPX Kullanımı
claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -- npx -y @circleci/mcp-server-circleci@latest
Yerel MCP Sunucusunda Docker Kullanımı
claude mcp add circleci-mcp-server -e CIRCLECI_TOKEN=your-circleci-token -e CIRCLECI_BASE_URL=https://circleci.com -- docker run --rm -i -e CIRCLECI_TOKEN -e CIRCLECI_BASE_URL circleci/mcp-server-circleci
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu ve oradaki Claude Code istemci kurulumu.
Windsurf
Ön koşullar:
- CircleCI Kişisel API token'ı (daha fazla bilgi)
- NPX: Node.js >= v18 ve pnpm
- Docker: Docker
Yerel MCP Sunucusunda NPX Kullanımı
Windsurf mcp_config.json dosyanıza aşağıdakini ekleyin:
{ "mcpServers": { "circleci-mcp-server": { "command": "npx", "args": ["-y", "@circleci/mcp-server-circleci@latest"], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" } } }
}
Yerel MCP Sunucusunda Docker Kullanımı
Windsurf mcp_config.json dosyanıza aşağıdakini ekleyin:
{ "mcpServers": { "circleci-mcp-server": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "CIRCLECI_TOKEN", "-e", "CIRCLECI_BASE_URL", "-e", "MAX_MCP_OUTPUT_LENGTH", "circleci/mcp-server-circleci" ], "env": { "CIRCLECI_TOKEN": "your-circleci-token", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" } } }
}
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu. Windsurf mcp_config.json dosyanızda kullanıcı başına istemci yapılandırmasını kullanın.
Daha fazla bilgi için: https://docs.windsurf.com/windsurf/mcp
Amazon Q Developer CLI
Ön koşullar:
Amazon Q Developer'daki MCP istemci yapılandırması, mcp.json adlı bir dosyada JSON biçiminde saklanır. İki düzey yapılandırma desteklenir:
- Genel (Global):
~/.aws/amazonq/mcp.json— tüm çalışma alanları için geçerlidir - Çalışma alanı (Workspace):
.amazonq/mcp.json— yalnızca geçerli çalışma alanına özgüdür
Her iki dosya da mevcutsa içerikleri birleştirilir. Çakışma durumunda çalışma alanı yapılandırması önceliklidir.
Yerel MCP Sunucusunda NPX Kullanımı
~/.aws/amazonq/mcp.json dosyasını düzenleyin veya aşağıdaki içerikle .amazonq/mcp.json dosyasını oluşturun:
{ "mcpServers": { "circleci-local": { "command": "npx", "args": [ "-y", "@circleci/mcp-server-circleci@latest" ], "env": { "CIRCLECI_TOKEN": "YOUR_CIRCLECI_TOKEN", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" }, "timeout": 60000 } }
}
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu. Claude Desktop ve CLI istemcileri bölümünde gösterildiği gibi bir sarmalayıcı betik kullanın ve ardından q mcp add ile kaydedin.
Amazon Q Developer IDE'de
Ön koşullar:
Yerel MCP Sunucusunda NPX Kullanımı
~/.aws/amazonq/mcp.json dosyasını düzenleyin veya aşağıdaki içerikle .amazonq/mcp.json dosyasını oluşturun:
{ "mcpServers": { "circleci-local": { "command": "npx", "args": [ "-y", "@circleci/mcp-server-circleci@latest" ], "env": { "CIRCLECI_TOKEN": "YOUR_CIRCLECI_TOKEN", "CIRCLECI_BASE_URL": "https://circleci.com", "MAX_MCP_OUTPUT_LENGTH": "50000" }, "timeout": 60000 } }
}
Kendi Kendine Yönetilen Uzak MCP Sunucusu Kullanımı
Bkz. Kendi Kendine Yönetilen Uzak MCP Sunucusu. Claude Desktop ve CLI istemcileri bölümünde gösterildiği gibi bir sarmalayıcı betik kullanın ve ardından MCP yapılandırma arayüzü üzerinden ekleyin:
- MCP yapılandırma arayüzüne erişin
- + sembolünü seçin
- Kapsamı seçin: global veya local
- Bir ad girin (örn.
circleci-remote-mcp) - Taşıma protokolünü seçin: stdio
- Betiğinizin komut yolunu girin
- Save düğmesine tıklayın
Smithery
CircleCI MCP Sunucusunu Smithery aracılığıyla Claude Desktop için otomatik olarak kurmak için:
npx -y @smithery/cli install @CircleCI-Public/mcp-server-circleci --client claude
Kendi Kendine Yönetilen Uzak MCP Sunucusu
MCP sunucusunu merkezi olarak (örneğin Kubernetes veya Docker üzerinde) çalıştırın, böylece ekibiniz tek bir dağıtımı paylaşır. Geliştiricilerin kimlik doğrulama şeklini seçin:
Bir dağıtım modu seçin
| Mod | Ne zaman kullanılır | Sunucu kurulumu | İstemci kurulumu | CircleCI denetim izi |
|---|---|---|---|---|
| Kullanıcı başına token'lar (önerilir) | SSO destekli Kişisel API Token'ları olan ekipler | REQUIRE_REQUEST_TOKEN=true, sunucu PAT'si yok |
Her geliştirici kendi PAT'sini iletir | Geliştirici başına |
| Paylaşılan token (geçici) | Hızlı kullanıma alma, tek hizmet kimliği kabul edilebilir | Sunucuda CIRCLECI_TOKEN, REQUIRE_REQUEST_TOKEN=false (açık devre dışı bırakma) |
Kimlik doğrulama başlığı gerekmez | Tek paylaşılan kimlik |
Güvenlik: İstek kimlik doğrulaması, uzak modda varsayılan olarak açıktır. Paylaşılan token modu bunu devre dışı bırakır (
REQUIRE_REQUEST_TOKEN=false) ve her arayanın kimlik bilgisi olmadan sunucununCIRCLECI_TOKENkimliği gibi hareket edebilmesini sağlar — buna rastgele yapılandırmayla pipeline tetikleme de dahildir. Bunu yalnızca tamamen güvendiğiniz bir ağda etkinleştirin; aksi durumda kullanıcı başına token'ları tercih edin. Bir giriş noktasında TLS sonlandırması şifreleme sağlar, kimlik doğrulama sağlamaz.Bu kombinasyon genel bir arayüzde güvenli olmadığından, sunucu
REQUIRE_REQUEST_TOKEN=falsedeğerinin döngüsel olmayan (non-loopback) bir bağlama adresiyle birleştirilmesi durumunda,MCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS=trueile riski açıkça kabul etmediğiniz sürece başlamayı reddeder.Host/Originkontrolü kimlik doğrulamanın yerine geçmez — aşağıdaki DNS-rebinding korumasına bakın.
1. Sunucuyu dağıtın
Her iki mod da uzak HTTP modunu kullanır (start=remote). 8000 bağlantı noktasını (veya seçtiğiniz bağlantı noktasını) yayınlayın.
Kullanıcı başına token'lar (önerilir) — localhost üzerinden mcp-remote ile erişilir:
docker run --rm -p 8000:8000 -e start=remote -e port=8000 -e REQUIRE_REQUEST_TOKEN=true circleci/mcp-server-circleci
Kullanıcı başına token'lar (önerilir) — genel bir ana bilgisayar adı üzerinden mcp-remote ile erişilir:
docker run --rm -p 8000:8000 -e start=remote -e port=8000 -e REQUIRE_REQUEST_TOKEN=true -e MCP_ALLOWED_HOSTS=my-mcp.example.com circleci/mcp-server-circleci
Paylaşılan token (geçici) — genel bir ana bilgisayar adı üzerinden mcp-remote ile erişilir:
Bu mod, kuruluşun PAT'sini kimlik bilgisi olmayan herhangi bir arayana sunduğundan, yalnızca yayınlanan bağlantı noktasının güvenilmeyen ağlardan erişilemediği yerlerde çalıştırılmalıdır ve bunu açıkça kabul etmelisiniz; aksi takdirde sunucu başlamayı reddeder:
docker run --rm -p 8000:8000 -e start=remote -e port=8000 -e CIRCLECI_TOKEN=your-shared-circleci-pat -e REQUIRE_REQUEST_TOKEN=false -e MCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS=true -e MCP_ALLOWED_HOSTS=my-mcp.example.com circleci/mcp-server-circleci
Bunun yerine bağlantı noktasının önüne kimlik doğrulama koymayı tercih edin — SSO, mTLS veya API anahtarı gerektiren bir giriş noktası — veya yukarıdaki kullanıcı başına token'lara geçin.
Ortam değişkenleri:
| Değişken | Açıklama |
|---|---|
start=remote |
stdio yerine HTTP+SSE MCP sunucusunu başlatır |
port |
Konteyner içindeki dinleme portu (varsayılan: 8000) |
REQUIRE_REQUEST_TOKEN |
Authorization: Bearer veya Circle-Token başlığı olmayan istekleri reddeder. Varsayılan olarak zorunludur; kimlik doğrulamasız isteklere izin vermek için REQUIRE_REQUEST_TOKEN=false ayarlayın (paylaşılan belirteç modu) |
CIRCLECI_TOKEN |
Kullanıcı başına başlıklar gönderilmediğinde tüm istekler için paylaşılan yedek PAT |
CIRCLECI_BASE_URL |
İsteğe bağlı — yalnızca şirket içi için gereklidir (varsayılan: https://circleci.com) |
DISABLE_TELEMETRY=true |
Kullanım metrikleri dışa aktarımını devre dışı bırakır |
MCP_ALLOWED_HOSTS |
İzin verilecek ek Host başlık değerlerinin virgülle ayrılmış listesi (örn. my-mcp.example.com,my-mcp.example.com:443). Geri döngü ana bilgisayar adlarına her zaman izin verilir. Geri döngü olmayan her dağıtım için gereklidir. |
MCP_ALLOWED_ORIGINS |
İzin verilecek ek Origin başlık değerlerinin virgülle ayrılmış listesi (örn. https://my-app.example.com). Geri döngü kaynaklarına her zaman izin verilir. Yalnızca bir tarayıcı bu sunucuya doğrudan ulaştığında gerekir (mcp-remote üzerinden değil). |
MCP_BIND_HOST |
Bağlanılacak ağ arayüzü (varsayılan: 0.0.0.0). Yalnızca geri döngüyle sınırlamak için 127.0.0.1 olarak ayarlayın (Docker -p port eşlemesiyle uyumlu değildir). |
MCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS |
Geri döngü olmayan bir bağlama adresinde REQUIRE_REQUEST_TOKEN=false ile başlamak için gereklidir (=true). Porta ulaşabilen herhangi bir eşin, kimlik bilgisi olmadan sunucunun CIRCLECI_TOKEN kimliği gibi davrandığını kabul eder. İstek belirteçleri zorunlu olduğunda etkisi yoktur. |
MCP_FILE_OUTPUT_ROOTS |
Dosya okuma/yazma araçlarının kullanabileceği ek dizinlerin virgülle ayrılmış listesi (örn. /srv/reports,/data/exports). Çalışma dizini, ev dizini ve geçici dizine her zaman izin verilir. Aşağıdaki nota bakın. |
Dosya çıktı konumları (hem stdio hem de uzak taşımalar için geçerlidir): Dosya sistemi yolunu kabul eden araçlar —
get_build_failure_logs(outputDir),download_usage_api_data(outputDir) vefind_underused_resource_classes(csvFilePath) — yalnızca sunucunun çalışma dizini, kullanıcının ev dizini ve sistem geçici dizini içinde okuma ve yazma yapabilir. Bu kökler içinde, gizli yapılandırma dizinleri (~/.ssh,~/.aws,~/.config,.git, …),node_modulesve başlatma aracısı dizinleri reddedilir; ayrıca izin verilen köklerin dışına çözümlenen sembolik bağlantılar da reddedilir. Sistem dizinleri (/etc,/usr,/bin,/System,/Library,%SystemRoot%, …) koşulsuz olarak reddedilir ve yeniden etkinleştirilemez. Çıktı dosyaları asla bir sembolik bağlantı üzerinden yazılmaz.Kontrol ettiğiniz dizin bu köklerin dışındaysa — bir konteynerde
/workspace,/srv,/opt,/Volumes/workgibi ikincil bir birim —MCP_FILE_OUTPUT_ROOTSdeğerini o dizine ayarlayın, aksi takdirde bu yollar reddedilir. Bir stdio sunucusu için çalışma dizini genellikle zaten proje köküdür, bu nedenle yapılandırma gerekmez. Bu en çok uzak taşıma için önemlidir, çünkü yollar yerel kullanıcıdan değil ağ istemcilerinden gelir.
DNS-rebinding koruması (kimlik doğrulama değil): Uzak taşıma, her
/mcpisteğindeHostbaşlığını doğrular. Varsayılan olarak yalnızca geri döngü adresleri (localhost,127.0.0.1,[::1]) kabul edilir. Genel dağıtımlarMCP_ALLOWED_HOSTSdeğerini istemcilerin kullandığı ana bilgisayar adına ayarlamalıdır, aksi takdirde tüm/mcpistekleri403 Forbiddenalır./pingsağlık kontrolü uç noktası korunmaz, bu nedenle yük dengeleyici yoklamalarıHostne olursa olsun çalışmaya devam eder.
Originbaşlığı (tarayıcılar tarafından gönderilir) mevcut olduğunda da doğrulanır.mcp-remotegibi tarayıcı olmayan istemcilerOrigingöndermez, bu nedenle bu denetimden etkilenmezler.Bu denetim bir erişim kontrolü değildir ve böyle güvenilmemelidir. Her iki başlık da çağıran tarafından seçilir, bu nedenle tarayıcı olmayan herhangi bir istemci — curl, bir betik, ham bir soket — izin verilen bir
Hostgönderebilir veOriginatlayarak bunu karşılayabilir. Tek amacı, bir tarayıcının saldırgan tarafından kontrol edilen DNS tarafından sunucuya yönlendirilmesini durdurmaktır; bu, DNS-rebinding tehdididir. Çağıranların kimliğini doğrulamak,REQUIRE_REQUEST_TOKEN(veya portun önünde kimlik doğrulayan bir proxy) işidir. BirOriginbaşlığı zorunlu kılmak, her meşru CLI istemcisini bozar ve hiçbir saldırganı durdurmaz.Ters proxy arkasında: Proxy'niz
Hostdeğerini arka uç adresine yeniden yazıyorsa (nginx'in varsayılanı), orijinal ana bilgisayar adını geçirmek içinproxy_set_header Host $host;ekleyin ve ardındanMCP_ALLOWED_HOSTSdeğerini bu genel ana bilgisayar adına ayarlayın. Alternatif olarak,MCP_ALLOWED_HOSTSdeğerini proxy'nin ilettiği ana bilgisayar adına ayarlayın.
Sunucu, istek başına belirteçleri şu yollarla kabul eder:
Authorization: Bearer <circleci-pat>Circle-Token: <circleci-pat>
Bir istemci bir başlık belirteci gönderirse, sunucudaki CIRCLECI_TOKEN değerine göre önceliklidir.
Bir istek sırasında kaydedilen telemetri metrikleri, o istekle aynı belirteç kullanılarak dışa aktarılır.
2. İstemcileri yapılandırın
Çoğu MCP istemcisi yalnızca yerel (stdio) süreçleri destekler. Bunları uzak sunucunuza bağlamak için üçüncü taraf bir stdio'dan HTTP'ye köprü olan mcp-remote kullanın.
URL şeması: Yerel testler için
--allow-httpilehttp://localhost:8000/mcpkullanın. Üretimde, giriş/yük dengeleyicinizde TLS'yi sonlandırın ve--allow-httpolmadanhttps://your-host/mcpkullanın.
Windows:
--headerdeğerlerinde iki nokta üst üste etrafında boşluk bırakmaktan kaçının. TamBearer <token>değerini bir ortam değişkenine koyun.
Güvenlik: Örnekler kolaylık için
npxkullanır. Üretim veya ekip dağıtımları için, MCP yapılandırmanızda belirli bir sürümü sabitleyin (örneğinmcp-remoteyerinemcp-remote@0.1.38).0.1.16altındaki sürümleri kullanmayın (CVE-2025-6514).
İstemci yapılandırması: kullanıcı başına belirteçler
Her geliştirici, her istekte kendi CircleCI Kişisel API Belirtecini iletir:
{ "inputs": [ { "type": "promptString", "id": "circleci-token", "description": "CircleCI API Token", "password": true } ], "mcpServers": { "circleci-mcp-server-remote": { "command": "npx", "args": [ "-y", "mcp-remote", "http://localhost:8000/mcp", "--allow-http", "--header", "Authorization:${AUTH_HEADER}" ], "env": { "AUTH_HEADER": "Bearer ${input:circleci-token}" } } }
}
http://localhost:8000/mcp değerini ekibinizin sunucu URL'siyle değiştirin. Cursor ve VS Code ${input:...} istemlerini destekler; diğer istemciler AUTH_HEADER değerini doğrudan ayarlayabilir.
İstemci yapılandırması: paylaşılan belirteç
Sunucu CIRCLECI_TOKEN ayarlanmış ve REQUIRE_REQUEST_TOKEN=false ile başlatılmışsa (istek kimlik doğrulaması varsayılan olarak açıktır ve açıkça devre dışı bırakılmalıdır ve geri döngü olmayan bir bağlama ayrıca MCP_ALLOW_UNAUTHENTICATED_NETWORK_ACCESS=true gerektirir), istemcilerin belirteç göndermesine gerek yoktur:
{ "mcpServers": { "circleci-mcp-server-remote": { "command": "npx", "args": [ "-y", "mcp-remote", "http://localhost:8000/mcp", "--allow-http" ] } }
}
Claude Desktop ve CLI istemcileri
Bir sarmalayıcı betiği oluşturun (örn. circleci-remote-mcp.sh):
#!/bin/bash
export AUTH_HEADER="Bearer your-circleci-token"
npx mcp-remote http://localhost:8000/mcp --allow-http --header "Authorization:${AUTH_HEADER}"
Çalıştırılabilir yapın (chmod +x circleci-remote-mcp.sh), ardından MCP yapılandırmanızdan buna başvurun:
{ "mcpServers": { "circleci-remote-mcp-server": { "command": "/full/path/to/circleci-remote-mcp.sh" } }
}
Claude Code
claude mcp add circleci-mcp-server -e AUTH_HEADER="Bearer your-circleci-token" -- npx mcp-remote http://localhost:8000/mcp --allow-http --header "Authorization:${AUTH_HEADER}"
Paylaşılan belirteç sunucusu kullanırken --header ve AUTH_HEADER değerlerini atlayın.
3. Dağıtımı doğrulayın
# Health check (no auth required)
curl http://localhost:8000/ping # Should return 401 when REQUIRE_REQUEST_TOKEN=true and no token is sent
curl -s -o /dev/null -w "%{http_code}n" -X POST http://localhost:8000/mcp -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' # Should return 200 with a valid Bearer token and MCP Accept headers
curl -s -o /dev/null -w "%{http_code}n" -X POST http://localhost:8000/mcp -H "Content-Type: application/json" -H "Accept: application/json, text/event-stream" -H "Authorization: Bearer your-circleci-pat" -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'
Demo
Eylemde izleyin
Örnek: "Dalımdaki en son başarısız işlem hattını bul ve günlükleri al"
— daha fazla örnek için wiki sayfasına bakın.
https://github.com/user-attachments/assets/3c765985-8827-442a-a8dc-5069e01edb74
Araç Ayrıntıları
config_helper
CircleCI yapılandırma görevlerinde rehberlik ve doğrulama sağlayarak yardımcı olur.
.circleci/config.ymldosyanızı sözdizimi ve anlamsal hatalar için doğrular- Ayrıntılı doğrulama sonuçları ve yapılandırma önerileri sağlar
- Örnek: "CircleCI yapılandırmamı doğrula"
download_usage_api_data
Belirli bir kuruluş için CircleCI Kullanım API'sinden kullanım verilerini indirir. Esnek tarih girişini kabul eder (örn. "Mart 2025" veya "geçen ay"). Yalnızca bulut özelliği.
Seçenek 1: Aşağıdakileri sağlayarak yeni bir dışa aktarma işi başlatın:
orgId,startDate,endDate(en fazla 32 gün),outputDir
Seçenek 2: Aşağıdakileri sağlayarak mevcut bir dışa aktarma işini kontrol edin/indirin:
orgId,jobId,outputDir
Belirtilen zaman aralığı için CircleCI kullanım verilerini içeren bir CSV dosyası döndürür.
[!NOTE]
Kullanım verileri, maliyet optimizasyonu analizi içinfind_underused_resource_classesaracına beslenebilir.
find_flaky_tests
Test yürütme geçmişini analiz ederek CircleCI projenizdeki kararsız testleri belirler. CircleCI'daki kararsız test algılama özelliğini kullanır.
Bu araç üç şekilde kullanılabilir:
-
Proje Slug'ı Kullanma (Önerilen):
- Önce projelerinizi almak için
list_followed_projectskullanın, ardından: - Örnek: "projem için kararsız testleri al"
- Önce projelerinizi almak için
-
CircleCI Proje URL'sini Kullanma:
- Örnek: "https://app.circleci.com/pipelines/github/org/repo içindeki kararsız testleri bul"
-
Yerel Proje Bağlamını Kullanma:
- Çalışma alanı kökü ve git uzak URL'si sağlayarak yerel çalışma alanınızdan çalışır
- Örnek: "Geçerli projemdeki kararsız testleri bul"
Çıktı modları:
- Metin (varsayılan): Kararsız test ayrıntılarını metin biçiminde döndürür
- Dosya (
FILE_OUTPUT_DIRECTORYortam değişkeni gerektirir): Kararsız test ayrıntılarıyla bir dizin oluşturur
find_underused_resource_classes
Ortalama veya maksimum CPU/RAM kullanımı belirli bir eşiğin (varsayılan: %40) altında olan işleri bulmak için bir CircleCI kullanım verisi CSV dosyasını analiz eder.
download_usage_api_data dosyasından alınan bir CSV dosyası sağlayın.
Proje ve iş akışına göre düzenlenmiş, yetersiz kullanılan işlerin markdown listesini döndürür — maliyet optimizasyonu fırsatlarını belirlemek için kullanışlıdır.
get_build_failure_logs
CircleCI derlemelerinden ayrıntılı hata günlüklerini alır. Bu araç üç şekilde kullanılabilir:
-
Proje Slug'ı ve Dal Kullanma (Önerilen):
- Önce projelerinizi almak için
list_followed_projectskullanın, ardından: - Örnek: "ana daldaki projem için derleme hatalarını al"
- Önce projelerinizi almak için
-
CircleCI URL'lerini Kullanma:
- Doğrudan başarısız bir iş URL'si veya işlem hattı URL'si sağlayın
- Örnek: "https://app.circleci.com/pipelines/github/org/repo/123 adresinden günlükleri al"
-
Yerel Proje Bağlamını Kullanma:
- Çalışma alanı kökü, git uzak URL'si ve dal adı sağlayarak yerel çalışma alanınızdan çalışır
- Örnek: "Geçerli dalımdaki en son başarısız işlem hattını bul"
Araç, aşağıdakileri içeren biçimlendirilmiş günlükleri döndürür:
- İş adları
- Adım adım yürütme ayrıntıları
- Hata mesajları ve bağlam
get_job_test_results
CircleCI işleri için test meta verilerini alır ve IDE'nizden ayrılmadan test sonuçlarını analiz etmenize olanak tanır. Bu araç üç şekilde kullanılabilir:
-
Proje Slug'ı ve Dal Kullanma (Önerilen):
- Örnek: "ana daldaki projem için test sonuçlarını al"
-
CircleCI URL'sini Kullanma:
- İş URL'si:
https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def/jobs/789 - İş akışı URL'si:
https://app.circleci.com/pipelines/github/org/repo/123/workflows/abc-def - İşlem hattı URL'si:
https://app.circleci.com/pipelines/github/org/repo/123
- İş URL'si:
-
Yerel Proje Bağlamını Kullanma:
- Çalışma alanı kökü, git uzak URL'si ve dal adı sağlayarak yerel çalışma alanınızdan çalışır
Araç şunları döndürür:
- Tüm testlerin özeti (toplam, başarılı, başarısız)
- Başarısız testlerle ilgili ayrıntılı bilgi: ad, sınıf, dosya, hata mesajı, süre
- Zamanlamalı başarılı testlerin listesi
- Test sonucuna göre filtreleme
[!NOTE]
Test meta verileri CircleCI yapılandırmanızda yapılandırılmalıdır. Kurulum talimatları için Test Verilerini Topla bölümüne bakın.
get_latest_pipeline_status
Belirli bir dal için en son pipeline'ın durumunu alır. Bu araç üç şekilde kullanılabilir:
-
Proje Slug'ı ve Dal Kullanma (Önerilen):
- Örnek: "main dalındaki my-project için en son pipeline'ın durumunu al"
-
CircleCI Proje URL'si Kullanma:
- Örnek: "https://app.circleci.com/pipelines/github/org/repo için en son pipeline'ın durumunu al"
-
Yerel Proje Bağlamını Kullanma:
- Çalışma alanı kökü, git remote URL'si ve dal adı sağlayarak yerel çalışma alanınızdan çalışır
Örnek çıktı:
---
Workflow: build
Status: success
Duration: 5 minutes
Created: 4/20/2025, 10:15:30 AM
Stopped: 4/20/2025, 10:20:45 AM
---
Workflow: test
Status: running
Duration: unknown
Created: 4/20/2025, 10:21:00 AM
Stopped: in progress
list_artifacts
Bir CircleCI işi tarafından üretilen yapıtların listesini alır. Bu araç üç şekilde kullanılabilir:
-
Proje Slug'ı ve Dal Kullanma (Önerilen):
- Önce projelerinizi almak için
list_followed_projectskullanın, ardından: - Örnek: "main dalındaki my-project için yapıtları listele"
- Önce projelerinizi almak için
-
CircleCI URL'si Kullanma:
- İş URL'si:
https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def/jobs/789 - İş akışı URL'si:
https://app.circleci.com/pipelines/gh/organization/project/123/workflows/abc-def - Pipeline URL'si:
https://app.circleci.com/pipelines/gh/organization/project/123
- İş URL'si:
-
Yerel Proje Bağlamını Kullanma:
- Çalışma alanı kökü, git remote URL'si ve dal adı sağlayarak yerel çalışma alanınızdan çalışır
Şunlar için yararlıdır:
- Derleme yapıtları için indirme URL'lerini bulma (ikili dosyalar, raporlar, günlükler)
- Bir pipeline çalıştırması tarafından hangi yapıtların üretildiğini kontrol etme
list_component_versions
Bir ortamdaki belirli bir CircleCI bileşeni için tüm sürümleri listeler. Dağıtım durumunu, commit bilgilerini ve zaman damgalarını içerir.
Araç, sağlanmazsa bileşeni ve ortamı seçmenizi ister.
Şunlar için yararlıdır:
- Hangi sürümün şu anda canlı olduğunu belirleme
- Geri alma işlemleri için hedef sürümleri seçme
- Dağıtım ayrıntılarını alma (pipeline, iş akışı, iş)
list_followed_projects
Kullanıcının CircleCI'da takip ettiği tüm projeleri listeler.
- Erişiminiz olan tüm projeleri
projectSlugile gösterir - Örnek: "CircleCI projelerimi listele"
Örnek çıktı:
Projects followed:
1. my-project (projectSlug: gh/organization/my-project)
2. another-project (projectSlug: gh/organization/another-project)
[!NOTE]
projectSlug(proje adı değil) diğer birçok CircleCI aracı için gereklidir.
rerun_workflow
Bir iş akışını başlangıcından veya başarısız işten yeniden çalıştırır.
Yeni oluşturulan iş akışının kimliğini ve onu izlemek için bir bağlantı döndürür.
run_pipeline
Bir pipeline'ın çalışmasını tetikler. Bu araç üç şekilde kullanılabilir:
-
Proje Slug'ı ve Dal Kullanma (Önerilen):
- Örnek: "main dalındaki my-project için pipeline'ı çalıştır"
-
CircleCI URL'si Kullanma:
- Pipeline URL'si, İş Akışı URL'si, İş URL'si veya dal içeren Proje URL'si
- Örnek: "https://app.circleci.com/pipelines/github/org/repo/123 için pipeline'ı çalıştır"
-
Yerel Proje Bağlamını Kullanma:
- Çalışma alanı kökü, git remote URL'si ve dal adı sağlayarak yerel çalışma alanınızdan çalışır
Araç, pipeline yürütmesini izlemek için bir bağlantı döndürür.
run_rollback_pipeline
Bir CircleCI projesi için geri alma tetikler. Araç sizi etkileşimli olarak şu adımlarda yönlendirir:
- Proje Seçimi — seçim yapmanız için takip edilen projeleri listeler
- Ortam Seçimi — mevcut ortamları listeler (yalnızca bir tane varsa otomatik seçer)
- Bileşen Seçimi — mevcut bileşenleri listeler (yalnızca bir tane varsa otomatik seçer)
- Sürüm Seçimi — mevcut sürümleri görüntüler; geri alma için hedefi siz seçersiniz
- Geri Alma Modu Algılama — bir geri alma pipeline'ının yapılandırılıp yapılandırılmadığını kontrol eder
- Geri Almayı Yürüt — iki seçenek:
- Pipeline Geri Alma: geri alma pipeline'ını tetikler
- İş Akışını Yeniden Çalıştır: önceki bir iş akışını iş akışı kimliğini kullanarak yeniden çalıştırır
- Onay — yürütmeden önce özetler ve onaylar
Sorun Giderme
Hızlı Düzeltmeler
En yaygın sorunlar:
-
Paket önbelleklerini temizleyin:
npx clear-npx-cache npm cache clean --force -
En son sürümü zorlayın: Yapılandırmanıza
@latestekleyin:"args": ["-y", "@circleci/mcp-server-circleci@latest"] -
IDE'nizi tamamen yeniden başlatın (yalnızca pencereyi yeniden yüklemeyin)
Kimlik Doğrulama Sorunları
- Geçersiz token hataları: Kişisel API Token'ları içindeki
CIRCLECI_TOKENdoğrulayın - İzin hataları: Token'ın projelerinize okuma erişimi olduğundan emin olun
- Ortam değişkenleri yüklenmiyor:
echo $CIRCLECI_TOKEN(Mac/Linux) veyaecho %CIRCLECI_TOKEN%(Windows) ile test edin
Bağlantı ve Ağ Sorunları
- Temel URL:
CIRCLECI_BASE_URLdeğerininhttps://circleci.comolduğunu doğrulayın - Kurumsal ağlar: Güvenlik duvarı arkasındaysanız npm proxy ayarlarını yapılandırın
- Güvenlik duvarı engellemesi: Güvenlik yazılımının paket indirmelerini engelleyip engellemediğini kontrol edin
Sistem Gereksinimleri
- Node.js sürümü:
node --versionile >= 18.0.0 olduğundan emin olun - Node.js'i güncelleyin: Uyumluluk sorunları yaşıyorsanız en son LTS sürümünü düşünün
- Paket yöneticisi: npm/pnpm'in çalıştığını doğrulayın:
npm --version
IDE'ye Özgü Sorunlar
- Yapılandırma dosyası konumu: İşletim sisteminiz için yolu tekrar kontrol edin
- Sözdizimi hataları: Yapılandırma dosyanızdaki JSON sözdizimini doğrulayın
- Konsol günlükleri: Belirli hatalar için IDE geliştirici konsolunu kontrol edin
- Farklı bir IDE deneyin: Sorunu yalıtmak için desteklenen başka bir düzenleyicide test edin
Süreç Sorunları
Takılan süreçler — mevcut MCP süreçlerini sonlandırın:
# Mac/Linux:
pkill -f "mcp-server-circleci" # Windows:
taskkill /f /im node.exe
Bağlantı noktası çakışmaları: Bağlantı engellenmiş görünüyorsa IDE'nizi yeniden başlatın.
Gelişmiş Hata Ayıklama
- Paketi doğrudan test edin:
npx @circleci/mcp-server-circleci@latest --help - Ayrıntılı günlük kaydı:
DEBUG=* npx @circleci/mcp-server-circleci@latest - Docker yedeği: npx sürekli başarısız olursa Docker kurulumunu deneyin
Hâlâ yardıma mı ihtiyacınız var?
- Benzer sorunlar için GitHub Sorunları kontrol edin
- Sorun bildirirken işletim sisteminizi, Node sürümünüzü ve IDE'nizi ekleyin
- IDE konsolundan ilgili hata mesajlarını paylaşın
Telemetri
Sunucu, araç kullanımını izlemek için OpenTelemetry metriklerini destekler. DISABLE_TELEMETRY=true ayarlamadığınız sürece metrikler dışa aktarılır. Uzak dağıtımlarda metrikler, istekle aynı token'ı kullanır (kullanıcı başına PAT veya paylaşılan sunucu PAT).
| Metrik | Açıklama |
|---|---|
circleci.mcp.tool.invocations |
Araç çağrısı sayısı |
circleci.mcp.tool.duration_ms |
Milisaniye cinsinden yürütme süresi |
circleci.mcp.tool.errors |
Hata sayısı |
Geliştirme
Başlarken
-
Depoyu klonlayın:
git clone https://github.com/CircleCI-Public/mcp-server-circleci.git cd mcp-server-circleci -
Bağımlılıkları yükleyin:
pnpm install -
Projeyi derleyin:
pnpm build
Docker Konteyneri Oluşturma
Docker konteynerini yerel olarak şu şekilde oluşturabilirsiniz:
docker build -t circleci:mcp-server-circleci .
Bu, herhangi bir MCP istemcisiyle kullanabileceğiniz circleci:mcp-server-circleci olarak etiketlenmiş bir Docker imajı oluşturur.
Yerel stdio modu (tek geliştirici, token istemcide):
docker run --rm -i -e CIRCLECI_TOKEN=your-circleci-token -e CIRCLECI_BASE_URL=https://circleci.com circleci/mcp-server-circleci
Uzak mod (bir ekip için merkezi sunucu): Kendi Kendine Yönetilen Uzak MCP Sunucusu bölümüne bakın.
MCP Inspector ile Geliştirme
MCP Sunucusu üzerinde yineleme yapmanın en kolay yolu MCP inspector kullanmaktır. MCP inspector hakkında daha fazla bilgiyi https://modelcontextprotocol.io/docs/tools/inspector adresinde bulabilirsiniz.
-
Geliştirme sunucusunu başlatın:
pnpm watch # Keep this running in one terminal -
Ayrı bir terminalde inspector'ı başlatın:
pnpm inspector -
Ortamı yapılandırın:
CIRCLECI_TOKENdeğerini inspector arayüzündeki Ortam Değişkenleri bölümüne ekleyin- Token'ın CircleCI projelerinize okuma erişimi olması gerekir
- İsteğe bağlı olarak CircleCI Temel URL'nizi ayarlayın (varsayılan
https://circleci.com)
Test
-
Test paketini çalıştırın:
pnpm test -
Geliştirme sırasında izleme modunda testleri çalıştırın:
pnpm test:watch
Daha ayrıntılı katkı yönergeleri için CONTRIBUTING.md dosyasına bakın.
Kurulum
npx -y @circleci/mcp-server-circleci@latest
Kaynak: mcpservers.org