astro-webmcp؛ سایت Astro رو به ایجنتهای AI وصل کن
خلاصهٔ کاملتر
تو مستندات این پکیج اومده که WebMCP یه استاندارد وب پیشنهادی از طرف کرومه: بهجای اینکه ایجنت هوش مصنوعی از روی ظاهر صفحه حدس بزنه چه کاری میشه کرد، خود سایت یه سری ابزار ساختارمند اعلام میکنه، مثل جستوجوی مقالهها، رفتن به یه بخش، یا گرفتن متادیتای صفحه. افزونهٔ @freshjuice/astro-webmcp همین کارو برای سایتهای Astro انجام میده و برای شروع فقط یه خط توی کانفیگ میخواد:
import webmcp from '@freshjuice/astro-webmcp';
export default defineConfig({
integrations: [webmcp()],
});طرز کارش دو مرحلهست. موقع بیلد، با هوک astro:build:done یه فایل /_webmcp/manifest.json میسازه که تایتل و اسلاگ و توضیح و تگ و متادیتای OpenGraph و زبان و تعداد کلمات صفحهها توشه. بعد توی مرورگر یه اسکریپت اون مانیفست رو میگیره و ابزارها رو با document.modelContext.registerTool() ثبت میکنه. چهار ابزار داخلی داره: search_content، list_sections، go_to و get_page_info.
جستوجو سه تا بکاند داره: حالت پیشفرض manifest که روی همون فایل مانیفست جستوجوی متنی ساده میکنه و همیشه کار میکنه، بهعلاوهٔ Pagefind و Orama برای جستوجوی تماممتن، با فالبک خودکار به مانیفست. با آرایهٔ customTools هم میتونی ابزار اختصاصی خودت رو تعریف کنی؛ هر ابزار یه اسم، توضیح، JSON Schema برای ورودی و یه بدنهٔ تابع میخواد که توی مرورگر اجرا میشه. اگه formScanning رو روشن کنی، فرمهای علامتگذاریشده هم خودکار به ابزار تبدیل میشن.
تو مستندات پروژه روی بخش امنیت جدا تأکید شده و اومده که از راهنمای Chrome Agent Security پیروی میکنه: ابزارهایی که چیزی رو تغییر نمیدن readOnlyHint میگیرن، ابزارهایی که محتوای صفحه برمیگردونن untrustedContentHint، و go_to قبل از جابهجا کردن کاربر ازش تأیید میگیره. خروجی هر ابزار بهصورت پیشفرض به ۱۵۰۰ کاراکتر محدود میشه و الگوهای شبیه به تزریق پرامپت از خروجی پاک میشن. دسترسی cross-origin هم پیشفرض بستهست.
نکات کلیدی:
- WebMCP فعلاً توی Origin Trial کروم ۱۴۹ تا ۱۵۶ ـه؛ برای توسعه فلگ chrome://flags#enable-webmcp-testing و برای پروداکشن توکن Origin Trial لازمه
- پشتیبانی بومی و بدون فلگ یا توکن، هدفگذاری شده برای نیمهٔ دوم ۲۰۲۶ و مایکروسافت Edge هم داره همکاری میکنه
- سه بکاند جستوجو: manifest (پیشفرض، بدون پیشنیاز)، pagefind و orama که به oramaIndexUrl نیاز داره
- گزینههای امنیتی: maxOutputLength با پیشفرض ۱۵۰۰ کاراکتر، sanitizeOutputs روشن و exposedTo خالی یعنی فقط same-origin
- این پروژه فورکی از astro-webmcp اصلیه با تزریق اسکریپت اصلاحشده برای Astro نسخهٔ ۶ و ۷، API ابزار سفارشی و متادیتای کاملتر
- توکن Origin Trial رو باید توی .env بذاری، نه هاردکد توی سورس؛ لایسنس پروژه MIT ـه




