سرورهای MCP
سرورهای MCP
معرفی
میتوانید ابزارهای خارجی را با استفاده از پروتکل Context Model (MCP) به AshaCode اضافه کنید. AshaCode هم از سرورهای محلی و هم از سرورهای راهدور پشتیبانی میکند.
پس از افزودن، ابزارهای MCP بهصورت خودکار در کنار ابزارهای داخلی در اختیار مدل زبانی قرار میگیرند.
فعالسازی (Enable)
سرورهای MCP را در Config مربوط به AshaCode زیر کلید mcp تعریف میکنید. هر MCP با یک نام یکتا اضافه میشود و هنگام درخواست از مدل میتوانید بههمان نام ارجاع دهید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"name-of-mcp-server": {
// ...
"enabled": true
},
"name-of-other-mcp-server": {
// ...
}
}
}همچنین میتوانید با قرار دادن enabled روی false یک سرور را غیرفعال کنید؛ این کار برای تعطیلی موقت بدون حذف آن از Config مفید است.
بازنویسی پیشفرضهای راهدور
سازمانها میتوانند سرورهای MCP پیشفرض را از طریق نقطه پایانی .well-known/ashacode فراهم کنند. این سرورها ممکن است بهطور پیشفرض غیرفعال باشند تا کاربران فقط سرورهای مورد نیاز خود را فعال کنند.
برای فعالسازی یک سرور مشخص از Config راهدور سازمان، آن را با enabled: true به Config محلی خود اضافه کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"jira": {
"type": "remote",
"url": "https://jira.example.com/mcp",
"enabled": true
}
}
}مقادیر Config محلی، پیشفرضهای راهدور را نادیده میگیرند. جزئیات بیشتر در اولویت ادغام Config.
سرور محلی (Local)
برای افزودن سرور محلی، داخل شیء mcp مقدار type را روی "local" قرار دهید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-local-mcp-server": {
"type": "local",
// Or ["bun", "x", "my-mcp-command"]
"command": ["npx", "-y", "my-mcp-command"],
"enabled": true,
"environment": {
"MY_ENV_VAR": "my_env_var_value"
}
}
}
}command نحوه راهاندازی سرور محلی است. همچنین میتوانید فهرستی از متغیرهای محیطی را پاس دهید.
برای مثال، سرور تست @modelcontextprotocol/server-everything را اینگونه اضافه کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"mcp_everything": {
"type": "local",
"command": ["npx", "-y", "@modelcontextprotocol/server-everything"]
}
}
}برای استفاده از آن، در پرامپت خود به ابزار mcp_everything ارجاع دهید:
گزینههای سرور محلی
همه گزینههای پیکربندی یک سرور MCP محلی:
| گزینه | نوع | ضروری | توضیح |
|---|---|---|---|
| type | String | بله | نوع اتصال سرور MCP؛ باید «local» باشد. |
| command | Array | بله | فرمان و آرگومانهای اجرای سرور MCP. |
| cwd | String | دایرکتوری کاری فرایند سرور MCP. مسیرهای نسبی از workspace حل میشوند. | |
| environment | Object | متغیرهای محیطی هنگام اجرای سرور. | |
| enabled | Boolean | فعال یا غیرفعال کردن سرور MCP هنگام راهاندازی. | |
| timeout | Number | مهلت (ms) دریافت ابزارها از سرور MCP. پیشفرض 5000 (۵ ثانیه). |
سرور راهدور (Remote)
برای افزودن سرور راهدور، مقدار type را روی "remote" قرار دهید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-remote-mcp": {
"type": "remote",
"url": "https://my-mcp-server.com",
"enabled": true,
"headers": {
"Authorization": "Bearer MY_API_KEY"
}
}
}
}url نشانی سرور MCP راهدور است و با گزینه headers میتوانید فهرستی از هدرها را پاس دهید.
گزینههای سرور راهدور
| گزینه | نوع | ضروری | توضیح |
|---|---|---|---|
| type | String | بله | نوع اتصال سرور MCP؛ باید «remote» باشد. |
| url | String | بله | نشانی سرور MCP راهدور. |
| enabled | Boolean | فعال یا غیرفعال کردن سرور MCP هنگام راهاندازی. | |
| headers | Object | هدرهای ارسالی با درخواست. | |
| oauth | Object | پیکربندی احراز هویت OAuth. بخش OAuth را ببینید. | |
| timeout | Number | مهلت (ms) دریافت ابزارها از سرور MCP. پیشفرض 5000 (۵ ثانیه). |
OAuth
AshaCode بهصورت خودکار احراز هویت OAuth را برای سرورهای MCP راهدور مدیریت میکند. وقتی سروری نیاز به احراز هویت دارد، AshaCode این کارها را انجام میدهد:
- پاسخ 401 را تشخیص میدهد و جریان OAuth را شروع میکند
- در صورت پشتیبانی سرور از Dynamic Client Registration (RFC 7591) استفاده میکند
- توکنها را بهطور امن برای درخواستهای بعدی ذخیره میکند
خودکار
برای اکثر سرورهای MCP دارای OAuth نیازی به پیکربندی خاصی نیست؛ فقط سرور راهدور را تنظیم کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp"
}
}
}اگر سرور نیاز به احراز هویت داشته باشد، هنگام اولین استفاده از AshaCode درخواست احراز هویت میشود. در غیر این صورت میتوانید جریان را بهصورت دستی با ashacode mcp auth <server-name> فعال کنید.
از پیش ثبتشده
اگر اعتبارنامه کلاینت از فراهمکننده سرور MCP دارید، میتوانید آنها را پیکربندی کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-oauth-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": {
"clientId": "{env:MY_MCP_CLIENT_ID}",
"clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
"scope": "tools:read tools:execute"
}
}
}
}احراز هویت
میتوانید جریان احراز هویت را دستی فعال کرده یا اعتبارنامهها را مدیریت کنید:
# احراز هویت با یک سرور MCP مشخص ashacode mcp auth my-oauth-server # فهرست همه سرورهای MCP و وضعیت احراز هویت آنها ashacode mcp list # حذف اعتبارنامههای ذخیرهشده ashacode mcp logout my-oauth-server
دستور mcp auth مرورگر شما را برای مجوز باز میکند. پس از تأیید، AshaCode توکنها را بهطور امن در ~/.local/share/ashacode/mcp-auth.json ذخیره میکند.
غیرفعال کردن OAuth
اگر میخواهید OAuth خودکار برای یک سرور غیرفعال شود (مثلاً سرورهایی که از کلید API استفاده میکنند)، oauth را روی false قرار دهید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-api-key-server": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"oauth": false,
"headers": {
"Authorization": "Bearer {env:MY_API_KEY}"
}
}
}
}گزینههای OAuth
| گزینه | نوع | توضیح |
|---|---|---|
| oauth | Object | false | شیء پیکربندی OAuth، یا false برای غیرفعال کردن تشخیص خودکار OAuth. |
| clientId | String | شناسه کلاینت OAuth. اگر ارائه نشود، ثبت پویای کلاینت انجام میشود. |
| clientSecret | String | رمز کلاینت OAuth، در صورت نیاز سرور مجوز. |
| scope | String | حوزههای OAuth درخواستی در طول مجوز. |
رفع اشکال
اگر سرور MCP راهدور در احراز هویت موفق نیست، میتوانید مسائل را اینگونه بررسی کنید:
# نمایش وضعیت احراز هویت همه سرورهای دارای OAuth ashacode mcp auth list # بررسی اتصال و جریان OAuth برای یک سرور مشخص ashacode mcp debug my-oauth-server
دستور mcp debug وضعیت احراز هویت فعلی را نشان میدهد، اتصال HTTP را آزمایش میکند و جریان کشف OAuth را اجرا میکند.
مدیریت (Manage)
سرورهای MCP شما همانند ابزارهای داخلی بهعنوان ابزار در دسترس AshaCode هستند، بنابراین میتوانید آنها را از طریق Config مربوط به AshaCode مانند هر ابزار دیگری مدیریت کنید.
سراسری
یعنی میتوانید آنها را بهصورت سراسری فعال یا غیرفعال کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp-foo": false
}
}همچنین میتوانیم با الگوی glob همه MCPهای منطبق را غیرفعال کنیم:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-mcp-foo": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-foo"]
},
"my-mcp-bar": {
"type": "local",
"command": ["bun", "x", "my-mcp-command-bar"]
}
},
"tools": {
"my-mcp*": false
}
}در اینجا با الگوی my-mcp* همه MCPها غیرفعال شدهاند.
بهازای ایجنت
اگر تعداد سرورهای MCP زیادی دارید، شاید بخواهید فقط برای ایجنتهای مشخص آنها را فعال کنید و بهصورت سراسری غیرفعال نگه دارید:
- بهصورت سراسری، آن را بهعنوان ابزار غیرفعال کنید.
- در Config ایجنت، MCP را بهعنوان ابزار فعال کنید.
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"my-mcp": {
"type": "local",
"command": ["bun", "x", "my-mcp-command"],
"enabled": true
}
},
"tools": {
"my-mcp*": false
},
"agent": {
"my-agent": {
"tools": {
"my-mcp*": true
}
}
}
}الگوهای Glob
الگوی glob از الگوهای ساده شبهعبارت منظم استفاده میکند:
*صفر یا بیشتر از هر کاراکتر را تطبیق میدهد (مثلاً"my-mcp*"باmy-mcp_search،my-mcp_listو … منطبق میشود)?دقیقاً یک کاراکتر را تطبیق میدهد- بقیه کاراکترها بهصورت تحتاللفظی تطبیق داده میشوند
"mymcpservername_*": false استفاده کنید.نمونهها
در ادامه چند نمونه از سرورهای MCP شناختهشده آمده است.
Sentry
سرور MCP سِنتِری را برای تعامل با پروژهها و مسائل (issues) Sentry اضافه کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"sentry": {
"type": "remote",
"url": "https://mcp.sentry.dev/mcp",
"oauth": {}
}
}
}پس از افزودن پیکربندی، با Sentry احراز هویت کنید:
ashacode mcp auth sentry
این کار پنجره مرورگر را برای تکمیل جریان OAuth باز میکند و AshaCode را به حساب Sentry شما متصل میکند. پس از احراز هویت میتوانید ابزارهای Sentry را در پرامپتها برای پرسوجوی issues، پروژهها و دادههای خطا استفاده کنید:
Context7
سرور MCP Context7 را برای جستجو در مستندات اضافه کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
}اگر حساب رایگان ساختهاید، میتوانید از کلید API خود استفاده کنید و محدودیت نرخ بالاتری بگیرید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
}
}
}
}در اینجا فرض میکنیم متغیر محیطی CONTEXT7_API_KEY تنظیم شده است. برای استفاده از سرور MCP Context7 در پرامپتها، use context7 را اضافه کنید:
یا میتوانید چیزی شبیه این را در AGENTS.md خود اضافه کنید:
When you need to search docs, use `context7` tools.
Grep by Vercel
سرور MCP Grep by Vercel را برای جستجوی قطعهکدها در GitHub اضافه کنید:
{
"$schema": "https://asha-ai.ir/schema.json",
"mcp": {
"gh_grep": {
"type": "remote",
"url": "https://mcp.grep.app"
}
}
}از آنجا که سرور MCP را gh_grep نامیدهایم، در پرامپتهای خود بهآن ارجاع دهید:
یا چیزی شبیه این را در AGENTS.md خود اضافه کنید:
If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.