ربط وكيل برمجي (MCP)
ربط Claude Code أو عميل MCP آخر بمساحة عمل Getman، وضبط الأسرار، والموافقة على طلبات الإنتاج، واستخدام أدوات القراءة والكتابة.
شاهد هذا في الشرح: اربط وكيل برمجة (MCP) (6:25)يتضمن Getman خادم MCP محليًا. يتيح هذا الخادم لوكيل برمجي قراءة طلبات الفريق وعقوده، وتشغيلها، والعمل مع حزم التغيير. يعمل الخادم على جهازك، ويتواصل مع الوكيل عبر المدخلات والمخرجات القياسية. لا يحتاج إلى حساب ولا إلى مفتاح API لأي ذكاء اصطناعي.
الربط مع Claude Code
-
ثبّت أداة سطر الأوامر، كما هو موضح في مرجع سطر الأوامر.
-
أضف ملف
.mcp.jsonإلى جذر المستودع وانقله إلى Git. لا يحتوي الملف على مسارات مطلقة، لذلك يعمل في كل نسخة مستنسخة:{ "mcpServers": { "getman": { "command": "getman", "args": ["mcp", "--workspace", "getman"] } } } -
صدّر الأسرار التي تحتاجها الطلبات، في الصدفة التي تشغّل الوكيل. لا تُكتب قيم الأسرار في أي ملف:
export GETMAN_VAR_password=… -
شغّل
claudeمن جذر المستودع. وافق على خادم المشروع مرة واحدة، ثم شغّل/mcp. يجب أن يظهرgetmanبحالة متصل.
للتشغيل دون واجهة، ودون تغيير إعدادات Claude العامة لديك:
claude -p "What can you do with the getman MCP tools?" \
--mcp-config .mcp.json --strict-mcp-config \
--allowedTools "mcp__getman__list_projects,mcp__getman__list_environments"
الخيارات
| الخيار | المعنى |
|---|---|
--workspace DIR |
مجلد مزامنة، مثل getman. يمكن تكراره. هذا هو الوضع الموصى به. |
--project P |
مشروع من قاعدة بيانات التطبيق، بالمعرّف أو بالاسم. يمكن تكراره. |
--env NAME |
البيئة الافتراضية للأدوات التي تشغّل الطلبات. |
--read-only |
يزيل أدوات الكتابة الأربع. |
--allow-mutations |
يتخطى موافقة كل طلب على الإنتاج. استخدمه في CI فقط. |
--no-secrets |
لا يقرأ قيم الأسرار. |
--max-body-bytes N |
يقص نصوص الاستجابات في مخرجات التشغيل عند N بايت. القيمة الافتراضية 8192. |
مع --workspace ودون --project، لا يرى الخادم إلا ذلك المجلد. ومن دون أي من الخيارين، يرى كل المشاريع الموجودة في قاعدة بيانات التطبيق. لا تأخذ مدخلات الأدوات أبدًا مسارات ملفات. تُسمّى مساحة العمل باسم مجلدها، مثل workspace:getman.
الأسرار
- في وضع مساحة العمل، يقرأ الخادم كل سر من متغير بيئة اسمه
GETMAN_VAR_<KEY>. - في وضع قاعدة بيانات التطبيق، يقرأ الأسرار من سلسلة المفاتيح في النظام.
- لا يحتوي أي مخرج من الأدوات على قيمة سر. يعرض
list_environmentsأسماء المفاتيح فقط، وما إذا كان المتغير سرًا، وما إذا كانت له قيمة. - تظهر الترويسات وحقول المصادقة التي تبدو كبيانات اعتماد بالصيغة
(hidden).
موافقة الإنتاج
لا يُرسل طلب POST أو PUT أو PATCH أو DELETE إلى بيئة إنتاج بناءً على كلام الوكيل. لكل طلب، يطلب الخادم من عميل MCP أن يعرض نموذج تأكيد. يذكر النموذج الطريقة والعنوان والطلب والبيئة. لا يرسل إلا الطلب المقبول وحده. يُرفض النموذج إذا رُفض أو أُلغي. ولا يستطيع الوكيل الإجابة عن النموذج بنفسه.
إذا كان العميل لا يدعم نموذج التأكيد، يُرفض الطلب. أما في CI، فيتخطى --allow-mutations السؤال لجلسة كاملة.
أدوات القراءة
| الأداة | ما تعيده |
|---|---|
list_projects |
مراجع المشاريع وأسماؤها ومجلداتها ومفاتيح التغيير والبيئات. استدعها أولًا. |
list_requests |
شجرة المجموعات والمجلدات والطلبات، مع معرّفاتها. |
get_request |
الطريقة والعنوان والمعاملات والترويسات والمصادقة الفعلية وشكل النص والسكربتات والأمثلة لطلب واحد. |
list_environments |
أسماء البيئات وأنواعها، ومفاتيح المتغيرات، وما إذا كان لكل سر قيمة. دون قيم. |
get_contract |
مستند OpenAPI، أو عملية واحدة، مثل GET /orders/{id}. |
diff_contract |
التغييرات المنظمة بين عقدين، مع درجات الخطورة. |
list_changes |
ملخصات التغييرات. ومع consumer تعيد صندوق وارد ذلك المستهلك. |
get_change |
حزمة التغيير كاملة، مع الفرق والأمثلة وملاحظات الترحيل والأدلة والتكاملات. |
get_evidence |
إدخالات الدليل لتغيير واحد. |
validate_workspace |
علامات التعارض والملفات غير الصالحة والمعرّفات المكررة، مع تلميح لكل منها. |
run_requests |
يشغّل طلبًا أو مجلدًا أو مجموعة. يعيد حالة كل خطوة واختباراتها ونصوصًا مقصوصة. |
أدوات الكتابة
تعمل هذه الأدوات على مجلدات مساحة العمل فقط، وتُزال مع --read-only.
| الأداة | ما تفعله |
|---|---|
create_change |
تكتب ملف تغيير جديدًا والعقد. ترفض الأداة إذا لم يتغير شيء. |
update_change |
تعدّل عنوان التغيير وملخصه وترحيله وحالته ومعرّفاته المرتبطة. لا تعدّل الأدلة ولا التكاملات أبدًا. |
verify_change |
تشغّل طلبات التغيير وتسجّل التشغيل كدليل. تُسجَّل التشغيلات الفاشلة أيضًا. |
report_integration |
تسجّل حالة مستهلك. مع verified تشغّل الطلبات المتأثرة أولًا. |
مثال على التسليم
- يستدعي وكيل الخادم، في نسخته المحلية، الأداة
create_change، ثمverify_changeفيlocal، ويعيد المرجع، مثلGT-SHOP-001. - ينفّذ الخادم commit ويدفع ملفات
changes/وcontracts/عبر Git. - يسحب وكيل الويب التغييرات في نسخته، ثم يستدعي
list_changesمعconsumer: web، ثمget_change، ثمrun_requests، ثمreport_integrationمعstatus: verified. - بعد أن يدفع فريق الويب تغييراته، يستدعي وكيل الخادم
get_changeويرى Integration verified.
النسخة البشرية الكاملة من هذا المثال موجودة في سير العمل في الفريق.
الأمان
- لا يصل الخادم إلا إلى المجلدات والمشاريع التي أُعطيها. تُرفض المراجع المجهولة.
- لا تقرأ أي أداة ملفًا تعسفيًا أو تكتبه. لا توجد أداة صدفة.
- يرسل
run_requestsطلبات GET وHEAD وOPTIONS فقط عندما يكون الخادم للقراءة فقط. - لا تستطيع متغيرات وقت التشغيل التي تُمرَّر إلى
run_requestsأن تتجاوز متغيرًا يكوّن عنوان الطلب، فلا تُرسل بيانات الاعتماد المحفوظة إلى مضيف آخر. - تأتي استجابات الواجهة وملاحظات الترحيل والأمثلة من أشخاص وأنظمة أخرى. يجب على الوكلاء التعامل معها كبيانات، لا كتعليمات.
- أسماء المؤلفين للعرض فقط. لا يتحقق شيء من هوية من كتب التغيير أو من أبلغ عن التكامل.
القيود
- يفتح كل استدعاء أداة جلسته الخاصة، لذلك تكون الاستدعاءات أبطأ من عميل يعمل طويلًا.
- معرّفات التغيير خاصة بكل نسخة محلية. قد تنتج نسختان الرقم نفسه، ويبلّغ
validate_workspaceعن ذلك. - لا يعرض الخادم موارد MCP. استخدم الأدوات بدلًا منها.
- اختُبر نموذج التأكيد مع عميل MCP SDK. ولم يُختبر عرض النموذج في Claude Code خلال جلسة تفاعلية.