Satır odaklı bir metin dosyası editörü. LLM araçları için optimize edilmiş, token kullanımını minimize etmek amacıyla verimli kısmi dosya erişimi sağlar.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"tumf-mcp-text-editor": {
"command": "python",
"args": [
"-m",
"mcp_text_editor"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/tumf/mcp-text-editor.git ~/.mcp/mcp-text-editor
cd ~/.mcp/mcp-text-editor Model Context Protocol (MCP) sunucusu, standardlaştırılmış bir API üzerinden satır odaklı metin dosyası düzenleme yetenekleri sağlar. LLM araçları için optimize edilmiş, token kullanımını en aza indirmek için verimli kısmi dosya erişimi.
Bu editörü Claude.app ile kullanmak için aşağıdaki konfigürasyonu eklemeniz gerekmektedir:
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"text-editor": {
"command": "uvx",
"args": [
"mcp-text-editor"
]
}
}
}
MCP Text Editor Server, istemci-sunucu mimarisinde güvenli ve verimli satır tabanlı metin dosyası işlemlerini kolaylaştırmak için tasarlanmıştır. Model Context Protocol'ü uygular, güçlü çakışma algılama ve çözümü ile güvenilir dosya düzenlemesi sağlar. Satır odaklı yaklaşım, senkronize dosya erişimi gerektiren uygulamalar için ideal hale getiriyor; örneğin işbirlikçi düzenleme araçları, otomatik metin işleme sistemleri veya birden fazla işlemin metin dosyalarını güvenli bir şekilde değiştirmesi gereken her senaryo. Kısmi dosya erişim yeteneği, LLM tabanlı araçlar için özellikle değerlidir çünkü yalnızca gerekli dosya bölümlerini yükleyerek token tüketimini azaltmaya yardımcı olur.
pyenv install 3.11.6
pyenv local 3.11.6
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate # Windows'ta: .venv\Scripts\activate
uv pip install -e ".[dev]"
uvx mcp-text-editor
Text Editor Server'ı Claude Desktop'a Smithery üzerinden otomatik olarak kurmak için:
npx -y @smithery/cli install mcp-text-editor --client claude
pyenv install 3.13.0
pyenv local 3.13.0
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
source .venv/bin/activate # Windows'ta: .venv\Scripts\activate
uv pip install -e ".[dev]"
Sunucuyu başlatın:
python -m mcp_text_editor
Sunucu, metin dosyası manipülasyonu için birkaç araç sağlar:
Bir veya daha fazla metin dosyasının içeriğini satır aralığı belirtimi ile alın.
Tek Aralık İsteği:
{
"file_path": "path/to/file.txt",
"line_start": 1,
"line_end": 10,
"encoding": "utf-8" // İsteğe bağlı, varsayılan utf-8
}
Birden Fazla Aralık İsteği:
{
"files": [
{
"file_path": "file1.txt",
"ranges": [
{"start": 1, "end": 10},
{"start": 20, "end": 30}
],
"encoding": "shift_jis" // İsteğe bağlı, varsayılan utf-8
},
{
"file_path": "file2.txt",
"ranges": [
{"start": 5, "end": 15}
]
}
]
}
Parametreler:
file_path: Metin dosyasının yoluline_start/start: Başlanacak satır numarası (1 tabanlı)line_end/end: Bitecek satır numarası (kapsayıcı, dosyanın sonu için null)encoding: Dosya kodlaması (varsayılan: "utf-8"). Metin dosyasının kodlamasını belirtin (örneğin, "shift_jis", "latin1")Tek Aralık Yanıtı:
{
"contents": "Dosya içeriği",
"line_start": 1,
"line_end": 10,
"hash": "sha256-hash-of-contents",
"file_lines": 50,
"file_size": 1024
}
Birden Fazla Aralık Yanıtı:
{
"file1.txt": [
{
"content": "Satırlar 1-10 içeriği",
"start": 1,
"end": 10,
"hash": "sha256-hash-1",
"total_lines": 50,
"content_size": 512
},
{
"content": "Satırlar 20-30 içeriği",
"start": 20,
"end": 30,
"hash": "sha256-hash-2",
"total_lines": 50,
"content_size": 512
}
],
"file2.txt": [
{
"content": "Satırlar 5-15 içeriği",
"start": 5,
"end": 15,
"hash": "sha256-hash-3",
"total_lines": 30,
"content_size": 256
}
]
}
Sağlam hata işleme ve çakışma algılama ile metin dosyalarına patch'ler uygulayın. Tek bir işlemde birden fazla dosyayı düzenlemeyi destekler.
İstek Formatı:
{
"files": [
{
"file_path": "file1.txt",
"hash": "sha256-hash-from-get-contents",
"encoding": "utf-8", // İsteğe bağlı, varsayılan utf-8
"patches": [
{
"start": 5,
"end": 8,
"range_hash": "sha256-hash-of-content-being-replaced",
"contents": "Satırlar 5-8 için yeni içerik\n"
},
{
"start": 15,
"end": null, // null, dosyanın sonunu ifade eder
"range_hash": "sha256-hash-of-content-being-replaced",
"contents": "Eklenecek içerik\n"
}
]
}
]
}
Önemli Notlar:
end: null dosyanın sonuna içerik eklemek için kullanılabilirBaşarılı Yanıt:
{
"file1.txt": {
"result": "ok",
"hash": "sha256-hash-of-new-contents"
}
}
İpuçlarını İçeren Hata Yanıtı:
{
"file1.txt": {
"result": "error",
"reason": "Content hash mismatch",
"suggestion": "get", // get_text_file_contents kullanmayı önerir
"hint": "Lütfen mevcut içerik ve hash'ları almak için önce get_text_file_contents'i çalıştırın"
}
}
"result": "error",
"reason": "Content hash mismatch - file was modified",
"hash": "current-hash",
"content": "Current file content"
} }
### Yaygın Kullanım Deseni
1. Mevcut içeriği ve hash'ı alın:
```python
contents = await get_text_file_contents({
"files": [
{
"file_path": "file.txt",
"ranges": [{"start": 1, "end": null}] # Tüm dosyayı oku
}
]
})
result = await edit_text_file_contents({
"files": [
{
"path": "file.txt",
"hash": contents["file.txt"][0]["hash"],
"encoding": "utf-8", // İsteğe bağlı, varsayılan "utf-8"
"patches": [
{
"line_start": 5,
"line_end": 8,
"contents": "Yeni içerik\n"
}
]
}
]
})
if result["file.txt"]["result"] == "error":
if "hash mismatch" in result["file.txt"]["reason"]:
# Dosya başka bir işlem tarafından değiştirildi
# Yeni içerik alın ve tekrar deneyin
pass
Sunucu çeşitli hata durumlarını işler:
İzin Reddedildi
Hash Uyuşmazlığı ve Range Hash Hataları
Kodlama Sorunları
Bağlantı Sorunları
Performans Sorunları
uv pip install -e ".[dev]"make allTestler tests dizininde bulunur ve pytest ile çalıştırılabilir:
# Tüm testleri çalıştır
pytest
# Kapsam raporu ile testleri çalıştır
pytest --cov=mcp_text_editor --cov-report=term-missing
# Belirli test dosyasını çalıştır
pytest tests/test_text_editor.py -v
Mevcut test kapsamı: 90%
mcp-text-editor/
├── mcp_text_editor/
│ ├── __init__.py
│ ├── __main__.py # Giriş noktası
│ ├── models.py # Veri modelleri
│ ├── server.py # MCP Sunucu uygulaması
│ ├── service.py # Çekirdek hizmet mantığı
│ └── text_editor.py # Metin editörü işlevselliği
├── tests/ # Test dosyaları
└── pyproject.toml # Proje yapılandırması
MIT
Bu proje, kodun tamamında Python tip ipuçlarını kullanır. Lütfen herhangi bir katkının bunu koruduğundan emin olun.
Tüm hata durumları uygun şekilde işlenmelidir ve anlamlı hata mesajları döndürmelidir. Sunucu, geçersiz giriş veya dosya işlemleri nedeniyle hiçbir zaman çökmemelidir.
Yeni özellikler uygun testleri içermelidir. Mevcut test kapsamını korumaya veya geliştirmeye çalışın.
Tüm kod Black ile formatlanmalı ve Ruff linting'ini geçmelidir. İmport sıralaması isort tarafından işlenmelidir.
AI destekli geliştirme için yapay zeka tabanlı görev yönetim sistemi. PRD ayrıştırma, görev genişletme, çoklu provider desteği (Claude, OpenAI, Gemini, Perplexity, xAI) ve optimize edilmiş context kullanımı için seçmeli tool yükleme özelliklerine sahiptir.
Kodlama ajanlarına Figma verilerine doğrudan erişim sağlayarak tasarım implementasyonunu tek adımda tamamlamalarını sağlar.
Yüksek performanslı kod zekası MCP sunucusu. Codebase'leri kalıcı bir knowledge graph'e indeksler — ortalama repo milisaniyeler içinde. 66 dil desteği, sub-ms sorgular, %99 daha az token. Tek statik binary, hiç bağımlılık yok.
gitmcp.io, herhangi bir GitHub repository veya projeye bağlanıp belgelendirme yapabilen genel amaçlı bir remote MCP server'ıdır.
Android/iOS uygulamaları ve cihazların otomasyon, geliştirme ile app scraping işlemleri için MCP Server. iPhone, Google Pixel, Samsung gibi simülatör, emülatör ve fiziksel cihazları destekler.
21st.dev'in en iyi tasarım mühendislerinden ilham alarak özel olarak hazırlanmış UI bileşenleri oluşturun.