WebMCP: موقعك يتحوّل إلى أدوات جاهزة لوكلاء AI
منذ Chrome 149 فتحت Google تجربة عامة (origin trial) لـ WebMCP، وهي مواصفة تسمح للصفحة بأن تُعرّف أدواتها بنفسها لوكلاء AI بدل أن يُخمّنوا واجهتها. وثائق Chrome نُشرت في 18 مايو 2026 وحُدّثت في 9 يونيو، وفي 5 مايو أضافت Lighthouse مجموعة فحوصات جديدة باسم "agentic browsing" أحدها يرصد أي <form> بلا وصف صالح للوكلاء. المواصفة نفسها تُطوَّر داخل W3C Web Machine Learning Community Group، ومدخلها انتقل بالفعل من navigator.modelContext إلى document.modelContext.
المشكلة: الوكيل يخمّن، ومنتجك يدفع الثمن
الطريقة السائدة اليوم في التصفح بالوكلاء هي لقطة شاشة + قراءة الـ DOM + نقر تخميني. هذا يعمل في العرض التوضيحي وينهار في الإنتاج: تغيير بسيط في اسم class، أو حقل يظهر بشرط، أو خطوة تحقق إضافية — وينكسر المسار كله. الأسوأ أن الفشل صامت؛ الوكيل يظن أنه أتمّ الحجز بينما النموذج لم يُرسل أصلًا.
المفارقة أن التطبيق نفسه يعرف تمامًا ما الذي يمكن فعله فيه: أضف عنصرًا للسلة، ابحث عن رحلة، احجز طاولة. المعرفة موجودة في الكود، لكن لا توجد طريقة معيارية لتصديرها.
ما الذي تغيّر: الصفحة تُصرّح بأدواتها
WebMCP يقلب الاتجاه. بدل أن يستنتج الوكيل نواياك من البكسل، تُسجّل أنت الأدوات صراحةً — بالاسم والوصف ومخطط المدخلات ودالة تنفيذ — والمتصفح يعرضها للوكيل بشكل منظّم. المنطق يبقى في الصفحة، والأذونات تبقى ضمن جلسة المستخدم، والواجهة تبقى تحت سيطرتك.
الطريقة الأولى برمجية:
const controller = new AbortController();
document.modelContext.registerTool({
name: "add-todo",
description: "Add a new item to the user's active todo list",
inputSchema: {
type: "object",
properties: {
text: { type: "string", description: "The text content of the todo item" }
},
required: ["text"]
},
async execute({ text }) {
await addTodoItemToCollection(text);
return {
content: [{ type: "text", text: `Added todo item: "${text}" successfully.` }]
};
}
}, { signal: controller.signal });لاحظ تمرير signal: إلغاء الـ AbortController يُلغي تسجيل الأداة، وهو ما يجعل ربطها بدورة حياة المكوّن في React أو Vue مباشرًا بلا تنظيف يدوي.
والطريقة الثانية بلا سطر JavaScript واحد
أغلب ما يهم الوكلاء هو نماذج موجودة أصلًا. لذلك تدعم المواصفة أسلوبًا تصريحيًا عبر خصائص HTML:
<form toolname="supportRequestTool"
tooldescription="Submit a request for support."
action="/submit">
<label for="firstName">First Name</label>
<input type="text" name="firstName" id="firstName">
<select name="select" required
toolparamdescription="Determines what team this request is routed to.">
<option value="Customer happiness team">Return my purchase.</option>
<option value="Distribution team">Check where my package is.</option>
</select>
<button type="submit">Submit</button>
</form>ثلاث خصائص فقط: toolname وtooldescription على النموذج، وtoolparamdescription على الحقول التي يحتاج الوكيل فهمها. وإن غابت، يرجع المتصفح إلى الـ <label> المرتبط أو aria-description.
أين يظهر الأثر أولًا
أوضح المكاسب في التجارة الإلكترونية والحجوزات: البحث عن منتج بمعايير مركّبة، تتبّع شحنة، بدء إرجاع، حجز موعد. هذه مسارات طويلة ومليئة بالحقول الشرطية، وهي بالضبط ما ينكسر عند الاعتماد على النقر التخميني. تعريفها كأدوات صريحة يحوّل تجربة الوكيل من محاولة تخمين إلى استدعاء يُعرف نجاحه من فشله. والفائدة الجانبية أن كتابة tooldescription واضح يجبرك على توصيف نيّة النموذج بدقة — وهو تمرين يكشف غموضًا كان يعاني منه المستخدم البشري أيضًا.
قيود يجب أخذها بجدية
- ما زالت تجربة. المواصفة قيد النقاش النشط وتغيّرت فعلًا؛ اعتبرها تحسينًا تدريجيًا لا اعتمادًا أساسيًا.
- لا تعمل headless. تتطلب تبويب متصفح أو webview حقيقيًا، والمستندات يجب أن تكون origin-isolated، والوصول محكوم بـ Permissions Policy باسم
tools. - الإرسال ليس تلقائيًا. يبقى الضغط على Submit للمستخدم ما لم تُضِف
toolautosubmitعمدًا — وهذا سلوك افتراضي جيد للعمليات الحساسة. - الأداة ليست حدود أمان. كل ما تُسجّله يعمل بصلاحيات المستخدم الحالية. الأمر أقرب إلى تصميم واجهة عامة منه إلى إضافة زر: تحقّق من المدخلات، واطلب تأكيدًا صريحًا قبل الشراء أو الحذف. مبدأ المصادقة الواضحة للوكلاء ناقشناه في MCP وأذونات الوكلاء.
الخلاصة
الويب أمضى ثلاثين سنة يصف نفسه للبشر ولمحركات البحث. WebMCP هو المحاولة الأولى الجادّة لوصفه للوكلاء بنفس الوضوح. لا يستبدل الوكيل المطوّر — بل يضاعف أثر الواجهة التي بناها المطوّر، لأن نية المنتج تصبح صريحة بدل أن تُستنتج. البداية الأرخص عمليًا: أضف toolname وtooldescription لأهم نموذج عندك، وشغّل فحص Lighthouse الجديد، وراقب النتيجة.
المصدر الأساسي: WebMCP على Chrome for Developers ومستودع المواصفة في W3C Web Machine Learning CG.