Cron jobs with retries, webhook relay, HTML-to-PDF, and transactional email for your app.
Inferred from the transports this listing declares (stdio, streamable-http). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.
OAKSTACK_API_KEYAPI keyrequiredYour Oakstack API key (starts with ok_live_ or ok_test_). Create one at https://oakstack.dev/dashboard/api-keys.
Declared by the author in the official MCP registry. Forge does not store, broker, or ever see these values — the config below is scaffolded with placeholders you fill in locally.
Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.
Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.
clock_create_jobSchedule Oakstack to call a URL in the user's app on a cron schedule (like a cron job or Vercel Cron, but with retries and a run log). Returns the job, including `signingSecret`: tell the user to store it (e.g. OAKSTACK_SIGNING_SECRET) and verify the Oakstack-Signature header with `verifySignature`…Schedule Oakstack to call a URL in the user's app on a cron schedule (like a cron job or Vercel Cron, but with retries and a run log). Returns the job, including `signingSecret`: tell the user to store it (e.g. OAKSTACK_SIGNING_SECRET) and verify the Oakstack-Signature header with `verifySignature`…
No input schema was published for this tool.
clock_list_jobsList the workspace's scheduled jobs with status, next run time, and last result.List the workspace's scheduled jobs with status, next run time, and last result.
No input schema was published for this tool.
clock_get_jobGet one job, including its schedule, status, pausedReason, and signingSecret.Get one job, including its schedule, status, pausedReason, and signingSecret.
No input schema was published for this tool.
clock_update_jobChange a job's fields, or pause/resume it with status 'paused' or 'active'. A job that auto-paused after repeated failures shows why in pausedReason; fix the URL, then set status 'active'.Change a job's fields, or pause/resume it with status 'paused' or 'active'. A job that auto-paused after repeated failures shows why in pausedReason; fix the URL, then set status 'active'.
No input schema was published for this tool.
clock_delete_jobprivilegedDelete a job and its run history. This cannot be undone; prefer pausing if unsure.Delete a job and its run history. This cannot be undone; prefer pausing if unsure.
No input schema was published for this tool.
clock_run_jobCall the job's URL right now, outside its schedule (at most once every 10 seconds per job). Use it to test a new job. Then check clock_list_runs for the result (status, responseStatus, error).Call the job's URL right now, outside its schedule (at most once every 10 seconds per job). Use it to test a new job. Then check clock_list_runs for the result (status, responseStatus, error).
No input schema was published for this tool.
clock_list_runsRecent runs of a job, newest first: status (pending, running, succeeded, failed), attempt, responseStatus, the first 2 KB of the response, and the error. Use this to debug a failing job.Recent runs of a job, newest first: status (pending, running, succeeded, failed), attempt, responseStatus, the first 2 KB of the response, and the error. Use this to debug a failing job.
No input schema was published for this tool.
hook_create_endpointCreate a permanent inbound webhook URL that stores every event and forwards it to the user's app with the original headers and body, retrying for about 11 hours if the app is down. Returns `url` (give it to the sender, e.g. paste into Stripe's or GitHub's webhook settings) and `signingSecret` (opti…Create a permanent inbound webhook URL that stores every event and forwards it to the user's app with the original headers and body, retrying for about 11 hours if the app is down. Returns `url` (give it to the sender, e.g. paste into Stripe's or GitHub's webhook settings) and `signingSecret` (opti…
No input schema was published for this tool.
hook_list_endpointsList the workspace's webhook endpoints with their inbound URL, forward URL, and status.List the workspace's webhook endpoints with their inbound URL, forward URL, and status.
No input schema was published for this tool.
hook_get_endpointGet one endpoint, including its inbound URL and signingSecret.Get one endpoint, including its inbound URL and signingSecret.
No input schema was published for this tool.
hook_update_endpointChange the name or forwardUrl, or pause/resume forwarding with status 'paused' or 'active'. Pausing holds events (they are still accepted and stored) and forwards them all on resume.Change the name or forwardUrl, or pause/resume forwarding with status 'paused' or 'active'. Pausing holds events (they are still accepted and stored) and forwards them all on resume.
No input schema was published for this tool.
hook_delete_endpointprivilegedDelete an endpoint and its events. Its inbound URL stops accepting immediately, so senders will start failing. Cannot be undone; prefer pausing if unsure.Delete an endpoint and its events. Its inbound URL stops accepting immediately, so senders will start failing. Cannot be undone; prefer pausing if unsure.
No input schema was published for this tool.
hook_list_eventsRecent events received by an endpoint, newest first, with delivery status (pending, delivering, delivered, failed), attempts, last response status, and last error. Filter with status 'failed' to find what needs attention.Recent events received by an endpoint, newest first, with delivery status (pending, delivering, delivered, failed), attempts, last response status, and last error. Filter with status 'failed' to find what needs attention.
No input schema was published for this tool.
hook_get_eventOne event with its original headers, body, and every delivery attempt (status code, response snippet, error, duration). Use this to debug why the user's app rejected an event.One event with its original headers, body, and every delivery attempt (status code, response snippet, error, duration). Use this to debug why the user's app rejected an event.
No input schema was published for this tool.
hook_replay_eventForward an event to the endpoint again (for example after fixing a bug in the user's webhook handler). Creates a new event linked by replayOf. Each replay counts as one event toward the plan's monthly limit.Forward an event to the endpoint again (for example after fixing a bug in the user's webhook handler). Creates a new event linked by replayOf. Each replay counts as one event toward the plan's monthly limit.
No input schema was published for this tool.
lens_extractRead photos, screenshots, PDFs (by public URL or base64) or pasted text and return structured data. Use template 'product-list' (products, quantities, condition, prices, pre-orders), 'receipt', or 'contacts', or pass your own JSON Schema. Returns data plus warnings for anything unclear. Counts page…Read photos, screenshots, PDFs (by public URL or base64) or pasted text and return structured data. Use template 'product-list' (products, quantities, condition, prices, pre-orders), 'receipt', or 'contacts', or pass your own JSON Schema. Returns data plus warnings for anything unclear. Counts page…
No input schema was published for this tool.
lens_list_templatesThe hosted extraction templates with their JSON Schema.The hosted extraction templates with their JSON Schema.
No input schema was published for this tool.
post_statusCheck whether live email can be sent from this workspace: whether sending is enabled, paused (after bounces or complaints), limited to workspace members (Free plan), and the current daily cap. Call this before setting up email.Check whether live email can be sent from this workspace: whether sending is enabled, paused (after bounces or complaints), limited to workspace members (Free plan), and the current daily cap. Call this before setting up email.
No input schema was published for this tool.
post_send_emailSend a transactional email. `from` must use a verified domain (see post_add_domain). With an ok_test_ key nothing is delivered: delivery is simulated and logged (send to bounced@test.oakstack.dev or complained@test.oakstack.dev to simulate those). Attach a PDF with attachments: [{ filename, print:…Send a transactional email. `from` must use a verified domain (see post_add_domain). With an ok_test_ key nothing is delivered: delivery is simulated and logged (send to bounced@test.oakstack.dev or complained@test.oakstack.dev to simulate those). Attach a PDF with attachments: [{ filename, print:…
No input schema was published for this tool.
post_list_emailsRecent emails, newest first, with status (queued, sent, delivered, bounced, complained, failed, suppressed). Filter by status to debug.Recent emails, newest first, with status (queued, sent, delivered, bounced, complained, failed, suppressed). Filter by status to debug.
No input schema was published for this tool.
post_get_emailOne email with its body and every event: sent, delivered, bounced (with the receiving server's reason), complained, suppressed.One email with its body and every event: sent, delivered, bounced (with the receiving server's reason), complained, suppressed.
No input schema was published for this tool.
post_add_domainAdd a domain to send from. Returns DNS records: the user must add the required ones (3 DKIM CNAMEs) at their DNS provider; the recommended ones improve deliverability. The domain verifies by itself once the records are live (minutes to hours).Add a domain to send from. Returns DNS records: the user must add the required ones (3 DKIM CNAMEs) at their DNS provider; the recommended ones improve deliverability. The domain verifies by itself once the records are live (minutes to hours).
No input schema was published for this tool.
post_list_domainsThe workspace's sending domains with status (pending, verified, failed) and their DNS records.The workspace's sending domains with status (pending, verified, failed) and their DNS records.
No input schema was published for this tool.
post_verify_domainCheck a pending domain's DNS records right away instead of waiting for the automatic check.Check a pending domain's DNS records right away instead of waiting for the automatic check.
No input schema was published for this tool.
post_create_inbound_addressCreate an email address whose incoming mail is parsed (from, subject, text, html, attachments) and delivered as JSON to a webhook endpoint (create one with hook_create_endpoint first). Use it for support inboxes, reply handling, or email-to-app features.Create an email address whose incoming mail is parsed (from, subject, text, html, attachments) and delivered as JSON to a webhook endpoint (create one with hook_create_endpoint first). Use it for support inboxes, reply handling, or email-to-app features.
No input schema was published for this tool.
print_list_templatesList the hosted PDF templates (invoice, proposal, report). Each has a JSON Schema for its data and a working example. Call this before print_create_pdf with a template.List the hosted PDF templates (invoice, proposal, report). Each has a JSON Schema for its data and a working example. Call this before print_create_pdf with a template.
No input schema was published for this tool.
print_create_pdfRender a PDF from a full HTML document (`html`) or a hosted template (`template` + `data`). Returns the PDF with a private download `url` valid for an hour, page count, and size. Images and fonts in the HTML can be data: URLs or public https URLs. Counts against the monthly PDF limit.Render a PDF from a full HTML document (`html`) or a hosted template (`template` + `data`). Returns the PDF with a private download `url` valid for an hour, page count, and size. Images and fonts in the HTML can be data: URLs or public https URLs. Counts against the monthly PDF limit.
No input schema was published for this tool.
print_list_pdfsRecent PDFs, newest first, with status (rendering, succeeded, failed), error, page count, and a fresh download url. Filter with status 'failed' to debug.Recent PDFs, newest first, with status (rendering, succeeded, failed), error, page count, and a fresh download url. Filter with status 'failed' to debug.
No input schema was published for this tool.
print_get_pdfOne PDF with a fresh download url (valid an hour), its error if it failed, and any resources the page tried to load that were blocked.One PDF with a fresh download url (valid an hour), its error if it failed, and any resources the page tried to load that were blocked.
No input schema was published for this tool.
ring_statusCheck whether live texts (SMS) can go out from this workspace: whether texting is enabled, the plan allows it (not on Free), numbers and their toll-free verification, verified sandbox phones, and the next step. Call this before setting up texting.Check whether live texts (SMS) can go out from this workspace: whether texting is enabled, the plan allows it (not on Free), numbers and their toll-free verification, verified sandbox phones, and the next step. Call this before setting up texting.
No input schema was published for this tool.
ring_send_textSend an SMS to a US or Canadian phone. Comes from the workspace's approved toll-free number (or, before it's approved, the sandbox number to verified phones only). Include opt-out wording like 'Reply STOP to opt out.' in the first text to someone. With an ok_test_ key nothing is sent: delivery is s…Send an SMS to a US or Canadian phone. Comes from the workspace's approved toll-free number (or, before it's approved, the sandbox number to verified phones only). Include opt-out wording like 'Reply STOP to opt out.' in the first text to someone. With an ok_test_ key nothing is sent: delivery is s…
No input schema was published for this tool.
ring_list_textsRecent texts, newest first, sent and received (direction 'inbound' are replies). Status: queued, sent, delivered, undelivered, failed, opted_out, canceled, received.Recent texts, newest first, sent and received (direction 'inbound' are replies). Status: queued, sent, delivered, undelivered, failed, opted_out, canceled, received.
No input schema was published for this tool.
ring_get_textOne text with every event (sent, delivered, undelivered with Twilio's error code).One text with every event (sent, delivered, undelivered with Twilio's error code).
No input schema was published for this tool.
ring_list_numbersNo description publishedThis tool published no description. Forge does not invent one.
ring_set_reply_hookNo description publishedThis tool published no description. Forge does not invent one.
ring_add_opt_outNo description publishedThis tool published no description. Forge does not invent one.
oakstackNo description publishedThis tool published no description. Forge does not invent one.
oakstack_usageNo description publishedThis tool published no description. Forge does not invent one.
oakstack_docsNo description publishedThis tool published no description. Forge does not invent one.
33 of 39 tools published a description.
Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.
Cron jobs with retries, webhook relay, HTML-to-PDF, and transactional email for your app.
Linked names open Forge’s index of every entry observed exposing that tool. Browse all indexed tools.
The crawl stopped at the depth-4 limit. Anything below that level was never resolved.
The crawl stopped at the 60-package limit. The rest of the tree was never resolved.
36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)
54 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.
+42 more not listed. The counts by reason above cover all of them.
Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.