{"name":"com.nintact/nintact","slug":"nintact","title":"nintact","description":"Contact forms that actually arrive. No SPF/DKIM, no SMTP. AI sorts them and drafts the reply.","url":"https://mcp.market/server/nintact","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"email","tags":["email"],"presence":{"score":30,"stars":0,"forks":0,"downloads_week":223,"last_push_at":"2026-09-18T12:33:33.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/homareyoshizaki/nintact-mcp","website":"https://nintact.com","version":"0.5.2","remotes":[],"packages":[{"registryType":"npm","identifier":"nintact-mcp","version":"0.5.1","transport":{"type":"stdio"},"environmentVariables":[{"description":"API key. Run `npx nintact-mcp login` to create one without pasting it, or issue one at https://nintact.com/dashboard/settings/connect","format":"string","isSecret":true,"name":"NINTACT_API_KEY"}]}],"tools":[{"name":"add_knowledge","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"approve_draft","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"check_deliverability","description":"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 \\u2014 form mail failing silently is the normal case, not the exception. The reply includes a next_step describing both ways to fix it.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_form","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_inbound_address","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_form","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_inbound_address","description":"Stops accepting mail at that address. Messages already received are kept.","write_action":true,"price_micros":0,"input_schema":null},{"name":"delete_knowledge","description":"Removes it permanently.","write_action":true,"price_micros":0,"input_schema":null},{"name":"design_form","description":"Turn a plain-language description into form fields, purpose, a success screen and a visual theme. NOTHING IS SAVED \\u2014 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"duplicate_form","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_form","description":"A form with its fields, success screen and paste-ready snippets. Accepts the uuid or the public id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_message","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_organization","description":"Company name, industry, signature and extra instructions \\u2014 all of it feeds every reply draft.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_sending_domain","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_usage","description":"Draft count against the plan limit. Reaching the limit never stops form submissions \\u2014 messages keep arriving and are stored; only draft generation pauses.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_forms","description":"Every form in this organization, with its endpoint URL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_inbound_addresses","description":"Addresses that accept forwarded mail. Forward an existing info@ here to run it through nintact.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_knowledge","description":"What the AI is allowed to use as fact when writing replies.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_messages","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"regenerate_draft","description":"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\".","write_action":false,"price_micros":0,"input_schema":null},{"name":"remove_form_logo","description":"Deletes the stored image and clears it from the form.","write_action":true,"price_micros":0,"input_schema":null},{"name":"remove_sending_domain","description":"Goes back to sending from the shared nintact domain. Receiving and history are untouched.","write_action":true,"price_micros":0,"input_schema":null},{"name":"scan_site_for_knowledge","description":"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 \\u2014 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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_form_logo","description":"Fetches a public https image and shows it above the form. PNG, JPEG, WebP or GIF under 2MB. SVG is refused on purpose \\u2014 it can carry scripts, and this image is loaded on other people's sites. Adjust the displayed size with update_form's logo_width.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_sending_domain","description":"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.","write_action":false,"price_micros":0,"input_schema":null},{"name":"transfer_workspace","description":"Moves the whole workspace to another person: they become the owner and billing switches to them. Use this at the end of a build \\u2014 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_draft","description":"Save an edited subject or body. The model's original text is preserved separately \\u2014 the difference is what teaches nintact this company's voice.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_form","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_knowledge","description":"Change the text, or set is_active:false to stop using it without deleting it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_message_status","description":"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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_organization","description":"`ai_instructions` is appended to every draft prompt \\u2014 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.","write_action":true,"price_micros":0,"input_schema":null},{"name":"verify_sending_domain","description":"Asks the mail provider to re-check the DNS. Returns pending while records have not propagated yet.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-19T19:32:30.180Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:32:30.228Z","components":{"code":{"score":25,"max":25,"notes":["2 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"nintact-mcp","version":"0.5.1","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-09-15T06:07:59.511Z","repositoryUrl":"git+https://github.com/homareyoshizaki/nintact-mcp.git","weeklyDownloads":223}],"repo":{"found":true,"owner":"homareyoshizaki","repo":"nintact-mcp","archived":false,"pushedAt":"2026-09-18T12:33:33Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/7223327?v=4","ownerCreatedAt":"2014-04-08T09:31:31Z","license":"MIT"},"icon":{"url":"https://nintact.com/icon.svg?icon.1jzsgnm5aihzn.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":223,"license":"MIT","lastPushAt":"2026-09-18T12:33:33.000Z","score":30}}}},"grade_history":[],"reviews":[]}