KBÜ MCP
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
KBÜ MCP: Karabük Üniversitesi Arama Motoru ve MCP Sunucusu
Karabük Üniversitesi'nin bütün web varlığını (*.karabuk.edu.tr: 140+ site, sayfalar, binlerce PDF / Word /
Excel / PowerPoint belgesi, UNIS akademisyen profilleri, KBÜ Medya haberleri) tarayıp indeksleyen bir
hibrit arama motoru ve onu yapay zekâ uygulamalarına açan bir
Model Context Protocol (MCP) sunucusu. Claude, Codex, Cursor veya kurumun
kendi LLM'iyle (ör. Qwen) çalışan bir sohbet arayüzü; üniversiteyle ilgili soruları yalnızca üniversitenin kendi
kaynaklarından, kaynak bağlantısı ve tarih vererek cevaplar.
⚠️ Karabük Üniversitesi'nin resmi ürünü değildir. Yalnızca herkese açık sayfaları okur; giriş gerektiren sistemlere (OBS, EBYS, e-posta vb.) erişmez.
Kullanıcı: Yemekhane ücretleri ne kadar?
Asistan: SKS'nin "Yemekhane Fiyat Listesi"ne (25.06.2026) göre personel öğle yemeği ücreti ek göstergeye göre
82,56 TL ile 105,68 TL arasında; 4/D sürekli işçiler için 165,12 TL ...
Kaynaklar: sks.karabuk.edu.tr/yuklenen/dosyalar/12625062026154907.pdf (taranmış belge, OCR ile okundu)
Şunları da sorabilirsiniz: Yemekhane hangi saatlerde açık? · Bu haftaki yemek menüsü ne?🎯 Neler var?
Hibrit arama | Anahtar kelime (PostgreSQL tam metin, Türkçe kök/ek işleme, BM25F) + anlamsal arama (pgvector, |
Temiz veri | Her şey Markdown'a çevrilir (başlık, liste, tablo — PDF içindeki tablolar dahil); site şablonlarının menü / üst bilgi / alt bilgi kısımları atılır. Taranmış PDF'ler OCR ile önceden metne çevrilir; sorgu anında beklenmez. |
Kaynaklar | Birim siteleri ve dosyaları · UNIS (her akademisyen için profil + idari görevler + tüm yayın, proje, tez, ödül) · KBÜ Medya (son 2 yıl) · OBS Bologna (ders planı, AKTS) · canlı telefon rehberi, yemek listesi, akademik takvim. Her sonuç |
Kişi grafiği |
|
Üretim altyapısı | PostgreSQL + pgvector, Docker Compose, kalıcı iş kuyruğu (kesilirse kaldığı yerden), saatlik istek sınırı, hata logları, API anahtarıyla kimlik doğrulama. |
Doğruluk kuralları | Model yalnızca araç çıktısına dayanır, bulamadığını uydurmaz (başka üniversitenin bilgisini vermez), kaynak + tarih + "şunları da sorabilirsiniz" önerileriyle cevaplar, KBÜ dışı sorulara girmez. |
Related MCP server: AmritaGPT MCP Server
🏗️ Mimari
*.karabuk.edu.tr ─┐
UNIS (DataTables) ├─► worker: iş kuyruğu ─► çıkarıcılar ─────► PostgreSQL ◄──── mcp: uzak MCP sunucusu ◄── Claude / Codex /
KBÜ Medya │ (hız sınırı, (Markdown, OCR, docs, chunks (Streamable HTTP, kurum sohbet arayüzü
rehber, takvim ───┘ kaldığı yerden) UNIS profilleri) tsvector + vektör API anahtarı, 10 araç)
│ ▲
└─► embedding servisi (Ollama / vLLM / kurum LLM sunucusu, OpenAI uyumlu)📊 Arama kalitesi
55 soruluk altın sette (eval/questions.json) ilk 5 sonuçta doğru belge: hibrit %96, yalnızca anahtar kelime
%93. Açık kaynak Meilisearch aynı veri ve aynı embedding'lerle %89 (eval/compare_meilisearch.py).
🚀 Sunucu Kurulumu (üretim, Docker)
Adım adım ve internetsiz sunucu için: docs/SUNUCU_KURULUM.md.
Gerekenler: Docker + Docker Compose, bir embedding servisi (OpenAI uyumlu /v1/embeddings; ör. Ollama'da
ollama pull bge-m3, ya da kurumun LLM sunucusunun embedding uç noktası).
git clone https://github.com/1ffatihgur/kbu-mcp.git && cd kbu-mcp
cp .env.example .env # POSTGRES_PASSWORD, KBU_API_KEYS, KBU_EMBED_URL, KBU_CRAWL_MAX_PER_HOUR
docker compose up -d --buildÜç servis kalkar: db (PostgreSQL 17 + pgvector), mcp (:7860/mcp), worker (kuyruk + zamanlanmış
güncellemeler). İlk açılışta indeks boşsa worker tam taramayı kendiliğinden başlatır.
Dışarıdan model/paket indirilemeyen ağlarda: imajları internet erişimi olan bir makinede hazırlayıp taşıyın:
docker compose build && docker pull pgvector/pgvector:pg17
docker save kbu-mcp:2 pgvector/pgvector:pg17 | gzip > kbu-mcp-images.tar.gz
# sunucuda:
docker load < kbu-mcp-images.tar.gz && docker compose up -dMevcut bir indeksi taşımak için: pg_dump -Fc → pg_restore (veya v1 SQLite dosyasından kbu migrate-sqlite).
Önce küçük ölçekli test, sonra tam tarama
docker compose exec worker kbu sample # 5 site sayfası + 10 UNIS hocası + 10 KBÜ Medya haberi
# → /data/sample/*.md (indekse girecek Markdown) ve RAPOR.md (başlık, tarih, uzunluk, menü/alt bilgi kalıntısı)
docker compose exec worker kbu jobs add site --all # her site ayrı iş, sırayla taranır
docker compose exec worker kbu jobs add unis # UNIS akademisyen profilleri
docker compose exec worker kbu jobs add medya # KBÜ Medya (son 2 yıl)
docker compose exec worker kbu jobs list # durum ve hata nedenleriİstemcileri bağlama
İstemci | Nasıl |
Claude Code |
|
Codex |
|
Claude Desktop / claude.ai | Settings → Connectors → Add custom connector → URL: |
Kurumun sohbet arayüzü (Qwen vb.) | Herhangi bir MCP istemci kütüphanesiyle aynı adrese bağlanın; sistem promptu olarak sunucunun |
Sunucunun MCP talimatları ve araç açıklamaları, modelin KBÜ ile ilgili her soruda araçları kendiliğinden kullanmasını sağlar ("MCP kullan" demeye gerek yoktur).
🛠️ MCP Araçları
Araç | Ne yapar |
| Hibrit arama. Parametreler: |
| Belgenin tamamı (PDF'te sayfa numaralı Markdown). İndeksteki kopya 24 saatten eskiyse canlı siteden okur. |
| Bir hoca hakkında her şey: UNIS profili (unvan, birim, idari görevler, tüm yayın/proje/tez), rehber, adının geçtiği en yeni belgeler. |
| Resmi telefon rehberi (canlı). |
| Yemek listesi (gün gün), akademik takvim, birim duyuruları (canlı). |
| Birimler, herhangi bir KBÜ sayfasını canlı okuma, indeks durumu. |
prompt | Kapsam, doğruluk ve cevap biçimi kurallarını içeren sistem promptu. |
🧰 Komut Satırı
Komut | Açıklama |
| Kuyruk işçisi: işleri sırayla çalıştırır, boştayken saatlik/günlük güncellemeleri sıraya koyar |
| İş kuyruğu. Türler: |
| Taranamayan adresler ve nedenleri (site başına) |
| Küçük ölçekli parse testi → |
| Deneme araması |
| Tek seferlik işler |
| İstatistik, durum, uzak sorgu logu |
| v1 SQLite indeksini PostgreSQL'e taşı |
| MCP sunucusu (stdio veya uzak) |
⚙️ Ortam değişkenleri (.env)
Değişken | Varsayılan | Açıklama |
|
| PostgreSQL bağlantısı (compose'da otomatik) |
| — | Uzak MCP anahtarları (virgülle). Boşsa kimlik doğrulama kapalı |
|
| OpenAI uyumlu embedding servisi; yoksa arama anahtar kelimeyle sürer |
|
| Vektör boyutu (model değişirse) |
|
| Tüm sitelere toplam saatlik istek sınırı (ör. 1000) |
|
| KBÜ Medya'da geriye dönük gün sınırı |
|
| Büyük dosya sınırı / OCR sayfa tavanı |
|
| Araç cevap boyutu (bağlamı küçük modellerde taşmasın; model gerekirse daha fazlasını ister) |
|
| Uzak MCP'de IP başına dakikalık istek |
|
|
|
👩💻 Geliştirici Kurulumu (yerel)
git clone https://github.com/1ffatihgur/kbu-mcp.git && cd kbu-mcp
cp .env.example .env # yerelde: POSTGRES_PORT=5433, KBU_EMBED_URL=http://127.0.0.1:11434/v1
docker compose up -d db # yalnızca veritabanı
ollama pull bge-m3 # anlamsal arama için (isteğe bağlı)
python -m venv .venv && .venv/Scripts/activate # macOS/Linux: source .venv/bin/activate
pip install -e ".[dev]"
kbu update # ilk tarama (saatler sürer) — ya da: kbu migrate-sqlite data/kbu.db
pytest && python eval/run_eval.py # birim testleri + arama kalitesi (altın soru seti)Depo kopyasındaki .env otomatik okunur. Yerel MCP (stdio) için istemcide command olarak .venv içindeki
Python'u, args olarak ["-m", "kbu_mcp.server"] verin. Kendi bilgisayarınızdan geçici paylaşım için
scripts/remote.ps1 (Cloudflare quick tunnel) hâlâ kullanılabilir.
🔍 Sitelere özgü çözülmüş tuzaklar
Alt sitelerde
BAparametresi olmadan sayfa ana sayfaya yönlenir; aynı parametre bölümü de belirtir (BA=bilgisayar).Duyuru arşivleri
Refererolmadan açılmaz; ASP.NET GridView sayfalamaları__doPostBackile gezilir.UNIS'in arama sayfaları sonsuz filtre kombinasyonu üretir; bu yüzden sitenin kendi veri uç noktasından akademisyen başına tek belge derlenir.
KBÜ Medya tarihleri "25 Şubat, 2025" biçimindedir; 2 yıldan eski haberler indekslenmez.
Telefon rehberinde birimler fakülte düzeyindedir; bölüm bilgisi bölüm sitesiyle çapraz doğrulanır.
Yemek listesi PDF'inde yemekler kelime koordinatlarıyla günlere atanır.
Geçici bağlantı hatası indekslenmiş bir belgeyi artık aramadan düşürmez (yalnızca iki kez 404/410 alan belge kaldırılır).
⚠️ Bilinen Sınırlar
Giriş gerektiren sistemler ve kişisel öğrenci bilgileri kapsam dışıdır.
Resim olarak yayınlanan duyurular (JPG/PNG afişler) okunmaz. OCR rakam ve isimlerde hata yapabilir; araçlar bu durumda orijinal belgeyi önerir.
Cevapların doğruluğu sitedeki bilginin güncelliğiyle sınırlıdır; bu yüzden her cevap kaynak ve tarihle verilir.
🙏 Sorumlu Kullanım
Tarayıcı tanımlayıcı bir User-Agent, host başına eşzamanlılık/gecikme sınırı ve isteğe bağlı saatlik toplam
sınırla çalışır. Üretimde KBU_CRAWL_MAX_PER_HOUR tanımlamanız önerilir. İçeriğin hakları Karabük Üniversitesi'ne
aittir.
📜 Lisans: MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Search university course materials, your flashcards, quizzes, streak and quota. All tools read-only.
Search and query nTop's knowledge base and engineering guides from AI applications.
SEC filings, Wikipedia, arXiv, US Census and more for AI agents, with every answer source-linked.
License-checked research archive and technical-spec search for AI agents. Pay per call via x402.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI clients to search BUPT byrdocs materials, past exam papers, and freshmen knowledge base via natural language.-
- FlicenseNot gradedqualityBmaintenanceEnables AI agents and users to search institutional knowledge, retrieve policies and academic regulations, compare document versions, and generate grounded answers with verified citations through MCP tools, resources, and prompts.-
- AlicenseNot gradedqualityAmaintenanceLets AI agents browse and read a university's student resource center portal, retrieving the resource pages for a given admission year and department along with progression and graduation requirements, student handbook sections, academic calendars, bus timetables, class advisors, application forms and manuals, and contact information, each answer cited with its source document and page. It is an unofficial tool that runs locally and drives Chrome or Edge to access the portal on the user's behalf.4MIT
- AlicenseNot gradedqualityBmaintenanceLets METU (ODTÜ) students ask an AI assistant about university life — announcements, academic calendar, cafeteria menus, courses and prerequisites, parking rules, ring buses, campus places, health center, dorms and official links — with answers in Turkish and English that cite their official source and last-checked time.MIT