MCP Sunucusu
Repomix, Model Context Protocol (MCP)'yi destekler ve AI asistanlarının kod tabanınızla doğrudan etkileşime girmesini sağlar. MCP sunucusu olarak çalıştırıldığında Repomix, AI asistanlarının manuel dosya hazırlamaya gerek kalmadan yerel veya uzak depoları analiz için paketleyebileceği araçlar sunar.
NOTE
Bu, kullanıcı geri bildirimlerine ve gerçek dünya kullanımına göre aktif olarak geliştireceğimiz deneysel bir özelliktir
Repomix'i MCP Sunucusu Olarak Çalıştırma
Repomix'i MCP sunucusu olarak çalıştırmak için --mcp bayrağını kullanın:
repomix --mcpBu komut Repomix'i MCP sunucusu modunda başlatır ve Model Context Protocol'ü destekleyen AI asistanları tarafından kullanılabilir hale getirir.
Sandbox Modu
Varsayılan olarak MCP sunucusu, kendisini çalıştıran kullanıcının erişebildiği her yolu okuyabilir. Bu, güvenilen yerel bir asistan için uygundur, ancak sunucu güvenilmeyen bir istemciye veya ajana açıldığında çok geniş kapsamlıdır. --sandbox bayrağı, sunucunun dosya araçlarını tek bir çalışma alanı dizinine sınırlar:
# Geçerli çalışma dizinine sınırla
repomix --mcp --sandbox
# Belirli bir dizine sınırla
repomix --mcp --sandbox path/to/projectSandbox modu açıkken:
- Her yol, çalışma alanı köküne görelidir. Mutlak yollar,
~,..ve Windows sürücü/UNC yolları reddedilir; kökün dışına çözümlenen yollar (sembolik bağlantılar üzerinden olanlar dahil) atlanır. Sonuçlar ve hata mesajları da göreli olduğundan ana makine yolları açığa çıkmaz. Bu durum, aşağıdaki araç referansındakidirectoryvepathargümanları için de geçerlidir: sandbox modunda bu değerleri, tabloların normalde tanımladığı mutlak yollar yerine çalışma alanı köküne göreli olarak verin. - Yalnızca salt okunur ve köke sınırlı araçlar kaydedilir:
pack_codebase,read_repomix_output,grep_repomix_output,file_system_read_filevefile_system_read_directory. Uzak paketleme, beceri oluşturma ve harici çıktıları ekleme devre dışı bırakılır; çünkü bunlar ağa erişir, dosya yazar veya keyfi yollara başvurur. İkifile_system_*aracının kendisi de yalnızca sandbox modunda kullanılabilir; buna erişebilecekleri alanı çalışma alanı kökü sınırlar.
Bu, işletim sistemi düzeyinde bir sandbox değil, araç yüzeyinin uygulama düzeyinde bir sınırlandırmasıdır (katmanlı savunma). Sunucuyu güvenilmeyen istemciler için barındırırken yine de platformunuzun olağan izolasyon yöntemlerini (konteynerler, ayrılmış kullanıcılar) kullanarak çalıştırın.
--sandbox, yalnızca MCP sunucusunu etkiler; --mcp olmadan hiçbir etkisi yoktur.
MCP Sunucularını Yapılandırma
Repomix'i Claude gibi AI asistanlarıyla MCP sunucusu olarak kullanmak için MCP ayarlarını yapılandırmanız gerekir:
VS Code için
VS Code'a Repomix MCP sunucusunu şu yöntemlerden biriyle kurabilirsiniz:
- Kurulum Rozetini Kullanarak:
- Komut Satırını Kullanarak:
code --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'VS Code Insiders için:
code-insiders --add-mcp '{"name":"repomix","command":"npx","args":["-y","repomix","--mcp"]}'Cline (VS Code eklentisi) için
cline_mcp_settings.json dosyasını düzenleyin:
{
"mcpServers": {
"repomix": {
"command": "npx",
"args": [
"-y",
"repomix",
"--mcp"
]
}
}
}Cursor için
Cursor'da Cursor Settings > MCP > + Add new global MCP server yolunu izleyerek Cline ile benzer bir yapılandırmayla yeni bir MCP sunucusu ekleyin.
Claude Desktop için
claude_desktop_config.json dosyasını Cline yapılandırmasına benzer şekilde düzenleyin.
Claude Code için
Claude Code'da Repomix'i MCP sunucusu olarak yapılandırmak için şu komutu kullanın:
claude mcp add repomix -- npx -y repomix --mcpAlternatif olarak, daha kolay bir deneyim için resmi Repomix eklentilerini kullanabilirsiniz. Eklentiler doğal dil komutları ve daha basit kurulum sunar. Ayrıntılar için Claude Code Eklentileri belgelerine bakın.
npx yerine Docker Kullanımı
npx yerine Docker kullanarak da Repomix'i MCP sunucusu olarak çalıştırabilirsiniz:
{
"mcpServers": {
"repomix-docker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/yamadashy/repomix",
"--mcp"
]
}
}
}Kullanılabilir MCP Araçları
MCP sunucusu olarak çalışırken Repomix şu araçları sunar:
pack_codebase
Bu araç, yerel bir kod dizinini AI analizine uygun birleşik bir XML dosyasına paketler. Kod tabanı yapısını analiz eder, ilgili kod içeriğini çıkarır ve metrikler, dosya ağacı ile biçimlendirilmiş kod içeriği dahil kapsamlı bir rapor oluşturur.
Parametreler:
| Parametre | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|
directory | Evet | — | Paketlenecek dizinin mutlak yolu |
compress | Hayır | false | Uygulama ayrıntılarını kaldırırken temel kod imzalarını ve yapısını çıkarmak için Tree-sitter sıkıştırmasını etkinleştirin. Token kullanımını yaklaşık %70 azaltırken anlam bütünlüğünü korur. grep_repomix_output artımlı içerik getirmeye izin verdiğinden genellikle gerekli değildir. |
includePatterns | Hayır | — | fast-glob desenleri kullanarak eklenecek dosyalar. Virgülle ayrılmış (örn. "**/*.{js,ts}", "src/**,docs/**") |
ignorePatterns | Hayır | — | fast-glob desenleri kullanarak hariç tutulacak ek dosyalar. Virgülle ayrılmış (örn. "test/**,*.spec.js"). .gitignore ve yerleşik dışlamaları tamamlar. |
outputPatterns | Hayır | — | Yapılandırma dosyasındaki output.patterns seçeneğini yansıtan, dosya başına dahil etme düzeyleri. { "pattern": string, "compress"?: boolean, "directoryStructureOnly"?: boolean } girdilerinden oluşan bir dizi. Eşleşen ilk desen kazanır; directoryStructureOnly, compress'e göre önceliklidir ve her iki bayrağın da bulunmadığı bir eşleşme tam içeriği zorunlu kılar (dosyaları genel bir compress'ten muaf tutmak için kullanışlıdır). Hedef deponun repomix.config.json dosyasındaki tüm output.patterns ayarlarının yerine geçer. |
topFilesLength | Hayır | 10 | Metrik özetinde gösterilecek boyuta göre en büyük dosya sayısı |
style | Hayır | xml | Çıktı format stili: xml, markdown, json veya plain |
Örnek:
{
"directory": "/path/to/your/project",
"compress": true,
"includePatterns": "src/**/*.ts,**/*.md",
"ignorePatterns": "**/*.log,tmp/",
"outputPatterns": [
{ "pattern": "src/core/**" },
{ "pattern": "docs/**/*", "directoryStructureOnly": true }
],
"topFilesLength": 10
}Yukarıdaki örnekte (compress: true, eşleşmeyen dosyalar için genel kural görevi görür), src/core/ altındaki dosyalar tam içerikli tutulur, docs/ altındaki dosyalar yalnızca dizin yapısında listelenir ve geri kalan her şey sıkıştırılır.
pack_remote_repository
Bu araç, bir GitHub deposunu getirir, klonlar ve AI analizine uygun birleşik bir XML dosyasına paketler. Uzak depoyu otomatik olarak klonlar, yapısını analiz eder ve kapsamlı bir rapor oluşturur.
Parametreler:
| Parametre | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|
remote | Evet | — | GitHub deposu URL'si veya kullanıcı/depo biçimi (örn. "yamadashy/repomix", "https://github.com/user/repo" veya "https://github.com/user/repo/tree/branch") |
compress | Hayır | false | Uygulama ayrıntılarını kaldırırken temel kod imzalarını ve yapısını çıkarmak için Tree-sitter sıkıştırmasını etkinleştirin. Token kullanımını yaklaşık %70 azaltırken anlam bütünlüğünü korur. grep_repomix_output artımlı içerik getirmeye izin verdiğinden genellikle gerekli değildir. |
includePatterns | Hayır | — | fast-glob desenleri kullanarak eklenecek dosyalar. Virgülle ayrılmış (örn. "**/*.{js,ts}", "src/**,docs/**") |
ignorePatterns | Hayır | — | fast-glob desenleri kullanarak hariç tutulacak ek dosyalar. Virgülle ayrılmış (örn. "test/**,*.spec.js"). .gitignore ve yerleşik dışlamaları tamamlar. |
outputPatterns | Hayır | — | Yapılandırma dosyasındaki output.patterns seçeneğini yansıtan, dosya başına dahil etme düzeyleri. { "pattern": string, "compress"?: boolean, "directoryStructureOnly"?: boolean } girdilerinden oluşan bir dizi. Eşleşen ilk desen kazanır; directoryStructureOnly, compress'e göre önceliklidir ve her iki bayrağın da bulunmadığı bir eşleşme tam içeriği zorunlu kılar (dosyaları genel bir compress'ten muaf tutmak için kullanışlıdır). |
topFilesLength | Hayır | 10 | Metrik özetinde gösterilecek boyuta göre en büyük dosya sayısı |
style | Hayır | xml | Çıktı format stili: xml, markdown, json veya plain |
Örnek:
{
"remote": "yamadashy/repomix",
"compress": true,
"includePatterns": "src/**/*.ts,**/*.md",
"ignorePatterns": "**/*.log,tmp/",
"outputPatterns": [
{ "pattern": "src/core/**" },
{ "pattern": "docs/**/*", "directoryStructureOnly": true }
],
"topFilesLength": 10
}read_repomix_output
Bu araç, Repomix tarafından oluşturulan çıktı dosyasının içeriğini okur. Büyük dosyalar için satır aralığı belirterek kısmi okumayı destekler. Bu araç, doğrudan dosya sistemi erişiminin sınırlı olduğu ortamlar için tasarlanmıştır.
Parametreler:
| Parametre | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|
outputId | Evet | — | Okunacak Repomix çıktı dosyasının kimliği |
startLine | Hayır | Dosya başı | Başlangıç satır numarası (1 tabanlı, dahil) |
endLine | Hayır | Dosya sonu | Bitiş satır numarası (1 tabanlı, dahil) |
Özellikler:
- Web tabanlı ortamlar veya korumalı uygulamalar için özel olarak tasarlanmıştır
- Daha önce oluşturulan çıktıların içeriğini kimliklerini kullanarak getirir
- Dosya sistemi erişimi gerektirmeden paketlenmiş kod tabanına erişim sağlar
- Büyük dosyalar için kısmi okumayı destekler
Örnek:
{
"outputId": "8f7d3b1e2a9c6054",
"startLine": 100,
"endLine": 200
}grep_repomix_output
Bu araç, JavaScript RegExp sözdizimini kullanan grep benzeri işlevsellikle bir Repomix çıktı dosyasında desen arar. Eşleşmelerin çevresinde isteğe bağlı bağlam satırlarıyla birlikte eşleşen satırları döndürür.
Parametreler:
| Parametre | Zorunlu | Varsayılan | Açıklama |
|---|---|---|---|
outputId | Evet | — | Aranacak Repomix çıktı dosyasının kimliği |
pattern | Evet | — | Arama deseni (JavaScript RegExp sözdizimi) |
contextLines | Hayır | 0 | Her eşleşmeden önce ve sonra gösterilecek bağlam satırı sayısı. beforeLines/afterLines belirtilmişse geçersiz kılınır. |
beforeLines | Hayır | — | Her eşleşmeden önce gösterilecek satırlar (grep -B gibi). contextLines'dan önceliklidir. |
afterLines | Hayır | — | Her eşleşmeden sonra gösterilecek satırlar (grep -A gibi). contextLines'dan önceliklidir. |
ignoreCase | Hayır | false | Büyük/küçük harfe duyarsız eşleşme gerçekleştirin |
Özellikler:
- Güçlü desen eşleştirme için JavaScript RegExp sözdizimini kullanır
- Eşleşmeleri daha iyi anlamak için bağlam satırlarını destekler
- Önceki/sonraki bağlam satırlarının ayrı kontrolüne olanak tanır
- Büyük/küçük harfe duyarlı ve duyarsız arama seçenekleri
Örnek:
{
"outputId": "8f7d3b1e2a9c6054",
"pattern": "function\\s+\\w+\\(",
"contextLines": 3,
"ignoreCase": false
}file_system_read_file ve file_system_read_directory
Bu iki dosya sistemi aracı yalnızca sandbox modunda (--sandbox) kullanılabilir; buna erişebilecekleri alanı çalışma alanı kökü sınırlar. --sandbox olmadan kaydedilmezler.
file_system_read_file
- Çalışma alanı köküne göreli bir yoldaki dosya içeriğini okur (örn.
src/index.ts) - Ek bir sezgisel önlem olarak bilinen gizli bilgi biçimleriyle (Secretlint) eşleşen içeriği reddeder; erişim sınırı tarama değil, çalışma alanı köküdür
- Geçersiz yollar için ana makine yollarını açığa çıkarmadan açık hata mesajları döndürür
file_system_read_directory
- Çalışma alanı köküne göreli bir yoldaki dizinin içeriğini listeler (örn.
.veyasrc) - Hem dosyaları hem dizinleri açık göstergelerle (
[FILE]veya[DIR]) gösterir - Proje yapısını keşfetmek ve kod tabanı organizasyonunu anlamak için kullanışlıdır
Örnek:
// Dosya okuma
const fileContent = await tools.file_system_read_file({
path: 'src/index.ts'
});
// Dizin içeriğini listeleme
const dirContent = await tools.file_system_read_directory({
path: 'src'
});Bu araçlar, AI asistanlarının şunları yapması gerektiğinde özellikle kullanışlıdır:
- Çalışma alanındaki belirli dosyaları analiz etmek
- Dizin yapılarında gezinmek
- Dosya varlığını ve erişilebilirliğini doğrulamak
Repomix'i MCP Sunucusu Olarak Kullanmanın Avantajları
Repomix'i MCP sunucusu olarak kullanmak birçok avantaj sunar:
- Doğrudan Entegrasyon: AI asistanları, manuel dosya hazırlamaya gerek kalmadan kod tabanınızı doğrudan analiz edebilir.
- Verimli İş Akışı: Dosyaları manuel olarak oluşturma ve yükleme ihtiyacını ortadan kaldırarak kod analizi sürecini kolaylaştırır.
- Tutarlı Çıktı: AI asistanının kod tabanını tutarlı ve optimize edilmiş bir biçimde almasını sağlar.
- Gelişmiş Özellikler: Kod sıkıştırma, token sayımı ve güvenlik kontrolleri gibi Repomix'in tüm özelliklerinden yararlanır.
Yapılandırıldıktan sonra AI asistanınız, kod tabanlarını analiz etmek için Repomix'in yeteneklerini doğrudan kullanabilir ve kod analizi iş akışlarını daha verimli hale getirir.
İlgili Kaynaklar
- Claude Code Eklentileri - Claude Code için pratik eklenti entegrasyonu
- Yapılandırma - Repomix davranışını özelleştirin
- Komut Satırı Seçenekleri - Tam CLI referansı
- Çıktı Formatları - Mevcut çıktı formatları hakkında bilgi edinin