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?

  • Birincil anahtara göre bir satır getir — Belirli bir aktivite günlüğü kaydını isteyin ve synuser_activity_log_get_by_pk aracılığıyla JSON nesnesi olarak geri alın.
  • Aktivite günlüğüne ekleme yap — Asistanın yeni bir günlük kaydı eklemesini sağlayın; aynı seçilmiş tablodan güncelleme ve silme işlemleri de synuser_activity_log_insert ile mevcuttur.
  • Bir PL/SQL rutini çağır — Bir iş prosedürünü çalıştırmak için synuser_js_admin_getadmintoolinfo çağrısını yapın ve kayıtları, koleksiyonları ve tüm OUT parametrelerini alın.
  • Sonraki sıra değerini al — Diğer sıra verilerini açığa çıkarmadan synuser_job_id_nextval üzerinden bir sonraki kimliği isteyin.
  • Yalnızca önceden onaylanmış SQL çalıştır — Bağlama değerleri olarak argümanlarla ve geçici sorgu birleştirme olmadan, seçtiğiniz test edilmiş, tür belirtilmiş bir SQL ifadesini çalıştırın.

Dokümantasyon

İşinizi kaybettirmeyecek 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 ikiliden yoktur, bu yüzden hiçbir istem ona ulaşamaz.

Çalışan SQL aracı olmayan bir MCP sunucusunun neyi değiştirdiği

İş 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 içinde yeniden icat etmesini istemek yerine.

PL/SQL'iniz araçlara dönüştüğünde bir aracının gördükleri

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.

Kürasyonlu MCP araçları ve bir SQL istemi, yan yana

İki kitle, iki kayıt

Proxy, hangi aracın kim tarafından çağrıldığını ve 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 siz açtıysanız, çünkü onları bir model seçti.

Bir MCP sunucusunun günlüklerinin nereye gitmesi gerektiği

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 her ş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 tik. 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.

Bir MCP sunucusu için rol tabanlı erişim

Oracle'ın kendi yollarına karşı mı değerlendiriyorsunuz? Oracle'ın MCP sunucusuna bir alternatif, geçici SQL dışlandığında SQLcl MCP sunucusu alternatifleri okuyun veya çoğu insanın gerçekten sorduğu sorudan başlayın: bir yapay zeka aracısının üretim veritabanımı sorgulamasına izin verebilir miyim?

Design time: the Design pages read Oracle's data dictionary, the selection is saved as a config file with no password, and Java is generated and compiled for the selected objects only. Run time: an MCP client calls the proxy on port 8080 with a bearer token; the proxy checks the token, the grant and the rate limit, then forwards to the generated MCP server, which binds the arguments and calls Oracle. The proxy and the server both write to the audit trail.

Yapılandırma neyin üretileceğine karar verir; proxy kimin çağırabileceğine karar verir.

  1. 01

    Nesneleri seçin

    Tasarım sayfalarını Oracle'a bağlayın ve açığa çıkarmak istediğiniz PL/SQL paketlerini, 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 — properties 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 ikiliden 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.32
    
  3. 03

    MCP istemcinizi proxy'ye yönlendirin

    Aracılar, Streamable HTTP üzerinden 8080 portuna, hesaplarına verilen bir belirteçle 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ıç belirtecin verilmesi ve yapılandırmanın yetkilendirilmesi dahil tüm yolu içerir.