MCP DB Wizard

resmi

Oracle için sizi işten attırmayacak bir MCP sunucusu. MCP sunucusu bir SQL istemi sunmaz ve Oracle'a nasıl giriş yapılacağını söyleyemez. Yalnızca seçilen nesneler ve SQL ifadeleri kullanılabilir.

DB Wizard MCP ile neler yapabilirsiniz?

  • Küratörlüğü yapılmış PL/SQL rutinlerini çağırın — Asistanın, synuser_js_admin_getadmintoolinfo gibi onaylanmış bir paket prosedürünü çağırmasını isteyin; kayıtları, koleksiyonları ve tüm OUT parametrelerini döndürür.
  • Tek bir tablo satırı getirinsynuser_activity_log_get_by_pk aracılığıyla birincil anahtara göre bir satır isteyin ve JSON nesnesi olarak geri alın.
  • Tablo verilerini ekleyin, güncelleyin veya silin — Asistana, oluşturulan synuser_activity_log_insert aracını (ve _update ile _delete varyantlarını) kullanarak satırları değiştirmesini talimat verin.
  • Sonraki sıra değerini alınsynuser_job_id_nextval'dan sonraki sayıyı isteyin; başka hiçbir sıra işlemini açığa çıkarmadan.
  • Önceden onaylanmış SQL ifadelerini çalıştırın — Asistanın, adlandırılmış ve test edilmiş bir SQL dosyasını tür belirtilmiş bağlama parametreleriyle yürütmesini sağlayın; asla anlık sorgu metni oluşturmayın.

Dokümantasyon

Sizi işten ettirmeyecek bir Oracle MCP sunucusu

Yapılandırma, güvenlik modelinin tamamıdır

Aracı tarafından erişilebilir

  • synuser_activity_log_get_by_pk tablosu — birincil anahtara göre tek satır, JSON nesnesi olarak
  • synuser_activity_log_insert tablosu — _update ve _delete ile, aynı seçimden
  • synuser_js_admin_getadmintoolinfo PL/SQL rutini — kayıtlar, koleksiyonlar ve her OUT parametresi
  • synuser_job_id_nextval dizisi — sonraki değer, başka hiçbir şey

Tasarım gereği erişilemez

  • Çağırandan gelen SQL metni — argümanlar bağlama değerleridir
  • DDL — create, alter, drop
  • Seçmediğiniz herhangi bir nesne
  • Yapılandırmanın adlandırmadığı herhangi bir şema
  • Oracle parolası — ortam değişkeninde yaşar

SQL yazabilen bir aracı, DROP TABLE yazabilir. check_flight_availability adlı bir araca sahip bir aracı, bir uçuşta müsaitlik kontrolü yapabilir, çünkü önündeki kodun yaptığı tek şey budur.

Kürasyon, kod var olmadan önce gerçekleşir

En az ayrıcalık iddia etmesi kolay, doğrulaması zordur. Burada yapılandırma neyin üretileceğine karar verir: kimsenin seçmediği bir nesnenin aracı, yöntemi ve sınıfı yoktur. Çalışan bir süreç tarafından korunmak yerine ikili dosyada yoktur, bu nedenle hiçbir istem ona ulaşamaz.

İş kurallarınız zaten PL/SQL'de

Onlarca yıllık doğrulama, referans mantığı ve denetim davranışı paketlerin içinde yaşar. MCPDBWizard bu rutinleri olduğu gibi çağırır — kayıtlar, koleksiyonlar, ref cursor'lar ve döndürülen her OUT parametresi — bir dil modelinden kuralları bir SELECT'te yeniden icat etmesini istemek yerine.

Her çağrı, sorgu değil, adlandırılmış bir araçtır

İstekler, katı bir şemaya karşı synuser_activity_log_get_by_pk(entry_id) olarak gelir — yanlış yazılmış bir argüman, veritabanına dokunulmadan önce reddedilir. Günlüğe kaydetmek, hız sınırlamak, sonradan incelemek ve bir denetçiye açıklamak çok daha kolaydır.

İki kitle, iki kayıt

