İçeriğe geç
Muhammet Şafak
en

Contextator

Devam ediyor Amiral Gemileri

Contextator, bir projenin dokümanını nerede duruyorsa oradan alıp — bağlı bir klasör, bir git deposu, yüklenmiş bir arşiv, bir Obsidian kasası ya da bir Notion çalışma alanı — tek bir MCP ucunun arkasında aranabilir kılan, kendi sunucunuzda çalışan çok kiracılı bir doküman sunucusudur. Her proje kendi URL'ini ve kendi doküman koleksiyonunu alır; embedding'ler varsayılan olarak makinenin CPU'sunda üretilir ve doküman üçüncü bir tarafa hiç gitmez.

Rolüm
Founder & Developer
Süre
Eylül 2026 — Devam ediyor

Teknolojiler

TypeScript Node.js Fastify PostgreSQL pgvector Drizzle ORM MCP transformers.js Docker Notion API Vitest Biome

Yetenekler

MCP Server Development Retrieval System Design Multi-Tenant Architecture Vector Search Hybrid Search Embedding Pipelines Document Parsing Incremental Indexing Self-Hosted Deployment Access Control Open Source Maintenance Evaluation Harness Design

Contextator, bir kodlama ajanının projenin dokümanına ulaşması için dokümanı bir yere taşımak gerekmesin diye geliştirdiğim açık kaynak bir MCP sunucusudur. Vaadi tek cümleyle şu: bir projeye kaynaklarını verirsiniz — sunucuda bağlı bir klasör, bir git deposu ya da onun tek bir alt dizini, yüklenmiş bir .zip/.tar.gz/.rar arşivi, bir Obsidian kasası veya bir Notion çalışma alanı — ve o proje /mcp/<proje-adı> adresinde kendi Model Context Protocol ucu hâline gelir. Claude Code, Cursor, Claude Desktop ya da MCP konuşan herhangi bir istemci o uca bağlanır ve üç araçla çalışır: search_docs anlamsal arama yapar, list_topics indekslenmiş dokümanları dizinlerine göre listeler, read_document bir dosyayı ya da onun tek bir bölümünü döndürür. Her kaynak kendi adının altına monte edildiği için bir doküman handbook/install.md diye okunur ve /mcp/billing’e bağlı bir istemci /mcp/mobile’ı hiç görmez.

Mimarinin merkezinde üç karar var. Yalıtım adresin kendisidir: her proje kendi URL’ini ve kendi doküman koleksiyonunu taşır, bu yüzden projeler arası arama tasarım gereği yoktur — alternatifi tek uca bir project parametresi koymaktı ve o tasarımda yalıtım ajanın doğru parametreyi göndermesine bağlı kalırdı. Varsayılan yol dışarıya çıkmaz: embedding’ler Xenova/multilingual-e5-small ile makinenin CPU’sunda üretilir (384 boyut, Türkçe dâhil çok dilli bir retrieval modeli); birkaç ortam değişkeniyle OpenAI embedding’lerine geçilebilir ama çalışmak için hiçbir API anahtarı gerekmez. Arama iki dizine birden sorar: bir cümle modeli bir sabit adını ya da hata kodunu temsil edemediği için her chunk hem HNSW vektör dizininde hem tam metin dizininde durur ve bir arama iki listenin sıralamalarını birleştirir — skorları değil sıralamaları, çünkü skor ağırlıkları embedding modeli her değiştiğinde yeniden öğrenilmek zorunda kalırdı. Dosyalar sha256 ile izlenir: yalnız değişen dosya yeniden gömülür, silinen dosyanın dokümanları düşer ve tam yeniden indeksleme canlı indeksin yanına yazılıp tek adımda yayına alınır, böylece proje bütün koşu boyunca cevap vermeye devam eder.

Ürün tek bir Docker container’ı olarak dağıtılır: PostgreSQL 16 + pgvector ve Node.js uygulaması aynı imajın içinde, küçük bir entrypoint betiğiyle birlikte ayağa kalkar ve birlikte durur — “kurulum tek komut olsun” kararının bedeli, tek-süreç ortodoksisinden bilinçli bir sapmadır. .html, .docx, .csv ve .pdf dosyaları indekslenirken Markdown’a çevrilir; metin katmanı olmayan taranmış bir PDF indekslenmez, reddedilir — çünkü fark edilmeyen başarısızlık, var olan ama hiçbir şeyle eşleşmeyen boş bir doküman üretendir. Hesap ve rol modeli root/admin/member üçlüsü ile proje başına viewer/editor üyeliğinden oluşur, her MCP ucu üç ayarlı bir kapı taşır (açık · bearer token · hesap gerektiren, OAuth 2.1 ile) ve retrieval kalitesi bir golden set üzerinden ölçülüp CI’da eşik altına düştüğünde derlemeyi düşürür. Lisans AGPL-3.0-or-later: değiştirilmiş bir sürümü ağ üzerinden sunan, o değişiklikleri aynı lisansla yayımlar.

Beslediği alan: Backend Geliştirici

Diğer Projeler

Tüm projeler
BabelQueue kapak görseli — bir üreticiden kuyruğa, oradan başka bir dildeki tüketiciye akan kanonik JSON zarfı ve çok dilli SDK listesi

BabelQueue

Devam ediyor

Founder & Developer

BabelQueue, farklı dillerde yazılmış servislerin aynı kuyruğu serileştirme kilidine takılmadan paylaşmasını sağlayan, dilden bağımsız bir mesaj kuyruğu standardıdır. PHP'nin serialize()'ı gibi dile özgü formatlar yerine; her dilin doğal olarak okuyabildiği, schema_version 1'de dondurulmuş katı bir JSON zarfı tanımlar. Redis ve RabbitMQ üzerinde, sidecar ya da broker eklentisi olmadan, %2'nin altında ek yükle çalışır.

JSON Redis RabbitMQ +6 daha
Haziran 2026 — Devam ediyor

QueryProxy

Devam ediyor

Founder & Developer

QueryProxy, geliştiricilerin üretim veritabanına kimlik bilgisi almadan erişebilmesi için geliştirdiğim self-hosted bir sorgu onay portalıdır. Yazılan SQL çözümlenerek denetlenir, bir DBA onayından geçtikten sonra kuyrukta çalışır, sonuçlar diske yazılırken maskelenir ve her adım değiştirilemez bir denetim kaydına düşer.

PHP Laravel Livewire +13 daha
Eylül 2026 — Devam ediyor

Ragmux

Devam ediyor

Founder & Developer

Ragmux, uygulamanız ile OpenAI, Anthropic, Gemini, DeepSeek ve Ollama gibi sağlayıcılar arasında duran, kendi sunucunuzda çalışan tek binary'lik bir AI gateway'idir. Tek bir OpenAI uyumlu API sunar, bir doküman havuzu bağlanmış projelerde her isteğe RAG bağlamını kendisi ekler ve sağlayıcı kimlik bilgisini uygulamadan uzakta, şifreli tutar. Kullanıcılar, bağlantılar, projeler, dokümanlar, vektörler ve metriklerin tamamı pgvector'lü tek bir PostgreSQL'de durur — Redis yok, ayrı bir vektör veritabanı yok.

Go PostgreSQL pgvector +11 daha
Eylül 2026 — Devam ediyor

Sitede Ara

Yazı, proje ve sayfalarda arama yapmak için yazmaya başlayın.

Esc ile kapat Pagefind ile güçlendirildi