MCP DB Wizard

resmi

Server MCP untuk Oracle yang tidak akan membuat Anda dipecat. Server MCP ini tidak menampilkan prompt SQL, dan tidak dapat memberi tahu Anda cara masuk ke Oracle. Hanya objek yang dipilih dan pernyataan SQL yang dapat digunakan.

Apa yang bisa Anda lakukan dengan DB Wizard MCP?

  • Memanggil rutin PL/SQL yang dikurasi — Minta asisten untuk memanggil prosedur paket yang telah teruji seperti synuser_js_admin_getadmintoolinfo, yang mengembalikan rekaman, koleksi, dan semua parameter OUT.
  • Mengambil satu baris tabel — Minta baris berdasarkan kunci utama melalui synuser_activity_log_get_by_pk dan terima kembali sebagai objek JSON.
  • Menyisipkan, memperbarui, atau menghapus data tabel — Instruksikan asisten untuk memodifikasi baris melalui alat synuser_activity_log_insert yang dihasilkan (dengan varian _update dan _delete-nya).
  • Mendapatkan nilai urutan berikutnya — Minta nomor berikutnya dari synuser_job_id_nextval tanpa mengekspos operasi urutan lainnya.
  • Menjalankan pernyataan SQL yang telah disetujui sebelumnya — Minta asisten untuk mengeksekusi file SQL bernama dan teruji dengan parameter bind bertipe, tanpa pernah menyusun teks kueri ad-hoc.

Dokumentasi

Server MCP untuk Oracle yang tidak akan membuat Anda dipecat

Konfigurasi adalah keseluruhan model keamanan

Dapat dijangkau oleh agen

  • Tabel synuser_activity_log_get_by_pk — satu baris berdasarkan kunci utama, sebagai objek JSON
  • Tabel synuser_activity_log_insert — dengan _update dan _delete, dari pilihan yang sama
  • Rutin PL/SQL synuser_js_admin_getadmintoolinfo — rekaman, koleksi, dan setiap parameter OUT
  • Urutan synuser_job_id_nextval — nilai berikutnya, dan tidak ada yang lain

Tidak dapat dijangkau, secara desain

  • Teks SQL dari pemanggil — argumen adalah nilai bind
  • DDL — create, alter, drop
  • Objek apa pun yang tidak Anda pilih
  • Skema apa pun yang tidak disebutkan dalam konfigurasi
  • Kata sandi Oracle — tersimpan di lingkungan

Agen yang dapat menulis SQL dapat menulis DROP TABLE. Agen yang memegang alat bernama check_flight_availability dapat memeriksa ketersediaan penerbangan, karena hanya itu yang dilakukan kode di depannya.

Kurasi terjadi sebelum kode ada

Hak istimewa paling rendah mudah diklaim tetapi sulit diverifikasi. Di sini konfigurasi menentukan apa yang diemisikan: objek yang tidak dipilih siapa pun tidak memiliki alat, metode, atau kelas. Objek tersebut tidak ada dalam biner daripada dijaga oleh proses yang berjalan, sehingga tidak ada prompt yang dapat menjangkaunya.

Aturan bisnis Anda sudah ada di PL/SQL

Puluhan tahun validasi, logika referensial, dan perilaku audit hidup di dalam paket. MCPDBWizard memanggil rutin-rutin tersebut sebagaimana adanya — rekaman, koleksi, kursor ref, dan setiap parameter OUT yang dikembalikan — alih-alih meminta model bahasa untuk menciptakan kembali aturan dalam SELECT.

Setiap panggilan adalah alat bernama, bukan kueri

Permintaan tiba sebagai synuser_activity_log_get_by_pk(entry_id) terhadap skema yang ketat — argumen yang salah eja ditolak sebelum database disentuh. Jauh lebih mudah untuk dicatat, dibatasi kecepatannya, ditinjau setelahnya, dan dijelaskan kepada auditor.

Dua audiens, dua catatan

Proksi menulis siapa yang memanggil alat mana dan apakah diizinkan; setiap server menulis apa yang dilakukan alat dan bagaimana hasilnya. Nama argumen selalu; nilai hanya jika Anda mengaktifkannya, karena model yang memilihnya.

Oracle 12c hingga 26ai

Termasuk tipe yang ditambahkan sejak saat itu: JSON asli, BOOLEAN dan VECTOR, serta CRUD dokumen melalui tampilan dualitas JSON-relasional. Apa pun yang tidak dapat melintasi JSON secara jujur — SDO_GEOMETRY, BFILE — dilewati seluruhnya, dan log menyebutkan apa dan mengapa.

Akun, token, dan matriks pemberian hak

Banyak akun, banyak konfigurasi, satu centang per pemberian hak. Dua tim yang membutuhkan alat berbeda pada skema yang sama adalah dua konfigurasi, bukan satu konfigurasi dan satu aturan — yang menjaga jaminan di panel pertama tetap utuh.

  1. 01

    Pilih objek

    Hubungkan halaman Desain ke Oracle dan centang paket PL/SQL yang ingin Anda ekspos, plus pernyataan SQL apa pun yang telah Anda tulis dan uji sendiri, plus tabel dan urutan yang ingin Anda jangkau langsung. Pilihan tersebut disimpan sebagai file konfigurasi — properti atau JSON, dapat dikontrol versi, dan tidak mengandung kata sandi. The Design Procedures tab listing PL/SQL packages and procedures with tick boxes PL/SQL terlebih dahulu, karena itulah intinya: centang paket dan prosedur yang ingin Anda ekspos, dan masing-masing menjadi satu alat dengan parameter yang diketik. The Design SQL Statements tab, editing a named .sql file with typed bind parameters Lalu SQL Anda sendiri — pernyataan yang Anda tulis dan uji, dengan parameter bind yang diketik inline. Agen menjalankan ini; agen tidak menyusun pernyataannya sendiri. The Design Tables tab, with each table ticked and separate MCP read, create, update and delete boxes Terakhir tabel, dikurasi per operasi daripada per tabel — tabel yang baru dipilih bersifat hanya-baca, dan create, update, serta delete adalah milik Anda untuk dicentang.
  2. 02

    Hasilkan, kompilasi, jalankan

    Halaman Runtime mengeluarkan Java untuk objek-objek tersebut, mengompilasinya, dan meluncurkannya sebagai server sendiri di loopback. Apa pun yang tidak Anda pilih tidak memiliki alat, metode, atau kelas — objek tersebut tidak ada dalam biner daripada sekadar ditolak.
    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

    Arahkan klien MCP Anda ke proksi

    Agen terhubung pada 8080, melalui Streamable HTTP, dengan token yang diterbitkan ke akun mereka. Proksi adalah satu-satunya komponen yang mengetahui siapa yang memanggil — proksi memeriksa akun, pemberian hak, dan batas kecepatan, lalu meneruskan.
    {
      "mcpServers": {
        "payroll": {
          "url": "http://localhost:8080/mcp/alice/payroll",
          "headers": {
            "Authorization": "Bearer <id>.<secret>"
          }
        }
      }
    }
    

Panduan memulai memiliki seluruh jalur, termasuk menerbitkan token dan memberikan konfigurasi.