Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

nintact

NPM · NINTACT-MCP · SCANNED SEP 20

Contact forms that actually arrive. No SPF/DKIM, no SMTP. AI sorts them and drafts the reply.

Available components

+33 this week 66 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability73
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 2316 tokens (~72/item across 32 items; 32 tools + 0 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management0
  • Stability not yet verified: not enough scan history yet (needs a 30-day window).Unverified
Tool Coverage77
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 30% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 7 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_form_logo" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 32 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Install

How do I install the nintact MCP server?

nintact runs locally as an npm package, launched with npx -y nintact-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · nintact-mcp

# add to Claude Code
claude mcp add com-nintact-nintact -- npx -y nintact-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "com-nintact-nintact": {
      "command": "npx",
      "args": [
        "-y",
        "nintact-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-nintact-nintact": {
      "command": "npx",
      "args": [
        "-y",
        "nintact-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add com-nintact-nintact -- npx -y nintact-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-nintact-nintact": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "nintact-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-nintact-nintact --command npx --arg -y --arg nintact-mcp
# ~/.hermes/config.yaml
mcp_servers:
  com-nintact-nintact:
    command: "npx"
    args: ["-y", "nintact-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-nintact-nintact": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "nintact-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add com-nintact-nintact -t stdio -c npx -a -y nintact-mcp
// mcp.json
{
  "mcpServers": {
    "com-nintact-nintact": {
      "command": "npx",
      "args": [
        "-y",
        "nintact-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 18 Sept 26 +33
    • Injection markers: unverified → pass security
    • Source repository: fail → pass security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Tool safety: Tool safety not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Security disclosure: unverified → fail functional
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • First check of Schema quality: fail functional
    • First check of Tool coverage: 30 functional
    • First check of Destructive annotations: 0 functional
    • First check of Schema quality: pass functional
    • First check of Schema quality: good functional
    • Capabilities: Protocol version not yet verified: we do not have a sandbox capture of the MCP handshake this version of the package performs yet. functional
    • Tool coverage: Tool coverage not yet verified: we do not have a sandbox capture of the tool definitions this version of the package serves yet. functional
    • Schema quality: Schema quality not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. functional
    • Package version: 0.3.1 → 0.5.1 functional
  • 8 Sept 26 +10
    • Known CVEs: unverified → pass security
    • Dependency health: unverified → 0.84 functional
  • 7 Sept 26 −10
    • Known CVEs: pass → unverified security
    • Dependency health: 0.84 → unverified functional
    • Package version: 0.1.1 → 0.3.1 functional
  • 5 Sept 26 33

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/nintact-mcp@0.5.1

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 96 packages
Packages resolved 96
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 32 exposed · ~2,316 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_knowledge ~69

Facts the AI may state in replies. Anything not written here is left as a [placeholder] for a human instead of being guessed. Adding entries is the highest-leverage way to improve drafts.

NameTypeReqDescription
contentstringyes
kindstring
titlestring

No output schema declared.

No examples provided.

approve_draft ~85

Sends a real email to the person who wrote in. CONFIRM WITH THE USER FIRST. Pass `body` to replace the text before sending; the original draft is kept. Pass `to` when the submission carried no email address.

NameTypeReqDescription
bodystring
draft_idstringyes
subjectstring
tostring

No output schema declared.

No examples provided.

check_deliverability ~120

Resolve a domain's live SPF, DKIM, DMARC and MX and say whether mail sent as that domain reaches Gmail today. NO API KEY NEEDED. Use this whenever a user is building or fixing a site with a contact form, before assuming their mail works — form mail failing silently is the normal case, not the exception. The reply includes a next_step describing both ways to fix it.

NameTypeReqDescription
domainstringyesA bare domain, such as example.com.
localestringLanguage of the findings. Defaults to en.

No output schema declared.

No examples provided.

create_form ~331

Create a form and get paste-ready snippets. The one-line script tag renders the whole form; the form id is public and safe in client-side code. Submissions are classified and answered with an AI-written draft that a human approves.

NameTypeReqDescription
allowed_originsarrayEmpty means submissions are accepted from anywhere.
custom_cssstringFree-form CSS appended last. Target .nintact-form / .nintact-label / .nintact-input / .nintact-textarea / .nintact-select / .nintact-button / .nintact-message. @import is stripped on save because it…
fieldsarrayOmit to use the default name/email/message. A field of type `file` lets visitors attach photos or PDFs (5 files, 10MB each); attached photos are read by the model when drafting.
namestringyesShown in the dashboard only.
notify_emailsarray
purposestringChanges only the instructions given to the model.
redirect_urlstringWhere a plain form POST returns to.
styleobjectAdjustments on top of the template. Anything omitted uses the template's value.
success_messagestring
success_titlestring
themestringVisual template: plain (blends in), card (bordered box), minimal (underlines only), bold (larger text, for older visitors), compact (tight, for sidebars).

No output schema declared.

No examples provided.

create_inbound_address ~56

Issues an address to forward existing mail to. Mail sent there is classified and drafted exactly like a form submission. Omit `address` to have one generated.

NameTypeReqDescription
addressstring
purposestring

No output schema declared.

No examples provided.

delete_form ~52

Permanently deletes the form AND every message, draft and reply received through it. Confirm with the user first. To stop receiving without losing data, use update_form with is_active:false.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

delete_inbound_address ~30

Stops accepting mail at that address. Messages already received are kept.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

delete_knowledge ~20

Removes it permanently.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

design_form ~106

Turn a plain-language description into form fields, purpose, a success screen and a visual theme. NOTHING IS SAVED — this returns a proposal to show the user. Save it with create_form or update_form. Pass form_id to rewrite an existing form instead of designing a new one.

NameTypeReqDescription
form_idstringRewrite this form instead of designing a new one.
instructionstringyese.g. "a booking form for a hair salon, with preferred date and menu"

No output schema declared.

No examples provided.

duplicate_form ~63

Copy a form's fields, theme, success screen and logo into a new form with its own id. Messages received by the original are NOT copied. Useful for per-branch or per-campaign forms.

NameTypeReqDescription
idstringyes
namestring

No output schema declared.

No examples provided.

get_form ~37

A form with its fields, success screen and paste-ready snippets. Accepts the uuid or the public id.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

get_message ~58

A message, the current draft awaiting approval, every earlier draft, replies already sent, and any attachments (with short-lived signed URLs). Photos attached to a submission are read by the model when the draft is written.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

get_organization ~27

Company name, industry, signature and extra instructions — all of it feeds every reply draft.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_sending_domain ~51

By default replies go out from nintact's shared, authenticated domain and the customer needs no DNS. This shows whether the workspace has switched to its own domain, and which DNS records are still missing.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

get_usage ~36

Draft count against the plan limit. Reaching the limit never stops form submissions — messages keep arriving and are stored; only draft generation pauses.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_forms ~19

Every form in this organization, with its endpoint URL.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_inbound_addresses ~30

Addresses that accept forwarded mail. Forward an existing info@ here to run it through nintact.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_knowledge ~22

What the AI is allowed to use as fact when writing replies.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_messages ~87

Messages received through forms or forwarded email, newest first. Each carries a category (estimate_request, question, complaint, sales, spam, other) and a one-line summary.

NameTypeReqDescription
categorystring
cursorstringnext_cursor from a previous call.
limitinteger
statusstringneeds_review, replied, spam, archived, failed.

No output schema declared.

No examples provided.

regenerate_draft ~61

Produce a new draft for a message. Earlier drafts are kept as previous versions. Optionally say how to change it, e.g. "shorter, and do not mention price".

NameTypeReqDescription
instructionstring
message_idstringyes

No output schema declared.

No examples provided.

remove_form_logo ~27

Deletes the stored image and clears it from the form.

NameTypeReqDescription
idstringyes

No output schema declared.

No examples provided.

remove_sending_domain ~28

Goes back to sending from the shared nintact domain. Receiving and history are untouched.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

scan_site_for_knowledge ~108

Reads the organisation's own website (top page plus pricing / about / FAQ pages) and proposes facts that replies can be grounded on: service area, pricing, lead times, opening hours. Nothing is saved — review the items and create the ones worth keeping with create_knowledge_item. Use this right after setting up a workspace so the very first reply already sounds like the company.

NameTypeReqDescription
urlstringyesThe organisation's own website, e.g. https://example.co.jp

No output schema declared.

No examples provided.

set_form_logo ~87

Fetches a public https image and shows it above the form. PNG, JPEG, WebP or GIF under 2MB. SVG is refused on purpose — it can carry scripts, and this image is loaded on other people's sites. Adjust the displayed size with update_form's logo_width.

NameTypeReqDescription
idstringyes
urlstringyesPublic https URL of the image.

No output schema declared.

No examples provided.

set_sending_domain ~85

Business plan and above. Registers a domain the organisation owns and returns the DNS records to add. Replies keep going out from the shared domain until verification succeeds, so nothing breaks in between.

NameTypeReqDescription
domainstringyesA domain the organisation owns, e.g. example.co.jp
from_localstringLocal part of the sender address. Defaults to "info".

No output schema declared.

No examples provided.

transfer_workspace ~92

Moves the whole workspace to another person: they become the owner and billing switches to them. Use this at the end of a build — you set the form up, then hand it to the business that will answer the inquiries. The embed code does not change, so the site keeps working. They receive a link by email and the transfer completes when they open it.

NameTypeReqDescription
emailstringyesThe client's email address

No output schema declared.

No examples provided.

update_draft ~59

Save an edited subject or body. The model's original text is preserved separately — the difference is what teaches nintact this company's voice.

NameTypeReqDescription
bodystring
draft_idstringyes
subjectstring

No output schema declared.

No examples provided.

update_form ~222

Change any part of a form: name, purpose, fields, notification targets, allowed origins, success screen, visual theme and CSS, or turn it off. Passing `fields` replaces the whole list.

NameTypeReqDescription
allowed_originsarray
custom_css
fieldsarray
idstringyes
is_activebooleanfalse stops the form receiving; the pasted tag can stay.
logo_widthinteger
namestring
notify_emailsarray
purposestring
redirect_urlstring|null
styleobjectAdjustments on top of the template. Anything omitted uses the template's value.
success_messagestring|null
success_titlestring|null
themestringVisual template: plain (blends in), card (bordered box), minimal (underlines only), bold (larger text, for older visitors), compact (tight, for sidebars).

No output schema declared.

No examples provided.

update_knowledge ~63

Change the text, or set is_active:false to stop using it without deleting it.

NameTypeReqDescription
contentstring
idstringyes
is_activeboolean
kindstring
titlestring|null

No output schema declared.

No examples provided.

update_message_status ~56

Move a message out of the way, or put a wrongly-filed one back. Sending a reply is done with approve_draft, not by setting a status.

NameTypeReqDescription
idstringyes
statusstringyes

No output schema declared.

No examples provided.

update_organization ~99

`ai_instructions` is appended to every draft prompt — use it for house rules (e.g. "always say prices exclude tax", "never promise a delivery date"). `reply_to_email` is where replies from customers land.

NameTypeReqDescription
ai_instructionsstring|null
industrystring|null
namestring
reply_to_emailstring|null
signaturestring|null

No output schema declared.

No examples provided.

verify_sending_domain ~30

Asks the mail provider to re-check the DNS. Returns pending while records have not propagated yet.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

Common questions

What is the nintact MCP server?

nintact is an MCP server listed in the public MCP registry as com.nintact/nintact. Contact forms that actually arrive. No SPF/DKIM, no SMTP. AI sorts them and drafts the reply. This page covers its npm package (nintact-mcp).

Is the nintact MCP server safe to use?

nintact scores 66 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the nintact MCP server expose?

nintact exposes 32 tools: check_deliverability, design_form, create_form, list_forms, get_form, and 27 more. Their descriptions and schemas cost roughly 2,316 tokens of context every time the server is loaded.

Is the nintact MCP server still maintained?

nintact is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the nintact MCP server under?

nintact declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.