Najjab MCP Server
Generates calendar event files (.ics) containing each incident-notification deadline so they can be imported into Apple Calendar, with a reminder set 15 minutes before every deadline.
Generates calendar event files (.ics) containing each incident-notification deadline so they can be imported into Google Calendar, with a reminder set 15 minutes before every deadline.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Najjab MCP ServerA bank in Bahrain had a critical incident today — who do we notify and by when?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Najjab | نجّاب
دليل الساعات الأولى من الحادثة السيبرانية في دول الخليج يحدد من يجب إبلاغه ومتى ويربط كل مهلة بمصدرها الرسمي ومعه أدلة الاستجابة ومسودة الإشعار وتمرين المحاكاة وخادم MCP لمساعدي الذكاء الاصطناعي.
A guide to the first hours of a cyber incident in the Gulf: who to notify, by when, with the official source of every deadline, plus response playbooks, a notice draft, a tabletop exercise and an MCP server for AI assistants.
الموقع | Site: https://najjab.3li.info
بالعربية
لماذا نجّاب
في الساعة الأولى من الحادثة يسأل الجميع السؤال نفسه وهو من نبلّغ ومتى. والجواب موزع على قوانين حماية البيانات وأطر البنوك المركزية وضوابط الهيئات الوطنية في ست دول وكل منها يحسب المهلة من لحظة مختلفة. لذا يجمع نجّاب هذه الواجبات في سجل واحد ثمّ يحوّل الحادثة إلى قائمة مرتبة بالأقرب موعداً مع عدّاد حي لكل جهة.
ماذا يقدّم
ساعة الإبلاغ وفيها تختار الدول التي تعمل فيها والمناطق الحرة المالية والقطاع ونوع الحادثة ودرجة خطورتها ووقت اكتشافها فتظهر كل جهة يجب إبلاغها مع موعدها بتوقيتك وبتوقيت الدولة وعدّاد تنازلي يتغير لونه كلما اقتربت المهلة.
أدلة الاستجابة ولكل من برمجيات الفدية واختراق البريد الإلكتروني للأعمال وتسرّب البيانات وانكشاف مفاتيح الوصول السحابية خطوات تبدأ بالساعة الأولى ثمّ الاحتواء والاستئصال والتعافي والأدلة الواجب حفظها وما بعد الحادثة.
ملف التقويم ويضيف كل مهلة بوقت محدد إلى Outlook أو تقويم Google أو تقويم Apple مع تنبيه قبلها بربع ساعة.
مسودة الإشعار وهي نص بالعربية والإنجليزية يجمع الحقائق التي تطلبها كل جهة أولاً ويُوجَّه تلقائياً إلى الجهات التي تستدعيها الحادثة.
تمرين المحاكاة وفيه سيناريو لكل نوع من الحوادث تُكشف تطوراته بالتتابع مع مؤقت للميسّر وأسئلة للنقاش.
سجل الواجبات ويعرض كل واجب مع نطاقه ومصدره ومستوى التحقق منه ثمّ الجهات التي ما زالت قيد التحقق.
خادم MCP ويجيب مساعدي الذكاء الاصطناعي من البيانات نفسها دون اتصال بالإنترنت ودون أي اعتماديات.
التغطية
الدولة | الجهة | الواجب | الإبلاغ الأول | التحقق |
الكويت | بنك الكويت المركزي | الحوادث السيبرانية | العالية خلال ساعة والمتوسطة خلال 4 ساعات من الاكتشاف | النص الرسمي |
الكويت | بنك الكويت المركزي | خرق البيانات الشخصية | وفق مهل الإبلاغ عن الحوادث | النص الرسمي |
الكويت | المركز الوطني للأمن السيبراني | الحوادث السيبرانية | دون تأخير وضمن المهل التي يحددها المركز | النص الرسمي |
الكويت | الهيئة العامة للاتصالات وتقنية المعلومات | خرق البيانات الشخصية لدى المرخص لهم | خلال 24 ساعة من العلم | مصدر ثانوي |
السعودية | الهيئة السعودية للبيانات والذكاء الاصطناعي | خرق البيانات الشخصية | خلال 72 ساعة من العلم | مصدر ثانوي |
السعودية | البنك المركزي السعودي | الحوادث المتوسطة والعالية | فوراً | النص الرسمي |
السعودية | البنك المركزي السعودي | الحوادث التي تمس العملاء | فوراً ثمّ تقرير مفصل خلال 5 أيام | النص الرسمي |
السعودية | البنك المركزي السعودي | مقدمو خدمات المدفوعات | فوراً للمتوسطة فأعلى | النص الرسمي |
السعودية | الهيئة الوطنية للأمن السيبراني | الجهات الحكومية والبنى التحتية الحساسة | بلا مهلة محددة | النص الرسمي |
الإمارات | مصرف الإمارات العربية المتحدة المركزي | الأحداث التي تمس العمليات الحرجة | خلال 4 ساعات ثمّ تقرير موجز خلال 24 ساعة وإشعار بالحوادث عالية الخطورة خلال 72 ساعة | النص الرسمي |
الإمارات | مكتب الإمارات للبيانات | خرق البيانات الشخصية | عند العلم والمهلة متروكة للائحة التنفيذية | مصدر ثانوي |
الإمارات | مفوض حماية البيانات في مركز دبي المالي العالمي | خرق البيانات الشخصية في المركز | في أقرب وقت ممكن عملياً | النص الرسمي |
الإمارات | مكتب حماية البيانات في سوق أبوظبي العالمي | خرق البيانات الشخصية في السوق | خلال 72 ساعة من العلم متى أمكن | النص الرسمي |
قطر | الوكالة الوطنية للأمن السيبراني | الحوادث الحرجة | خلال ساعتين من التحديد | النص الرسمي |
قطر | الوكالة الوطنية للأمن السيبراني | خرق البيانات الشخصية | خلال 72 ساعة | النص الرسمي |
قطر | مصرف قطر المركزي | خروقات البيانات لدى المؤسسات المالية | وفق إرشادات المصرف مع إبلاغ الوكالة ووزارة الداخلية | النص الرسمي |
قطر | مكتب حماية البيانات في مركز قطر للمال | خرق البيانات الشخصية لدى الشركات المرخصة في المركز | خلال 72 ساعة من العلم | النص الرسمي |
البحرين | مصرف البحرين المركزي | حوادث البنوك التي تمس العملاء أو الخدمات الحرجة | اتصال خلال ساعة ثمّ تقرير أولي خلال ساعتين وتقرير كامل خلال 10 أيام | النص الرسمي |
البحرين | المركز الوطني للأمن السيبراني | حوادث الجهات الحكومية والبنى التحتية الحساسة | بلا مهلة محددة في الخطة الوطنية للاستجابة | النص الرسمي |
البحرين | هيئة حماية البيانات الشخصية | خرق البيانات الشخصية | خلال 72 ساعة من الاكتشاف | مصدر ثانوي |
عُمان | وزارة النقل والاتصالات وتقنية المعلومات | خرق البيانات الشخصية | خلال 72 ساعة من العلم | مصدر ثانوي |
عُمان | مركز الدفاع الإلكتروني | حوادث الجهات الحكومية والبنى التحتية الحساسة | بلا مهلة منشورة | مصدر ثانوي |
وما زالت مهلة الإبلاغ عن الحوادث السيبرانية لدى مصرف قطر المركزي وقواعد البنك المركزي العُماني ومجلس الأمن السيبراني لدولة الإمارات قيد التحقق ولن تدخل السجل قبل قراءتها في مصدر رسمي أو موثوق.
سياسة التحقق
يحمل كل واجب أحد مستويين فإما النص الرسمي أي قُرئ في الوثيقة المنشورة لدى الجهة المصدرة ورابطها مرفق وإما مصدر ثانوي أي أكّدته مكاتب محاماة ومراجع موثوقة لتعذّر الوصول الآلي إلى النص الرسمي وأسماؤها مرفقة. ولا يدخل السجل رقم لم يُقرأ في أحد المستويين.
الاستخدام
افتح الموقع مباشرة ولا يحتاج إلى حساب أو تثبيت. وتُحفظ اختياراتك في متصفحك فقط ويحمل الرابط تفاصيل الحادثة لتشاركه مع فريقك فيرى العدّادات نفسها.
ولتشغيل خادم MCP أضف هذا إلى إعدادات مساعدك ثمّ اسأله عن مهل الإبلاغ لأي حادثة.
{
"mcpServers": {
"najjab": { "command": "npx", "args": ["-y", "github:SiteQ8/Najjab"] }
}
}تنبيه
نجّاب مرجع عملي لا يغني عن الاستشارة القانونية لذا يبقى النص الرسمي هو المعتمد دائماً.
Related MCP server: Lithuanian Cybersecurity MCP
English
Why
In the first hour of an incident everyone asks the same question: who do we notify, and by when? The answer is spread across data protection laws, central bank frameworks and national cybersecurity controls in six countries, each counting from a different moment. Najjab gathers those duties into one register and turns an incident into a list ordered by what is due first, with a live countdown for every authority.
What it does
The notification clock. Pick the countries and financial free zones you operate in, your sector, the type of incident, its severity and when it was discovered. Every authority you must notify appears with its due time in your time zone and the country's, and a countdown that changes colour as the deadline nears.
Playbooks. Ransomware, business email compromise, data breach and exposed cloud access keys, each with how it shows up, the first hour, containment, eradication, recovery, the evidence to keep and what to do after.
Calendar file. Every deadline with a fixed time, as events for Outlook, Google Calendar or Apple Calendar with a reminder 15 minutes before each.
Notice draft. Arabic and English text that gathers the facts every regulator asks for first, addressed to the authorities the incident triggers.
Tabletop exercise. A scenario per incident type with developments revealed one at a time, a facilitator timer and questions for the room.
Register. Every duty with its scope, source and verification level, plus the authorities still being verified.
MCP server. The same data answers AI assistants offline, with no dependencies.
Coverage
Country | Authority | Duty | First notice | Verification |
Kuwait | Central Bank of Kuwait | Cyber incidents (CORF control area 8.2.2) | High within 1 hour, medium within 4 hours of discovery | Official text |
Kuwait | Central Bank of Kuwait | Personal data breach (CORF control 5.11.2.4) | On the incident reporting timelines | Official text |
Kuwait | National Cyber Security Center | Cyber incidents (NBCC control RS-1) | Promptly, within the Center's timelines | Official text |
Kuwait | CITRA | Personal data breach at licensed providers (Resolution 26 of 2024) | Within 24 hours of awareness | Secondary source |
Saudi Arabia | SDAIA | Personal data breach (PDPL Implementing Regulation, Article 24) | Within 72 hours of awareness | Secondary source |
Saudi Arabia | SAMA | Medium and high incidents (Cyber Security Framework 3.3.15) | Immediately | Official text |
Saudi Arabia | SAMA | Incidents affecting customers (IT Governance Framework 3.3.8) | Immediately, detailed report within 5 days | Official text |
Saudi Arabia | SAMA | Payment service providers (Payments Implementing Regulations, Article 121(2)) | Immediately, medium and higher | Official text |
Saudi Arabia | NCA | Government and critical national infrastructure (ECC-2:2024, 2-13-3) | No fixed period | Official text |
UAE | Central Bank of the UAE | Events affecting critical operations (Operational Risk Management Regulation, Articles 15.2 and 15.3) | Within 4 hours, summary report within 24 hours, high-risk incidents within 72 hours | Official text |
UAE | UAE Data Office | Personal data breach (Decree by Law 45 of 2021, Article 9) | Upon awareness, period left to executive regulations | Secondary source |
UAE (DIFC) | DIFC Commissioner of Data Protection | Personal data breach (DIFC Law No. 5 of 2020, Articles 41 and 42) | As soon as practicable | Official text |
UAE (ADGM) | ADGM Office of Data Protection | Personal data breach (Data Protection Regulations 2021, Articles 32 and 33) | Within 72 hours of awareness where feasible | Official text |
Qatar | NCSA | Critical incidents (NIA Standard v2.1, IM 8) | Within 2 hours of identification | Official text |
Qatar | NCSA | Personal data breach (PDPPL breach notification guideline) | Within 72 hours | Official text |
Qatar | Qatar Central Bank | Data breaches at licensed financial institutions (Data Handling and Protection Regulation, Article 16) | Under QCB incident reporting guidelines, also to NCSA and the Ministry of Interior | Official text |
Qatar (QFC) | QFC Data Protection Office | Personal data breach at QFC firms (Data Protection Regulations 2021, Article 31) | Within 72 hours of awareness | Official text |
Bahrain | Central Bank of Bahrain | Bank incidents affecting customers or critical services (Rulebook OM-5.5.57 and OM-5.5.58) | Call within 1 hour, Section A within 2 hours, Section B within 10 days | Official text |
Bahrain | National Cyber Security Center | Incidents at government entities and critical national infrastructure (National Cybersecurity Incident Response Plan) | No fixed period | Official text |
Bahrain | Personal Data Protection Authority | Personal data breach (Resolution 43 of 2022, Article 4(2)) | Within 72 hours of discovery | Secondary source |
Oman | Ministry of Transport, Communications and IT | Personal data breach (Ministerial Decision 34 of 2024, Articles 30 and 32) | Within 72 hours of awareness | Secondary source |
Oman | Cyber Defense Centre | Incidents at government entities and critical infrastructure (Royal Decree 64/2020) | No published period | Secondary source |
Still being verified, and kept out of the register until their rules are read in an official or reliable source: the cyber incident timeline of Qatar Central Bank, the Central Bank of Oman and the UAE Cyber Security Council.
Verification policy
Every duty carries one of two levels. Official text means it was read in the document published by the issuing authority, and the link is included. Secondary source means reputable law firms and references confirmed it because the official text could not be retrieved automatically, and they are named. No number enters the register without one of the two.
Severity is graded differently by each authority, so pick the grade your own classification gives. A critical incident takes the highest grade an authority defines, and a duty that only starts at a higher grade is listed as not triggered, with the reason.
Use it
Open the site. There is no account and nothing to install. Your choices stay in your browser, and the address carries the incident details so your team can open the same link and see the same countdowns.
To run the MCP server, add it to your assistant's configuration:
{
"mcpServers": {
"najjab": { "command": "npx", "args": ["-y", "github:SiteQ8/Najjab"] }
}
}Tool | What it answers |
| Countries, authorities, verification levels and what is still being verified. Start here. |
| Duties filtered by country, trigger or sector, paged. |
| One duty with every deadline row, its source, link and secondary sources. |
| Every duty an incident triggers across the given countries and free zones, soonest first, with due times computed from the discovery time. |
| The playbook for an incident type. |
| A tabletop exercise for an incident type. |
| An .ics file with one event per timed deadline and a reminder 15 minutes before each. |
| A notice draft in Arabic or English addressed to the triggered authorities. |
Every tool is read-only, answers in Arabic or English, and returns Markdown or JSON.
Develop
Node 18 or later, no dependencies.
npm run build # validate data/src and write docs/data/bundle.json
npm test # data, engine, MCP and site tests
npm run preflight # build, guards, MCP selftest and tests together
npm run test:ui # browser check with Playwright, when it is installed
npm run links # every source and document link, 404 failsThe data lives in data/src: obligations.json for the duties, playbooks.json, tabletop.json and ui.json. The tests hold every Arabic text to the house rules: a sentence ends with a single period, clauses join with connectives rather than commas, and every number survives translation.
Not legal advice
Najjab is a practical reference and not legal advice, so always act on the official text. See NOTICE.md for sources and provenance.
License
MIT, see LICENSE. Fonts are under the SIL Open Font License, see docs/fonts/OFL.txt.
Available Tools
8 toolsnajjab_calendarCalendar of deadlinesARead-onlyIdempotent
An iCalendar (.ics) file with one event per timed deadline the incident triggers and a reminder 15 minutes before each, ready to import into Outlook, Google Calendar or Apple Calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| zones | No | Financial free zones the organization also operates in: difc and adgm (UAE), qfc (Qatar). Their data protection duties are added; federal duties still apply outside the zone. | |
| sector | No | general, banking, insurance, payments, telecom, government or critical (critical infrastructure). | general |
| severity | No | The grade your own classification gives: critical, high, medium or low. | high |
| countries | Yes | Every country the organization operates in, for example ["KW", "SA"]. | |
| discovered_at | Yes | When the incident was discovered, ISO 8601 with offset, for example "2026-10-04T08:00:00+03:00". | |
| incident_type | Yes | ransomware, bec (business email compromise), data-breach or cloud-key (exposed cloud access keys). | |
| personal_data | No | True when personal data was affected. A data-breach always counts as personal data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, non-destructive read, so the safety profile is covered. The description goes beyond them by disclosing the output format (.ics), the one-event-per-timed-deadline structure, and the fixed 15-minute reminder offset, which is genuinely useful behavioral detail for a tool with no output schema. It stops short of saying whether the file is returned inline or as a download reference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the artifact is front-loaded. It is a noun phrase rather than a verb-led statement of action, which slightly weakens the opening but wastes nothing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly carries the burden of explaining the return value, and it does so well (event-per-deadline, reminder offset, import targets). What is missing is the relationship to the najjab_deadlines sibling and the delivery mechanism, but for a read-only generation tool the essentials are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 8 parameters, so the enum values, defaults, country codes, and ISO 8601 format are already fully documented in the schema. The description adds no parameter-level meaning, which is acceptable here but earns only the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete artifact (an iCalendar .ics file) and specifies its contents: one event per timed deadline plus a 15-minute reminder. That is far more than a restatement of the title, but it never distinguishes this tool from the sibling najjab_deadlines, so an agent cannot tell from the text alone whether this returns the same deadlines in a different format.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'ready to import into Outlook, Google Calendar or Apple Calendar' hints at a calendar-integration use case, but there is no explicit when-to-use, no when-not-to-use, and no pointer to najjab_deadlines as the alternative for reading deadlines in text form. The agent must infer the routing decision.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_deadlinesDeadlines for an incidentARead-onlyIdempotent
Every notification duty an incident triggers across the given countries, soonest first, with the due time computed from the discovery time, follow up updates and closure reports, and notes when the severity grade changes the answer.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| zones | No | Financial free zones the organization also operates in: difc and adgm (UAE), qfc (Qatar). Their data protection duties are added; federal duties still apply outside the zone. | |
| sector | No | general, banking, insurance, payments, telecom, government or critical (critical infrastructure). | general |
| severity | No | The grade your own classification gives: critical, high, medium or low. | high |
| countries | Yes | Every country the organization operates in, for example ["KW", "SA"]. | |
| discovered_at | Yes | When the incident was discovered, ISO 8601 with offset, for example "2026-10-04T08:00:00+03:00". | |
| incident_type | Yes | ransomware, bec (business email compromise), data-breach or cloud-key (exposed cloud access keys). | |
| personal_data | No | True when personal data was affected. A data-breach always counts as personal data. | |
| response_format | No | markdown for reading, json for further processing. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed world). The description adds real behavioral context beyond them: results are ordered soonest first, due times are computed from the discovery time, follow-up updates and closure reports are included, and the answer changes with the severity grade. Return format/limits are not stated, so 4 not 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core output is front-loaded ('Every notification duty an incident triggers across the given countries, soonest first') and each clause conveys distinct information. It is one dense run-on sentence, which slightly hurts readability but contains no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and strong annotations, the description does the important work of describing the return shape (duties, ordering, computed dues, severity-conditioned notes). Remaining gaps, such as how zones or sector alter results and output formatting, are largely covered by the schema's parameter descriptions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with rich enum descriptions, so the baseline is 3. The description adds interpretation beyond the schema by explaining that due times derive from discovered_at and that severity/grade conditionally alters the output, clarifying how parameters drive results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource returned: every notification duty an incident triggers across given countries, with deadlines computed from discovery time. It is distinguishable from siblings like najjab_list_obligations or najjab_calendar because it is derived from an incident and computed rather than a static list. It stops short of naming a sibling it replaces, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the scenario: an incident has occurred and you need its resulting deadlines. There is no explicit when-to-use/when-not, no prerequisites, and no routing to alternatives such as najjab_playbook or najjab_calendar, leaving the agent to infer the right moment to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_draft_noticeDraft a noticeBRead-onlyIdempotent
A plain notice in Arabic or English that gathers the facts every regulator asks for first, addressed to the authorities the incident triggers. Use the authority's own form and channel where one exists.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| zones | No | Financial free zones the organization also operates in: difc and adgm (UAE), qfc (Qatar). Their data protection duties are added; federal duties still apply outside the zone. | |
| sector | No | general, banking, insurance, payments, telecom, government or critical (critical infrastructure). | general |
| actions | No | ||
| contact | No | ||
| records | No | ||
| summary | No | ||
| systems | No | ||
| severity | No | The grade your own classification gives: critical, high, medium or low. | high |
| countries | Yes | Every country the organization operates in, for example ["KW", "SA"]. | |
| next_update | No | ||
| organization | No | ||
| discovered_at | Yes | When the incident was discovered, ISO 8601 with offset, for example "2026-10-04T08:00:00+03:00". | |
| incident_type | Yes | ransomware, bec (business email compromise), data-breach or cloud-key (exposed cloud access keys). | |
| personal_data | No | True when personal data was affected. A data-breach always counts as personal data. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the agent knows this is a safe, repeatable, local generation call. The description adds useful framing (bilingual output, fact-gathering scope, authority-specific form/channel), but discloses nothing about authentication, rate limits, or the shape/size of the returned draft. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the deliverable front-loaded and no filler. It is efficient, though slightly abstract for a 15-parameter tool where a few more words could have disambiguated the free-text fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, 53% schema coverage, no output schema, and seven undocumented free-text inputs, the description carries a real burden. It explains the intent and the addressee but never describes what the drafted notice contains or how the unlabeled fields feed it, leaving a meaningful gap for an agent assembling a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 53%, and the undocumented fields (actions, contact, records, summary, systems, organization, next_update) are bare strings with no guidance. The description partially compensates by framing these as "the facts every regulator asks for first," and the Arabic/English and authority mentions echo the lang and countries parameters, but it adds no syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete deliverable (a plain notice, in Arabic or English) that consolidates the facts regulators ask for, addressed to the authorities an incident triggers. An agent can tell this is a drafting/generation tool. It never contrasts itself with the playbook, tabletop, or deadlines siblings, so differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Addressed to the authorities the incident triggers" implies the context (post-incident notification) and "use the authority's own form and channel where one exists" gives downstream usage guidance. However, no sibling alternative is named and no when-not condition is stated, so selection guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_get_obligationGet one dutyARead-onlyIdempotent
One duty by id (for example "kw-cbk-incident" or "sa-sdaia-pdb") with every deadline row, the summary, the official source with its reference and link, and the secondary sources when the official text could not be read automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Duty id such as "qa-ncsa-nia". | |
| lang | No | Language for the answer: en or ar. | en |
| response_format | No | markdown for reading, json for further processing. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real value by enumerating the returned content (deadline rows, summary, official source with reference and link, secondary sources fallback), which matters because there is no output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence that leads with the core action ('One duty by id') and then lists the return payload. No filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does the work of explaining what comes back, including the secondary-sources fallback case. Language and format behavior are left to the schema, which is reasonable, so nothing essential is missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so id, lang and response_format are already documented, and the baseline is 3. The description adds only extra id examples ('kw-cbk-incident', 'sa-sdaia-pdb') beyond the schema's 'qa-ncsa-nia', which is marginal added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('One duty by id') plus the payload it returns, so an agent can tell it apart from najjab_list_obligations or najjab_deadlines. It stops short of naming those siblings explicitly, so differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The singular 'One duty by id' implies a single-record lookup as opposed to the list sibling, but there is no explicit when-to-use/when-not guidance or named alternative. Usage is left to inference from the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_list_obligationsList notification dutiesARead-onlyIdempotent
Notification duties in the register with authority, who they apply to, the deadline in words, the official source and the verification level. Filter by country, financial free zone, trigger (cyber-incident or personal-data-breach) or sector. Paged.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| zone | No | difc, adgm or qfc. | |
| limit | No | Maximum items to return. | |
| offset | No | Items to skip, for paging. | |
| sector | No | general, banking, insurance, payments, telecom, government or critical (critical infrastructure). | general |
| country | No | Country code: KW Kuwait, SA Saudi Arabia, AE UAE, QA Qatar, BH Bahrain, OM Oman. | |
| trigger | No | ||
| response_format | No | markdown for reading, json for further processing. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: it is paged, and it discloses the shape of each returned record (authority, applicability, deadline in words, source, verification level) even though no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler: the resource and return contents lead, filtering follows, paging closes. Every clause earns its place and nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an eight-parameter, zero-required list tool with no output schema, the description compensates well by describing returned fields, filter axes and paging. It omits any mention of the lang/response_format switches and default filter behavior, which are minor given the schema documents them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 88%, so the schema carries most parameter meaning. The description still adds interpretive value by glossing 'zone' as 'financial free zone' (clarifying the difc/adgm/qfc enum) and by naming the two trigger semantics (cyber-incident or personal-data-breach), which the schema leaves as bare enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (notification duties in the register) and enumerates the returned fields — authority, applicability, deadline in words, official source, verification level — so an agent knows exactly what a call yields. It does not explicitly differentiate itself from the singular sibling najjab_get_obligation, but the plural register-listing framing and filter surface make the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the available filters (country, financial free zone, trigger, sector) and that results are paged, which implies the browse-and-filter use case. However, it never says when to prefer this over najjab_deadlines or najjab_get_obligation, nor when-not to use it, leaving routing between siblings to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_overviewCoverage overviewARead-onlyIdempotent
What Najjab covers: the six Gulf countries, the authorities and duties in the register, how each duty was verified, and the authorities still being verified. Start here.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| response_format | No | markdown for reading, json for further processing. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed world, so the safety profile is fully covered by structured data. The description adds content scope (what domains the overview spans) but says nothing about output size, pagination, or latency, so it adds moderate rather than rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single colon-delimited sentence enumerating the covered domains, followed by the two-word directive 'Start here.' It is tightly front-loaded with no filler. The enumeration is a touch list-like, but every item conveys scope information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter, read-only orientation tool, the description communicates the scope of the answer, and the two formatting parameters are fully specified in the schema. With no output schema, describing the subject matter of the response is the right substitute; only a note on response size or structure is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'lang' and 'response_format' are fully documented with enums and defaults, and the description adds nothing about them. Per the rubric, full schema coverage establishes a 3 baseline even with no parameter discussion in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource precisely — coverage of the six Gulf countries, the authorities and duties register, verification status — so an agent knows this is an orientation/summary tool. It does not explicitly contrast itself with siblings like najjab_list_obligations, so it falls short of a 5, but the verb-less 'what Najjab covers' framing is unambiguous about the content returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here' is an explicit, front-loaded usage directive that tells the agent to call this before the more specific siblings (list_obligations, get_obligation, deadlines, etc.). It gives no when-not or exclusion conditions, which keeps it from a 5, but the intended entry-point role is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_playbookResponse playbookARead-onlyIdempotent
The playbook for an incident type: how it shows up, the first hour, containment, eradication, recovery, the evidence to keep and what to do after.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| incident_type | Yes | ransomware, bec (business email compromise), data-breach or cloud-key (exposed cloud access keys). | |
| response_format | No | markdown for reading, json for further processing. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the full safety and side-effect profile is covered structurally. The description adds no further behavioral context (no auth needs, no rate limits, no output length/format caveats), but for a read-only, idempotent content lookup there is little behavior left to disclose, so this is adequate rather than deficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the resource and then enumerates scope in a compact, comma-separated list with zero filler. Every clause earns its place by describing a section of the returned playbook.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing the playbook's sections, so the agent knows what it will receive and in what sequence. All inputs are fully documented in the schema with defaults. Only the missing routing guidance against sibling content tools keeps this from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters carry enum descriptions plus defaults, so the schema does the heavy lifting. The description contributes only the phrase 'for an incident type', which adds no meaning beyond the schema's own incident_type enum explanation; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource (the playbook) scoped to a specific input (an incident type) and enumerates exactly what the artifact contains: how it shows up, first hour, containment, eradication, recovery, evidence, aftercare. An agent immediately knows this returns complete IR guidance for one incident class. It stops short of differentiating itself from siblings such as najjab_overview or najjab_tabletop, which also return narrative content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'the playbook for an incident type' signals you call it when you have an incident class and want end-to-end handling steps, which is adequate for a lookup tool. There is no explicit when-to-use/when-not-to-use statement and no mention of the alternatives in the sibling set, so an agent choosing between this, najjab_overview and najjab_tabletop gets no routing help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
najjab_tabletopTabletop exerciseARead-onlyIdempotent
A ready tabletop exercise for an incident type: the scenario, the developments with the minute each is revealed, and the questions for the room.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language for the answer: en or ar. | en |
| incident_type | Yes | ransomware, bec (business email compromise), data-breach or cloud-key (exposed cloud access keys). | |
| response_format | No | markdown for reading, json for further processing. | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), and the description adds the return shape: a scenario plus developments each tagged with a reveal minute, plus room questions. The word 'ready' also signals pre-authored rather than generated content. It stops short of stating pagination, size, or auth needs, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the core deliverable is stated first and the component list follows. Slightly dense but every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of describing the return value and does so adequately (scenario, timed developments, questions), which is what an agent needs to know before calling. The absence of any explicit sibling routing or size expectations keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters carry enums with defaults, so the schema already documents lang, incident_type, and response_format. The description's 'for an incident type' restates the required parameter without adding format or constraint detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific deliverable — a ready tabletop exercise for an incident type — and enumerates its components (scenario, timed developments, room questions). That is far more informative than a restated title and lets an agent distinguish it from najjab_playbook or najjab_draft_notice, though it never explicitly contrasts itself with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: reach for this when you need a pre-built exercise for a given incident type. However, no when-to-use condition, prerequisite, or named alternative (e.g. najjab_playbook) is given, so the agent must infer selection from the sibling list alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.4.1- First observed
najjab_calendar - First observed
najjab_deadlines - First observed
najjab_draft_notice - First observed
najjab_get_obligation - First observed
najjab_list_obligations - First observed
najjab_overview - First observed
najjab_playbook - First observed
najjab_tabletop
TDQS
Scored across 8 tools
Each tool targets a distinct function: orientation (overview), browsing duties (list_obligations vs get_obligation are a clear list/single pair), computing deadlines, response guidance (playbook vs tabletop), calendar export, and notice drafting. The only mild overlap is that deadlines, list_obligations, and calendar all touch notification timing, but their descriptions differentiate incident-computed timing from register browsing and export.
All tools share a consistent najjab_ prefix and snake_case formatting. The suffix style is mixed, though: some are verb_noun (list_obligations, get_obligation, draft_notice) and others are bare nouns (overview, deadlines, playbook, tabletop, calendar), but the convention is readable and predictable overall.
Eight tools is well within the ideal 3-15 range and each one serves a clear, non-redundant purpose in the incident-notification workflow. Nothing feels padded or missing in the count.
The surface covers the full arc: orientation, browse/lookup of duties, deadline computation from an incident, response playbook, tabletop exercise, calendar export, and notice drafting. Minor gaps exist (e.g. no direct lookup or filtering by authority, or a comparison/updates view), but core regulatory and response workflows are covered.
Maintenance
Related MCP Connectors
Incident-reporting deadlines from the law: CRA, NIS2, DORA, GDPR, HIPAA, SEC 8-K. 6 of 9 tools free.
Who to notify after a data breach and by what date: all US states, SEC, HIPAA, GDPR, UK. Sourced.
31Verified, tier-0 regulatory data for AI across 850+ official sources and 50+ jurisdictions.
- DikeOAuthio.github.fr3on
Grounded MENA legal search, reasoning, citation resolution, and citation-graph traversal.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides GCC regulatory intelligence including ZATCA e-invoicing, Arabic NLP, UAE Corporate Tax, and compliance tools for AI agents via the Model Context Protocol.53 npmMIT
- AlicenseNot gradedqualityFmaintenanceQuery Lithuanian cybersecurity data — regulations, decisions, and requirements from NKSC — directly from AI assistants.Apache 2.0

brehon-mcp-serverofficial
AlicenseNot gradedqualityDmaintenanceProvides AI assistants with real-time, structured access to 32 privacy and AI governance laws across 28 jurisdictions to prevent hallucination in compliance answers.9 npmMIT- FlicenseNot gradedqualityCmaintenanceEnables AI agents to perform offline cybersecurity research and penetration testing by querying a local knowledge base of curated security data, with tools for searching, answering, and status checking.-