MCP App Store
by KeenEthics
Neartail icon

Neartail

By Mailrecipe LLC

Get New App Alerts

Overview

Your menu changes every week. You need an order form you can update in minutes, not an ecommerce site you have to rebuild. What if creating an order form was as easy as editing Google Forms? Neartail does that. Describe your menu, set prices, and get an order form that calculates totals automatically. Your customers don't have to browse an ecommerce site, add to cart, and get lost along the way. They go through the form, review their order, and submit. Simple. Orders sync to Google Sheets. Share with your kitchen to prep. Share with delivery to route. Next week, update your menu and go again. Describe what you need: "meal prep order form with 5 meals," "weekly lunch menu for office canteen," or "bakery pre-order with pickup times." Neartail creates it with pricing and payment built in. Meal prep companies, office canteens, bakeries, and caterers use Neartail because menus change weekly and Google Sheets is how their team already works. Describe. Share. Take orders.

Tools

create_form

ChatGPT
Create and PUBLISH a new live form in one step. This is the ONLY tool for creating a form. Use it in every case: 1. The user uploaded, attached, or pasted a file, document, image, screenshot, or PDF: convert that content into the "document" parameter. 2. The user described the form in words (e.g., "create a feedback form", "make a registration form") or you worked out the fields together in conversation: write the complete form yourself as the "document" parameter, with a title, sections, and every field with its label, input type, and choices, then call this tool. Do NOT ask the user to review an outline first unless they ask for one. If they do, agree the fields in chat, then call this tool once. Use "html" format when the content has layout, formatting, structure, or comes from HTML, SCREENSHOT, IMAGE, or PDF. Use "markdown" format when the content is plain text without formatting. This tool returns the complete published form with all sections and fields, a preview URL, and an edit URL. IMPORTANT: This tool already renders the preview widget for the newly created live form, so do NOT call preview in the same turn after a successful create_form. That would render the preview UI twice. Call create_form at most once per turn. To change the form afterwards, use update_form with the returned publishId. IMPORTANT: Do NOT include sensitive personal data in the document content. This includes health information, biometric data, social security numbers, payment card industry information (credit/debit card numbers, CVV, expiration dates), bank account details, login credentials, passwords, or authentication secrets. Remove or redact any such sensitive data before passing the document. Output MUST match the "format" parameter. Never mix formats. FIELD DETECTION (when the document comes from a user-supplied source; when you are writing the document yourself from a description, include every field the user asked for): - Create a form field ONLY where the source document has an actual place to write, mark, check, or sign: a blank line (____), an empty box, a checkbox, or a signature line. The number of fields must match the number of real inputs in the source — do not add one. - Text that has NO input in the source (paragraphs, recitals, numbered clauses, instructions) is descriptive content. Keep it as headings/<p> text in the form, NOT as a field. Do not attach an input box to a clause that the source only asks the reader to read. - Reproduce all wording VERBATIM. Never paraphrase, summarize, shorten, or rewrite the source text — especially legal, consent, agreement, or policy text. - Preserve the source's own section order and grouping. Do not split one block into many sections or invent sections. This is an order form app. When you write the document from a description (no source file), include at least one product with a price, and keep the initial form small (at most 20 products across all sections, picking the most common items for that business). Use the user's currency and locale for prices. The HTML or markdown structure MUST define the product type for each item. Supported product types: - quantity: items ordered by count (e.g., "Qty: 1, 2, 3") - weight: items sold by weight (e.g., "250g, 500g, 1kg") - variant: items with a single level of options (e.g., size: S, M, L or color: Red, Blue) - nested variant: items with multiple levels of options (e.g., size > color: S-Red, S-Blue, M-Red) - modifier / sub-product: add-on items or customizations attached to a main product (e.g., toppings, extras, sides) format="html" example output: <!DOCTYPE html> <html><head><base target="_top"></head><body> <h1>Menu Title</h1> <h3>Category</h3> <div data-product-type="quantity"><p>Product Name *</p><p>Description</p><p>Price: 100</p></div> <div data-product-type="weight"><p>Product Name</p><p>250g - 50 | 500g - 90 | 1kg - 170</p></div> <div data-product-type="variant"><p>Product Name</p><p>Variant: Small - 80 | Medium - 100 | Large - 120</p></div> <div data-product-type="nested-variant"><p>Product Name</p><p>Size: Small | Medium</p><p>Co…

create_new_form_using_document

ChatGPT
Create a new form from a document (HTML or markdown). Use "html" format when you have layout and formatting from HTML, SCREENSHOT, IMAGE, PDF or any uploaded file. Use "markdown" format when you don't have layout or formatting information, brainstormed in ChatGPT. This tool returns the complete form with all sections and fields. Output MUST match the "format" parameter. Never mix formats. format="html" example output: <!DOCTYPE html> <html><head><base target="_top"></head><body> <h1>Title</h1> <h3>Section</h3> <div><p>Choices</p> <p> <input type="radio"/> <input type="text"/></p> <p> <input type="radio"/> <input type="text"/></p> </div> <div><p>Field </p><p><input type="text"></p></div> <div><p>Notes</p><textarea></textarea></div> </body></html> format="markdown" example output: Title Section Choices ( ) ___________ ( ) ___________ Field (text) : ___________ Notes (textarea) : ___________ * after label = required field.

