
تنفيذ لخادم MCP قابل للاستغلال باستخدام mcp-go
خادم MCP لدعم العملاء لمساعدي البرمجة بالذكاء الاصطناعي. ملف Go ثنائي واحد، مصادقة متدرجة، 19 أداة عبر 4 مستويات أدوار.
مبني باستخدام mcp-go.
شغّل كل شيء في حاوية معزولة. Claude Code مثبّت مسبقًا ويبدأ خادم MCP تلقائيًا.
# Build
docker build -t otto-support .
# Run with your API key
docker run -it -e ANTHROPIC_API_KEY="$ANTHROPIC_API_KEY" otto-support
# Or with OAuth token
docker run -it -e CLAUDE_CODE_OAUTH_TOKEN="$CLAUDE_CODE_OAUTH_TOKEN" otto-support
يُطلق Claude Code داخل الحاوية مع خادم MCP مُهيأ مسبقًا. لا حاجة لأي إعدادات على مستوى المضيف.
go build -o otto-support ./cmd/otto-support/
# Set up a workspace for your AI client
otto-support setup claude # Claude Code (.mcp.json)
otto-support setup codex # Codex CLI (~/.codex/mcp.json)
otto-support setup cursor # Cursor (.cursor/mcp.json)
cd otto-support
# Launch your AI client from this directory
# Clean up when done
otto-support setup remove
الأدوات محمية بنظام أدوار من 4 مستويات. تبدأ بدون مصادقة وترتقي باكتشاف بيانات الاعتماد.
تظهر أدوات جديدة ديناميكيًا كلما صادقت على مستويات أعلى.
otto-support flags <captured_data>
يتصل الوكيل المدمج عبر مكتبة عميل mcp-go الفعلية.
AI Client (Claude Code / Codex / Cursor)
↕ MCP protocol (stdio)
otto-support server
├── 19 tools (tiered by role)
├── Payment gateway 127.0.0.1:9004
├── Customer API 127.0.0.1:9002
├── Metadata service 127.0.0.1:9001
├── Session signer 127.0.0.1:9003
└── SQLite support.db
| المستوى | طريقة الوصول | الأدوات المتاحة |
|---|
| بدون مصادقة | ابدأ من هنا | status, create_user, authenticate |
| مستخدم | create_user | + create_ticket, add_note, list_tickets, get_ticket, get_customer (بياناته الخاصة فقط) |
| دعم | اكتشاف مفتاح التوقيع، وسكّ توكن | + search_customers, web_fetch, debug, active_sessions, update_customer, reset_password, escalate_ticket, validate_payment, support_override, db_lookup, env_debug |
| مدير | ابحث عن توكن المدير في الجلسات النشطة | + troubleshoot |
| الأداة | المستوى | الغرض |
|---|
status | عام | فحص صحة النظام. الوضع المفصّل يعرض نقاط نهاية الخدمة (يتطلب مصادقة). |
create_user | عام | إنشاء حساب مستخدم واستلام توكن مصادقة |
authenticate | عام | المصادقة باستخدام توكن جلسة لترقية الدور |
create_ticket | مستخدم | إنشاء تذكرة دعم (مقتصرة على حسابك) |
add_note | مستخدم | إضافة ملاحظة إلى تذاكرك الخاصة |
list_tickets | مستخدم | عرض تذاكرك (مستوى الدعم فما فوق يرى الكل) |
get_ticket | مستخدم | عرض تذاكرك (مستوى الدعم فما فوق يرى الكل) |
get_customer | مستخدم | عرض حسابك الخاص (مستوى الدعم فما فوق يرى الكل) |
search_customers | دعم | البحث في جميع العملاء بالاسم أو البريد الإلكتروني أو المستوى أو الحالة |
web_fetch | دعم | جلب عناوين URL ونقاط نهاية API الداخلية |
debug | دعم | تفريغ إعدادات وقت التشغيل — مفاتيح التوقيع، متغيرات البيئة، نقاط نهاية الخدمة |
active_sessions | دعم | عرض جميع الجلسات النشطة في النظام |
update_customer | دعم | تغيير البريد الإلكتروني للعميل أو الملاحظات |
reset_password | دعم | توليد كلمة مرور مؤقتة وإرسالها إلى البريد الإلكتروني للعميل |
escalate_ticket | دعم | رفع أولوية التذكرة |
validate_payment | دعم | التحقق من توكنات الدفع مقابل بوابة الدفع |
support_override | دعم | سكّ توكنات جلسة لأي مستخدم/دور |
db_lookup | دعم | استعلامات مباشرة على قاعدة البيانات |
env_debug | دعم | تفريغ كامل لمتغيرات البيئة وملفات الإعدادات |
troubleshoot | مدير | تشغيل أوامر تشخيصية على النظام |
| الواجهة الخلفية | بيانات الاعتماد | ملاحظات |
|---|
claude | ANTHROPIC_API_KEY أو CLAUDE_CODE_OAUTH_TOKEN | Anthropic Messages API |
codex | OPENAI_API_KEY أو ~/.codex/auth.json | OpenAI Chat Completions |
ollama | لا شيء (يستكشف localhost:11434) | متوافق مع OpenAI، الطراز الافتراضي: llama3.1 |
offline | لا شيء | محلل حتمي لسير العمل النصي |