
للمطورين
اربط مدير مكتبك وفريقه بأدواتك وتطبيقات الذكاء الاصطناعي.
أدخل فريقك إلى Claude وChatGPT وبرامجك الخاصة. عبر MCP وواجهة REST وWebhooks موقّعة، يستطيع تطبيق ذكاء اصطناعي أو شيفرتك البحث في المكالمات وجهات الاتصال والمهام، ومتابعة ما يفعله وكلاؤك، وبإذنك، أن يطلب من أحد الوكلاء إجراء مكالمة.
ابدأ من هنا
كل ما تحتاجه للربط
- خادم MCPعنوان واحد لكل تطبيقات MCP، بتسجيل الدخول عبر OAuth أو بمفتاح API.
- واجهة RESTنقاط JSON لمساحة العمل والوكلاء والمكالمات وجهات الاتصال والمهام والحملات، مع أخطاء واضحة.
- مواصفة OpenAPIمواصفة قابلة للقراءة آليًا لمولدات الشيفرة وأدوات الواجهات.
- أدلة الإعداد لكل تطبيقخطوة بخطوة لـClaude وChatGPT وClaude Code وCursor وVS Code وغيرها.
- Webhooks موقّعةالمكالمات والمهام والطلبات تصل إلى نظامك لحظة تغيّرها.
- مهارة للتطبيقعلّم تطبيق الذكاء الاصطناعي كيف يعمل مع فريقك بأمان.
خادم MCP
https://agentwaves.net/mcpعنوان واحد للربط
أضفه كموصل أو خادم MCP، وسجّل الدخول، واختر ما يُسمح للتطبيق بفعله.
أدلة الإعدادأدلة الإعداد
الربط في دقيقتين
التطبيقات التي تدعم تسجيل الدخول ترتبط بحسابك في AgentWaves مباشرة، والبقية تستخدم مفتاح API تنشئه في AgentWaves. في الحالتين يعمل التطبيق باسمك وضمن صلاحياتك. الخطوات بالإنجليزية لأنها تذكر قوائم تلك التطبيقات كما تظهر فيها.
Claudeتسجيل دخول
- In Claude (web, desktop or mobile), open Settings, then Connectors, and choose Add custom connector. Team and Enterprise: an admin adds it under Organization settings, Connectors.
- Name it AgentWaves and paste the connector URL. Leave the advanced OAuth fields empty.
- Click Add, then Connect. The AgentWaves sign-in opens: pick the workspace and what Claude may do, then Allow.
- In a new chat, turn on AgentWaves in the tools menu and ask: Where am I with AgentWaves?
ChatGPTتسجيل دخول
- In ChatGPT, open Settings, then Apps and Connectors, then Advanced settings, and turn on Developer mode (Plus, Pro, Business and Enterprise plans).
- Choose Create, name it AgentWaves, paste the connector URL and keep OAuth as the authentication.
- Save, then Connect: approve the AgentWaves sign-in with the workspace and access you want.
- In a chat, choose AgentWaves from the tools and ask what you need.
Claude Codeتسجيل دخول
- Run this in your terminal:
- Then type /mcp in Claude Code and choose AgentWaves to sign in. To use an API key instead, add --header "Authorization: Bearer YOUR_AGENTWAVES_KEY".
claude mcp add --transport http agentwaves https://agentwaves.net/mcp
Cursorمفتاح API
- In AgentWaves, open Developers and create an API key.
- Open Cursor Settings, then MCP, then Add new MCP server (or edit ~/.cursor/mcp.json) and add:
{
"mcpServers": {
"agentwaves": {
"url": "https://agentwaves.net/mcp",
"headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
}
}
}VS Code (Copilot)مفتاح API
- In AgentWaves, open Developers and create an API key.
- Add this to .vscode/mcp.json in your project (or your user MCP settings), then start the server from the MCP list:
{
"servers": {
"agentwaves": {
"type": "http",
"url": "https://agentwaves.net/mcp",
"headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
}
}
}Windsurfمفتاح API
- In AgentWaves, open Developers and create an API key.
- Edit ~/.codeium/windsurf/mcp_config.json and add:
{
"mcpServers": {
"agentwaves": {
"serverUrl": "https://agentwaves.net/mcp",
"headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
}
}
}Gemini CLIمفتاح API
- In AgentWaves, open Developers and create an API key.
- Edit ~/.gemini/settings.json and add:
{
"mcpServers": {
"agentwaves": {
"httpUrl": "https://agentwaves.net/mcp",
"headers": { "Authorization": "Bearer YOUR_AGENTWAVES_KEY" }
}
}
}Any MCP clientمفتاح API
- Transport: Streamable HTTP at the connector URL.
- Authentication: send an API key as Authorization: Bearer YOUR_AGENTWAVES_KEY, or use OAuth 2.1 sign-in (discovery at /.well-known/oauth-protected-resource, PKCE S256, dynamic client registration).
- Start with the get_started tool.
مرجع الأدوات
ما يستطيع تطبيق الذكاء الاصطناعي فعله في AgentWaves
أدوات القراءة متاحة لكل اتصال. أدوات التنفيذ تحتاج صلاحية القراءة والتنفيذ، وتتحقق كل منها من دور الشخص نفسه. وموافقاتك تبقى سارية: إن كان خيار اسألني قبل الاتصال مفعّلًا لدى الوكيل، تنتظر المكالمة المطلوبة من التطبيق نقرتك في صفحة اليوم أو موافقتك على واتساب، ولا يُتصل أبدًا بجهة مدرجة في قائمة عدم الاتصال. كل إجراء يُسجَّل في سجل التدقيق.
قراءة
بحث واطلاع. لا يتغير شيء.
get_startedابدأ من هنا. مساحة العمل وباقتها ووكلاؤها وأرقام هواتفها، ومكالمات آخر 7 أيام وعملاؤها المحتملون ومهامها، وما يُسمح لهذا الاتصال بفعله.
list_agentsكل وكيل مع حالته (يعمل أو متوقف أو غير منشور)، ومجال تركيزه، ولغته، وأرقام هاتفه، ورقم واتساب، وعدد مكالماته.
list_callsأحدث المكالمات الهاتفية بدءًا بالأحدث، مع الملخص والنتيجة. صفِّ حسب اسم الوكيل، أو الاتجاه، أو جزء من رقم الهاتف، أو عدد الأيام السابقة.
get_callمكالمة واحدة كاملة: تفاصيلها، وملخصها، والتفاصيل المستخلصة (الاسم والبريد والشركة والمتابعة)، ونصها الكامل.
find_contactsابحث في جهات الاتصال والعملاء المحتملين بالاسم أو الهاتف أو الشركة أو الوسم، أو بعلامة النجمة لأحدثها، مع ما يتذكره الوكلاء عن كل منهم.
get_contactجهة اتصال واحدة: بياناتها، وموافقتها على التواصل، وما يتذكره الوكلاء، ومهامها المفتوحة، وأحدث مكالماتها.
list_tasksمهام المتابعة الناتجة عن البريد وواتساب والمكالمات والطلبات. اعرض المفتوحة (افتراضيًا) أو المنجزة أو الكل.
get_taskمهمة واحدة مع كل ملاحظاتها، والرسالة التي جاءت منها، وجهة الاتصال المرتبطة بها.
order_progressأين وصلت مكالمة طلبتها: بانتظار الموافقة، أو مجدولة، أو ترن، أو جارية، أو انتهت، مع وقت كل خطوة، وما فعله الوكيل أثناء المكالمة، والنتيجة والملخص بعد انتهائها. مرّر معرّف المهمة أو معرّف الموافقة الذي أعاده طلب المكالمة.
list_campaignsالحملات الصادرة مع حالتها ووكيلها وتقدّمها.
search_knowledgeابحث فيما يعرفه الوكيل عن النشاط: الموقع والمستندات والملاحظات.
تنفيذ
يغيّر شيئًا أو يجري مكالمة. يجب أن يؤكد تطبيقك معك أولًا.
order_callاطلب من وكيل أن يتصل برقم وينجز أمرًا، كأن يسأل عن سعر أو يؤكد توصيلًا أو يذكّر أحدًا، الآن أو في وقت محدد. يتحول ذلك إلى طلب ومهمة، وتُدوَّن النتيجة على المهمة. المكالمات إلى الآخرين تلتزم بساعات الاتصال، أما هاتف المالك المحفوظ فيرن في أي ساعة. أكّد الرقم والمطلوب مع المستخدم أولًا.
add_task_noteاكتب ملاحظة على مهمة: ما حدث وما التالي. المهمة المفتوحة تنتقل إلى قيد التنفيذ.
set_task_statusعلّم المهمة مفتوحة أو قيد التنفيذ أو منجزة أو ملغاة.
update_contactغيّر اسم جهة الاتصال أو بريدها أو شركتها أو منصبها، أو أضفها إلى قائمة عدم الاتصال أو أزلها منها.
set_agent_onأوقف وكيلًا، فيتوقف عن الرد على المكالمات والرسائل، أو أعد تشغيله.
واجهة REST
القدرات نفسها من شيفرتك الخاصة
HTTPS وJSON ببساطة، مبنية على أدوات خادم MCP نفسها، فقواعد الوصول وسجل التدقيق واحدة. أرسل مفتاح API من AgentWaves كرمز Bearer.
ما تغطيه اليوم
- 01مساحة العمل: باقتها ووكلاؤها وأرقامها وآخر 7 أيام.
- 02الوكلاء: عرضهم، وإيقاف أحدهم أو إعادة تشغيله، والبحث فيما يعرفه.
- 03المكالمات: عرضها وقراءتها، وطلب مكالمة ومتابعتها حتى نهايتها.
- 04جهات الاتصال: البحث فيها وقراءتها وتحديثها، بما في ذلك قائمة عدم الاتصال.
- 05المهام والطلبات: عرضها وقراءتها، وإضافة الملاحظات وتغيير حالتها.
- 06الحملات: عرضها مع تقدّمها.
الحالات والأهداف والمستندات والموافقات ليست في الواجهة البرمجية بعد، فتعامل معها من التطبيق.
- تأتي الإجابة في الحقل data، والخطأ في الحقل error مع رمز code ورسالة message، إلى جانب رمز HTTP المعتاد.
- مفتاح القراءة يرى نقاط القراءة فقط، ونقاط التنفيذ تتحقق أيضًا من دور الشخص.
- حتى 300 طلب في الدقيقة لكل مفتاح، وكل تغيير يُسجَّل في سجل التدقيق.
مثال
curl "https://agentwaves.net/api/v1/calls?days=7" \
-H "Authorization: Bearer $AGENTWAVES_KEY"
curl -X POST https://agentwaves.net/api/v1/call-orders \
-H "Authorization: Bearer $AGENTWAVES_KEY" \
-H "Content-Type: application/json" \
-d '{"agent": "Layla", "phone": "+14155550123", "task": "Confirm the appointment tomorrow at 10:00"}'مساحة العمل
- GET
/workspaceمساحة العمل وباقتها ووكلاؤها وأرقامها وآخر 7 أيام، وما يُسمح لهذا المفتاح بفعلهقراءة
الوكلاء
- GET
/agentsكل وكيل مع حالته ومجال تركيزه ولغته وأرقامهقراءة - PATCH
/agents/{agent}أوقف وكيلًا أو أعد تشغيلهتنفيذ - GET
/agents/{agent}/knowledgeابحث فيما يعرفه الوكيل عن النشاطقراءة
المكالمات
- GET
/callsأحدث المكالمات بدءًا بالأحدث، مع الملخص والنتيجةقراءة - GET
/calls/{call_id}مكالمة واحدة مع ملخصها والتفاصيل المستخلصة ونصهاقراءة - POST
/call-ordersاطلب من وكيل الاتصال برقم الآن أو في وقت محددتنفيذ - GET
/call-orders/statusأين وصلت المكالمة المطلوبة، ونتيجتها بعد انتهائهاقراءة
جهات الاتصال
- GET
/contactsابحث في جهات الاتصال بالاسم أو الهاتف أو الشركة أو الوسمقراءة - GET
/contacts/{contact_id}جهة اتصال واحدة مع الموافقة والذاكرة والمهام المفتوحة وأحدث المكالماتقراءة - PATCH
/contacts/{contact_id}غيّر بيانات جهة الاتصال أو وضعها في قائمة عدم الاتصالتنفيذ
المهام
- GET
/tasksمهام المتابعة من المكالمات وواتساب والبريد والطلباتقراءة - GET
/tasks/{task_id}مهمة واحدة مع ملاحظاتها ومصدرها وجهة الاتصالقراءة - PATCH
/tasks/{task_id}علّم المهمة مفتوحة أو قيد التنفيذ أو منجزة أو ملغاةتنفيذ - POST
/tasks/{task_id}/notesاكتب ملاحظة على مهمةتنفيذ
الحملات
- GET
/campaignsالحملات الصادرة مع حالتها ووكيلها وتقدّمهاقراءة
Webhooks
اعرف لحظة تغيّر العمل
يرسل AgentWaves بيانات JSON موقّعة إلى نظامك عند تغيّر المكالمات والمهام والطلبات، فيبقى نظام العملاء أو الجداول أو أنظمتك الداخلية محدّثة دون استعلام متكرر. التوقيعات تتبع معيار Standard Webhooks، فتتحقق منها المكتبات الجاهزة.
- أجب بأي رمز 2xx خلال 10 ثوانٍ. غير ذلك يُعاد إرساله بعد دقيقة، ثم 5 دقائق، ثم 30 دقيقة، ثم 2 و5 و10 و14 ساعة.
- قد يصل الحدث نفسه مرتين، فاستخدم webhook-id لتجاهل التكرار. الترتيب غير مضمون، فاعتمد على الوقت المرفق.
- عناوين https العامة فقط. نقطة الاستقبال التي تفشل لثلاثة أيام متتالية تُوقف ويصلك إشعار بذلك.
- أضف نقطة استقبال في AgentWaves من صفحة المطورين، واختر أحداثها، وانسخ سر التوقيع الذي يظهر مرة واحدة.
الأحداث
call.startedبدء رنين مكالمة واردة أو صادرة.call.endedانتهاء مكالمة، مع مدتها ونتيجتها.call.summarizedجاهزية ملخص المكالمة والتفاصيل التي التقطها الوكيل.task.createdإنشاء مهمة متابعة من مكالمة أو واتساب أو بريد أو طلب.task.updatedتغيّر مهمة: الحالة أو المسؤول أو الملاحظات أو موعد الاستحقاق.order.createdطلب من أحدهم أن يتصل الوكيل بشخص أو يراسله.order.updatedتقدّم الطلب: جدولة أو اتصال أو ملاحظة جديدة من الوكيل.order.completedاكتمال الطلب أو إلغاؤه، مع آخر ملاحظة من الوكيل.
ما يصلك
POST /your/endpoint
webhook-id: evt_3f1c0b9a7d2e4c5b6a7f8e9d
webhook-timestamp: 1792494954
webhook-signature: v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=
{
"id": "evt_3f1c0b9a7d2e4c5b6a7f8e9d",
"type": "call.ended",
"timestamp": "2026-10-20T09:15:54.000Z",
"workspaceId": "cmw1org00001",
"data": {
"id": "cmw1call0001",
"direction": "inbound",
"status": "completed",
"from": "+14155550123",
"to": "+14155550199",
"agent": {
"id": "cmw1agent001",
"name": "Layla"
},
"contact": {
"id": "cmw1contact1",
"name": "Daniel Reyes"
},
"campaignId": null,
"startedAt": "2026-10-20T09:14:02.000Z",
"answeredAt": "2026-10-20T09:14:03.000Z",
"endedAt": "2026-10-20T09:15:54.000Z",
"durationSeconds": 112,
"outcome": "appointment_booked",
"endReason": "caller_hung_up",
"link": "https://agentwaves.net/app/calls/cmw1call0001"
}
}تحقّق من التوقيع
import crypto from "node:crypto";
// body: the raw request body, as text, before any JSON parsing.
export function verifyAgentWaves(secret, headers, body) {
const id = headers["webhook-id"];
const ts = headers["webhook-timestamp"];
if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
const key = Buffer.from(secret.replace("whsec_", ""), "base64");
const expected = "v1," + crypto.createHmac("sha256", key).update(`${id}.${ts}.${body}`).digest("base64");
return headers["webhook-signature"].split(" ").some(
(sig) => sig.length === expected.length && crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected)),
);
}مهارة للتطبيق
مهارة تعلّم تطبيقك العمل
ملف SKILL.md قصير يحمّله تطبيق الذكاء الاصطناعي حين تسأله عن مكالمات فريقك أو جهات الاتصال أو المهام أو الوكلاء. يعرف أي أداة تجيب عن أي سؤال، والقواعد التي تحمي عملاءك.
- 01يبدأ كل جلسة بـget_started فلا يخمّن الأسماء
- 02يؤكد الرقم والوكيل والهدف قبل طلب أي مكالمة
- 03لا يتصل أبدًا بجهة مدرجة في قائمة عدم الاتصال
- 04يخبرك حين تنتظر المكالمة المطلوبة موافقتك، ويتابعها حتى نهايتها
الوصول والأمان
بياناتك بشروطك
تسجيل دخول OAuth 2.1
مع PKCE وتسجيل العملاء الديناميكي. يختار الشخص مساحة العمل والصلاحية، ويمكنه إلغاؤها في أي وقت.
قراءة فقط، أو قراءة وتنفيذ
تختار لكل تطبيق أو مفتاح. أدوات التنفيذ لا تظهر للاتصالات المخصصة للقراءة.
دورك يبقى ساريًا
لا يستطيع أي تطبيق أن يفعل أكثر مما يحق للشخص الذي ربطه.
كل إجراء مسجَّل
المكالمات المطلوبة والمهام المعدلة وجهات الاتصال المحدثة تُسجل باسم الشخص، مع الإشارة إلى أنها من تطبيق ذكاء اصطناعي.
ضع فريقك داخل تطبيقات الذكاء الاصطناعي التي تستخدمها.
اختر باقتك، وتعرّف على مدير المكتب، ثم اربط Claude أو ChatGPT في دقيقة.