create_new_form_using_form_name

ChatGPT
Create a new form outline. This tool returns a widget UI showing the form outline with sections and fields that can be reviewed and confirmed.

get_form

ChatGPT
Fetch the full structure of a LIVE, already-published form by publishId — including title, sections, fields, field types, choices, and required flags. Use this to understand what a form contains BEFORE editing it with update_form, or to answer questions about the form's shape. If you do not know the publishId, use list_forms first to find it by title. Does not return submissions — use list_submissions for that.

list_forms

ChatGPT
Search and list the user's published forms with optional filters for title, date range, submission count, ordering, and pagination. Use this tool to find a form (and its publishId) by name or criteria before invoking any other tool that requires a publishId (such as update_form). Submissions are not a form type — this tool does not search submissions. Returns the matching forms as structured data (id, publishId, title, url, submission_count) for the model to present.

preview

ChatGPT
Show the preview UI for a single form when the user wants to see, show, open, view, or preview it (e.g., "show me my feedback form", "show me the preview"). Pass publishId for a LIVE, already-published form (use list_forms first if you do not know it). Pass outlineId for a DRAFT outline that has not been published yet — in that case this tool publishes the outline automatically and then shows the preview. IMPORTANT: To preview a freshly created/updated draft outline, call THIS tool with the outlineId; do NOT also call publish_form, because both render the preview widget and that produces a duplicate preview. Call this at most once per turn. To list or search across multiple forms, use list_forms instead.

progress

ChatGPT
Opens the form setup progress UI for a published form and returns checklist status plus next actions. ALWAYS use this tool when the user's message is about ANY of these topics — regardless of how they phrase it: TOPICS THIS TOOL OWNS: - Email notifications (submission alerts, owner/admin notify, respondent confirmation, completion emails, signature workflow emails) - Signature and workflow setup - Payment enablement - HIPAA compliance configuration - Google Drive sync for signed documents - Respondent or customer mapping - Business name setup - Score setup - Submit message or form layout customization - General "what's next" or "what's left to configure" for a form If the user's intent touches any of the above topics — whether they are asking how to, asking if it's possible, reporting it's not working, or just mentioning the topic — use this tool first before responding.

publish_form

ChatGPT
Publish a confirmed DRAFT form outline as a real, live form that respondents can fill in. Use this AFTER the user has reviewed and confirmed a draft outline created via create_new_form_using_form_name or update_outline. Once published, the outline becomes a real form with a publishId, preview URL, and edit URL. A draft outline that is not published is not accessible to respondents. After this call returns, the form is live; use update_form to make further edits.

surgical_edit_form

ChatGPT
Make ONE specific change to an EXISTING live form from a natural-language instruction, leaving everything else untouched. USE surgical_edit_form WHEN: The user names a single field or wording change: make a field required, rename one question or section, change one field's type or options, remove one question, add one question. Rewriting the whole form for that change would be wasteful. DO NOT USE surgical_edit_form WHEN: The request touches more than one or two questions, changes what the form is for, who fills it, its topic or scope, or supplies new source content. Use update_form for those (it is the default). HOW IT WORKS: Pass the user's instruction as typed; do not rephrase or interpret it. The change is applied to the real, live form that respondents see. Changes the form's CONTENT only. Settings such as email notifications, signature workflow, payments, Google Drive sync, HIPAA, or the business name are handled by progress. RESPONSES: The result includes activity with the form's response counts. When activity.isActivelyCollectingResponses is true (responses in the last 3 calendar months), removing or replacing a question also removes its existing answers. Tell the user how many recent responses the form has (activity.recentResponses) and get confirmation before such an edit. Adding, renaming, or reordering questions is safe and needs no confirmation. If publishId is unknown, use list_forms. Call surgical_edit_form at most once per turn. Do not call preview after a successful surgical_edit_form; the result already renders the preview widget.

update_form

ChatGPT
Edit an existing form outline like adding, changing or removing sections and fields. This tool returns a widget UI showing the updated form outline with sections and fields that can be reviewed and confirmed. IMPORTANT: Before calling this tool, check the status field. If status is "published" and you have previewUrl and editUrl in the arguments, DO NOT call this tool. Instead, share those URLs directly with the user in your response. Only call this tool when you need to modify the form structure (sections/fields) and the form status is "not published".

update_outline

ChatGPT
Edit a DRAFT form OUTLINE (one that has NOT been published yet) by providing its outlineId and the requested changes (instruction). Use this to add, change, or remove sections and fields on a draft outline. IMPORTANT: This does NOT edit a live, already-published form — for that, use update_form with the form's publishId. After updating the draft outline, the user still needs to publish it (via publish_form or the Publish button in the UI) to make it live. Returns a widget UI showing the updated draft outline that can be reviewed and confirmed.

Capabilities

WritesInteractive

Example Prompts

Click any prompt to copy it.

Similar Apps