Proxy, hangi aracın kim tarafından çağrıldığını ve buna izin verilip verilmediğini yazar; her sunucu, aracın ne yaptığını ve nasıl sonuçlandığını yazar. Argüman adları her zaman; değerler yalnızca bunu açtıysanız, çünkü onları bir model seçti.

Oracle 12c'den 26ai'ye

O zamandan beri eklenen türler dahil: yerel JSON, BOOLEAN ve VECTOR ve JSON-ilişkisel ikilik görünümleri üzerinden belge CRUD'u. JSON'u dürüstçe geçemeyen herhangi bir şey — SDO_GEOMETRY, BFILE — tamamen atlanır ve günlük hangisinin ve neden olduğunu söyler.

Hesaplar, belirteçler ve bir yetki matrisi

Birçok hesap, birçok yapılandırma, yetki başına bir işaret. Aynı şema üzerinde farklı araçlara ihtiyaç duyan iki ekip, bir yapılandırma ve bir kural değil, iki yapılandırmadır — bu da ilk paneldeki garantiyi bozulmadan tutar.

  1. 01

    Nesneleri seçin

    Tasarım sayfalarını Oracle'a bağlayın ve açığa çıkarmak istediğiniz PL/SQL paketlerini, ayrıca kendinizin yazıp test ettiği SQL ifadelerini ve doğrudan erişilebilir olmasını istediğiniz tabloları ve dizileri işaretleyin. Bu seçim, bir yapılandırma dosyası olarak kaydedilir — özellikler veya JSON, sürümlenebilir ve parola içermez. The Design Procedures tab listing PL/SQL packages and procedures with tick boxes Önce PL/SQL, çünkü asıl nokta budur: açığa çıkarmak istediğiniz paketleri ve prosedürleri işaretleyin ve her biri, parametreleri türlendirilmiş tek bir araç haline gelir. The Design SQL Statements tab, editing a named .sql file with typed bind parameters Sonra kendi SQL'iniz — yazdığınız ve test ettiğiniz, bağlama parametreleri satır içinde türlendirilmiş ifadeler. Aracı bunları çalıştırır; kendi ifadelerini oluşturmaz. The Design Tables tab, with each table ticked and separate MCP read, create, update and delete boxes Son olarak tablolar, tablo başına değil işlem başına kürasyonlanır — yeni seçilen bir tablo salt okunurdur ve create, update ve delete işlemlerini işaretlemek size kalmıştır.
  2. 02

    Üret, derle, çalıştır

    Runtime sayfası, tam olarak bu nesneler için Java üretir, derler ve onu loopback üzerinde kendi sunucusu olarak başlatır. Seçmediğiniz herhangi bir şeyin aracı, yöntemi ve sınıfı yoktur — yalnızca reddedilmek yerine ikili dosyada yoktur.
    docker run -d --name mcpdbwizard \
      -p 8080:8080 \
      -e MCPDBWIZARD_ORACLE_HOST=db.example.com \
      -e MCPDBWIZARD_ORACLE_PORT=1521 \
      -e MCPDBWIZARD_ORACLE_SID=/PDB1 \
      -e MCPDBWIZARD_ORACLE_USER=appuser \
      -e DB_PASS_FILE=/run/secrets/oracle \
      -v mcpdbwizard-demo:/data \
      ghcr.io/srmadscience/mcpdbwizard:2.0.4
    
  3. 03

    MCP istemcinizi proxy'ye yönlendirin

    Aracılar, hesaplarına verilen bir belirteçle Streamable HTTP üzerinden 8080'e bağlanır. Proxy, kimin çağırdığını bilen tek bileşendir — hesabı, yetkiyi ve hız sınırını kontrol eder, sonra iletir.
    {
      "mcpServers": {
        "payroll": {
          "url": "http://localhost:8080/mcp/alice/payroll",
          "headers": {
            "Authorization": "Bearer <id>.<secret>"
          }
        }
      }
    }
    

Hızlı başlangıç belirteci verme ve yapılandırmayı yetkilendirme dahil tüm yolu içerir.