كيف تمنح Claude صلاحية قراءة فقط آمنة لقاعدة Postgres في الإنتاج
متى تستخدمه: تريد أن يجيب Claude على أسئلة عن قاعدة بيانات حقيقية دون أداة execute_sql عامة قادرة على تنفيذ DROP TABLE.
المتطلبات الأساسية
- Postgres قابل للوصول عبر libpq URL — استخدم دوراً بصلاحية قراءة فقط؛ لا تستخدم مستخدم التطبيق الذي لديه صلاحية كتابة أبداً
- Docker أو Go مُثبَّت — يُشحن Toolbox كثنائي واحد؛ صورة Docker هي الأسهل
الخطوات
-
تشغيل Toolbox مع ملف تعريف postgres الجاهزStart mcp-toolbox in stdio mode using
--prebuilt postgresand POSTGRES_URL pointing at the read replica.✓ تم النسخ→ يسجّل Toolboxtools registered: list_tables, describe_table, execute_sql_readonly -
ربطه بـ Claude DesktopAdd the toolbox docker config to claude_desktop_config.json under mcpServers, then restart Claude.✓ تم النسخ→ يُدرج
/mcpأدوات toolbox دون أخطاء -
طرح سؤال حقيقيToolbox: list tables. Then for
orders, what's the median order value in the last 7 days? Show me the exact SQL you ran.✓ تم النسخ→ يستدعي Claude: list_tables ثم describe_table ثم execute_sql_readonly بجملة SELECT فقط (لا UPDATE ولا DELETE)
النتيجة: تحليلات للقراءة فقط على بيانات حقيقية دون خطر تعديلها، مع سجل تدقيق لكل استعلام.
المزالق
- الإشارة إلى المستخدم القابل للكتابة — سيستدعي Claude في نهاية المطاف أداة تغيير — استخدم دائماً دوراً بصلاحية
GRANT SELECTفقط؛ تحقق باستخدام\duفي psql - استنفاد pool الاتصالات عند الاستدعاءات المتوازية للوكيل — اضبط
pool.max_open_connsفي tools.yaml؛ القيمة الافتراضية محافظة