Notifications & Webhooks — MCP Tools
14 tools in the Notifications & Webhooks group of the Routebase MCP server.
create_webhook
Create a new webhook to receive event notifications via HTTP POST. Subscribe to events like spec.published, test.failed, portal.build.completed, etc. Returns the created webhook with its signing secret (shown only once — save it!). Only accessible by organization admins and owners. Requires organization context (call set_context first).
Required scope: notifications:manage
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Human-readable name for the webhook |
url |
string | Yes | Target URL for webhook delivery (must be HTTPS) |
events |
string | Yes | Comma-separated event types to subscribe to (e.g., 'spec.published,test.failed,portal.build.completed') |
description |
string | No | Optional description |
projectId |
string | No | Optional project public Id (Guid) to scope the webhook to a specific project |
maxRetries |
integer | No (default 3) |
Maximum retry attempts on delivery failure (default 3, max 10) |
isEnabled |
boolean | No (default true) |
Whether the webhook should be active immediately (default true) |
delete_webhook
Delete a webhook. Only accessible by organization admins and owners. Requires organization context (call set_context first).
Required scope: notifications:manage
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId |
string | Yes | The public Id (Guid) of the webhook to delete |
get_notification_preferences
Read notification preferences per category. scope 'user' (default) returns your own settings, where isUserOverride tells you whether a category follows the organization default or your own choice; scope 'org' returns the organization defaults. Requires organization context.
No special scope — available to any authenticated key.
| Parameter | Type | Required | Description |
|---|---|---|---|
scope |
string | No (default "user") |
Whose settings to read: 'user' (default) or 'org' |
list_notifications
Get notifications for the authenticated user in the active organization. Supports filtering for unread only and pagination. Returns notifications with type, title, message, action URL, and read status. Requires organization context (call set_context first).
No special scope — available to any authenticated key.
| Parameter | Type | Required | Description |
|---|---|---|---|
unreadOnly |
boolean | No (default true) |
If true, return only unread notifications (default true) |
skip |
integer | No (default 0) |
Number of notifications to skip (for pagination, default 0) |
take |
integer | No (default 20) |
Number of notifications to return (default 20, max 100) |
list_webhook_deliveries
List delivery attempts of one webhook — event type, status, attempt count, HTTP status and error message. This is where you look when a webhook 'does not fire'. Get the webhookId from list_webhooks. Requires organization context.
Required scope: notifications:read
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId |
string | Yes | Public ID (GUID) of the webhook |
skip |
integer | No (default 0) |
Number of deliveries to skip (for pagination, default 0) |
take |
integer | No (default 50) |
Number of deliveries to return (default 50, max 100) |
list_webhooks
List configured webhooks for the organization, optionally filtered by project. Returns webhook details including URL, subscribed events, and enabled status. Only accessible by organization admins and owners. Requires organization context (call set_context first).
Required scope: notifications:read
| Parameter | Type | Required | Description |
|---|---|---|---|
projectId |
string | No | Optional project public Id (Guid) to filter webhooks by project |
skip |
integer | No (default 0) |
Number of webhooks to skip (for pagination, default 0) |
take |
integer | No (default 50) |
Number of webhooks to return (default 50, max 100) |
mark_all_notifications_read
Mark EVERY unread notification of the authenticated user in the active organization as read. This cannot be undone — to clear a single one use mark_notification_read. Requires organization context (call set_context first).
No special scope — available to any authenticated key.
No parameters.
mark_notification_read
Mark one notification as read. Get the id from list_notifications. Requires organization context (call set_context first).
No special scope — available to any authenticated key.
| Parameter | Type | Required | Description |
|---|---|---|---|
notificationId |
string | Yes | Public ID (GUID) of the notification |
regenerate_webhook_secret
Issue a new HMAC signing secret for a webhook and return it. The old secret stops working immediately, so the receiver must be updated — deliveries fail signature verification until it is. The secret is shown only here; save it. Requires organization context.
Required scope: notifications:manage
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId |
string | Yes | Public ID (GUID) of the webhook |
test_webhook
Send a test payload to a webhook to verify its configuration. Returns the delivery result including HTTP status code, delivery status, and any errors. Only accessible by organization admins and owners. Requires organization context (call set_context first).
Required scope: notifications:manage
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId |
string | Yes | The public Id (Guid) of the webhook to test |
toggle_webhook
Enable or disable a webhook without changing its configuration. Only accessible by organization admins and owners. Requires organization context (call set_context first).
Required scope: notifications:manage
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId |
string | Yes | The public Id (Guid) of the webhook to enable or disable |
enable |
boolean | Yes | True to enable the webhook, false to disable it |
update_notification_preferences
Set YOUR notification preferences for one or more categories. Categories you do not mention keep their current setting. Use resetCategories to drop your override so a category follows the organization default again — an entry in categoriesJson can only set an override, never remove one. Valid categories: api_design, testing, project, mock_server, style_guide, team, portal, monitoring, security, billing, deprecation.
No special scope — available to any authenticated key.
| Parameter | Type | Required | Description |
|---|---|---|---|
categoriesJson |
string | Yes | JSON array of category settings. Each item: { "category": string, "inAppEnabled": bool, "emailEnabled": bool }. |
resetCategories |
string | No | Comma-separated categories whose personal override should be removed |
update_org_notification_defaults
Set the organization-wide notification defaults per category. They apply to every member who has not overridden the category for themselves. Categories you do not mention keep their current setting. Valid categories: api_design, testing, project, mock_server, style_guide, team, portal, monitoring, security, billing, deprecation.
Required scope: org:manage-settings
| Parameter | Type | Required | Description |
|---|---|---|---|
categoriesJson |
string | Yes | JSON array of category defaults. Each item: { "category": string, "inAppEnabled": bool, "emailEnabled": bool }. |
update_webhook
Update a webhook's name, description, target URL, subscribed events, and retry count. Pass the current values for fields you don't want to change; use 'toggle_webhook' to enable/disable. Only accessible by organization admins and owners. Requires organization context (call set_context first).
Required scope: notifications:read, notifications:manage
| Parameter | Type | Required | Description |
|---|---|---|---|
webhookId |
string | Yes | The public Id (Guid) of the webhook to update |
name |
string | Yes | Human-readable name for the webhook |
url |
string | Yes | Target URL for webhook delivery (must be HTTPS) |
events |
string | Yes | Comma-separated event types to subscribe to (e.g., 'spec.published,test.failed') |
description |
string | No | Optional description |
maxRetries |
integer | No (default 3) |
Maximum retry attempts on delivery failure (default 3, max 10) |