- Brand
- Grigora
- Category
- AI
- Primary Subcategory
- AI Website Builders
Integration details
Description
Build and manage your Grigora websites from ChatGPT. Create a website from a brief, request changes to an AI-built site, draft and update blog posts, manage directory collections and media, review SEO settings and analytics, and maintain store products and inventory. Connect your Grigora account to work with the sites you can access. AI website creation and editing use Grigora AI credits; site limits and feature availability depend on your account and plan. Commerce tools require commerce access. Website builds and edits are saved for review; publishing is a separate action. Payment gateway credentials and newsletter campaign sending are not available through this connection.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- AI Website Builders
- Secondary Subcategories
- None listed
- Brand
- Grigora
- Access
- Account required
- First tracked
- 2026-11-04
- Tool count
- 78
- Market
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Your score is coming
ChatGPT now suggests Plugins on its own when they match a user's request.Your Plugin Discovery Score measures how often yours appears, and it will show here as soon as it’s ready.
What discovery looks like

Get alerts for Grigora
Get updates when Grigora’s Discoverability Score or category rank changes.
Competing in ChatGPT AI Website Builders
View Category78 tools agents can invoke
Connect the owner's custom hostname and return the DNS records they must configure. Requires project administrator access. Pass a unique idempotency_key for this connection attempt; reuse it for retries, and use a new one after cancel/re-add. Call get_custom_domain first. Do not replace an existing domain implicitly. A root domain defaults to www as the primary hostname. Set use_www=False only when the owner explicitly requests the root hostname as primary. Present the returned DNS records exactly. The backend checks DNS automatically and enables SSL; the owner never needs to click Verify or call a validate API.
Create a new page with metadata and optional SEO/custom HTML fields. Args: project_id: The project ID. name: Page display name. slug: URL slug (must be unique in the project). seo_meta_title: Optional SEO meta title. seo_meta_desc: Optional SEO meta description.
Link products to a collection, skipping any already linked. Every id is validated against the store first — an unknown id fails the whole call. Args: project_id: The project ID. collection_id: The collection ID. product_ids: JSON array of product ids to link, e.g. ["abc","def"].
Create a new CMS post category. Name is required; slug is auto-generated from name if omitted. Thumbnail URL is fetched and uploaded to project CDN. Args: project_id: The project ID. name: Category display name (required). slug: URL slug; auto-generated from name if empty. description: Optional category description. thumbnail: Thumbnail image URL; will be uploaded to project CDN. thumbnail_title: Thumbnail title (stored in thumbnail_meta). thumbnail_alt: Thumbnail alt text (stored in thumbnail_meta). thumbnail_caption: Thumbnail caption (stored in thumbnail_meta).
Create a new CMS blog post. Args: project_id: The project ID. title: Post title. slug: URL-safe slug for the post. content: Post body as HTML (optional if content_blocks is set). content_blocks: JSON string of the block tree (same shape as get_cms_post data.content_blocks). If set, stored as-is and `content` HTML is ignored. excerpt: Short excerpt/summary shown in post listings (also flips the post to using a custom excerpt). featured_image: URL of the featured image. featured_image_alt: Alt text for the featured image (counts toward the "images with alt texts" SEO check). keyword: Focus keyword for the post. categories: Comma-separated category names/slugs (e.g. "Technology,News"). Matching categories are fetched and sent as `category` objects. tags: Comma-separated tags (e.g. "beginner,seo"). Tags are free-form and are created on the fly. seo_meta_title: Custom SEO <title> for search engines (defaults to the post title). Keep under 70 characters. seo_meta_desc: Custom meta description for search engines. Keep under 160 characters — drives the "meta description" SEO check.
Create a product collection, e.g. "New arrivals" or "Under $50". Only title is required. Args: project_id: The project ID. title: Collection name. Required. description: Collection description. slug: URL slug. Derived from the title if empty. image_url: Cover image URL. product_ids: JSON array of product ids to link, in display order, e.g. ["abc","def"]. status: active or draft. Draft collections are not published to the storefront. sort: Manual ordering weight; lower sorts first. seo: JSON object {title, description, image_url, canonical_url, robots}.
Create a product in the store. Only title is required. Money is an integer in the currency's smallest unit: price_amount=2999 is $29.99 for USD. To sell variations, pass `options` here, then call generate_commerce_variants, or pass `variants` explicitly alongside `options`. Args: project_id: The project ID. title: Product name. Required. description: Long product description. slug: URL slug. Auto-generated from the title if empty. subtitle: Short line shown under the title. product_type: digital, download, course, template, membership, service, or physical. Physical forces one_time pricing. pricing_type: one_time, subscription, or pay_what_you_want. status: draft, active, or archived. Only active products show on the storefront. price_amount: Price in the smallest currency unit (e.g. cents). compare_at_amount: Struck-through reference price, same unit. currency: ISO currency code. Defaults to the store currency. image_url: Primary product image URL. image_alt: Alt text for the primary image. sku: SKU used when the product has no variants. checkout_url: External checkout link. Ignored for physical products. shipping_note: Shipping copy shown on the product page. requires_shipping: Whether checkout must collect a shipping address. weight_grams: Shipping weight in grams. inventory_enabled: Track stock for this product. inventory_quantity: Starting stock when there are no variants. highlights: JSON array of short selling-point strings (max 12). faqs: JSON array of {question, answer} objects (max 12). gallery: JSON array of {url, title, alt} image objects (max 12). delivery_details: JSON object {delivery_type, access_duration, access_note, refund_period, refund_policy}. social_proof: JSON object {rating, review_count, sales_count, sales_label}. seo: JSON object {title, description, image_url, canonical_url, robots}. discount: JSON object {code, percent_off, amount_off, expires_at, apply_mode, enabled, label}. options: JSON array of variation axes, max 3, e.g. [{"name":"Size","values":["S","M","L"]}]. variants: JSON array of variants. Each needs option_values naming every option, e.g. {"option_values":{"Size":"M"},"price_amount":2999,"sku":"TEE-M"}.
Add one variant to a product. option_values must name every one of the product's options with a value that option allows — call set_commerce_product_options first. Fails with 409 if the combination already exists. Args: project_id: The project ID. product_id: The product ID. option_values: JSON object mapping option name to value, e.g. {"Size":"M","Colour":"Black"}. sku: Variant SKU, unique within the product. price_amount: Variant price in the smallest currency unit. Leave -1 to inherit the product price. compare_at_amount: Struck-through price for this variant. Leave -1 to skip. currency: ISO currency code. Defaults to the product currency. image_url: Image shown when this variant is selected. weight_grams: Shipping weight in grams. Leave -1 to skip. requires_shipping: Whether this variant needs a shipping address. inventory_policy: deny blocks checkout at zero stock, continue allows overselling. Default deny. inventory_quantity: Starting stock for this variant. Leave -1 to skip.
Create a new directory collection. Args: project_id: The project ID. name: Collection display name. slug: URL-safe slug (lowercase, hyphens, underscores only). fields: JSON array of field objects. Each field needs: type (text|richtext|image|link|datetime|switch|option|reference|map|html|multiimage|video), label. Optional: id.
Create a new field in a directory collection. Args: project_id: The project ID. collection_id: The collection ID. field_type: One of: text, richtext, image, link, datetime, switch, option, reference, map, html, multiimage, video. label: Display label for the field. field_id: Custom field ID (auto-generated if omitted).
Create a new directory item. Args: project_id: The project ID. collection_id: The collection ID. name: Item name. slug: URL-safe slug. fields: JSON object mapping field_id to value.
Define a subscriber attribute before collecting it in forms. OAuth scope newsletter:write. Pass a stable idempotency_key for this intended action; reuse it on retries. Use get_newsletter_schema for document, filter and field definitions.
Create a URL redirect for a project. Requires a custom domain connected to the project (redirects are only served on custom domains, not on the default *.grigora.app subdomain); otherwise the API returns a 403 error. Args: project_id: The project ID. source_path: Path to redirect from, e.g. "/old-page" (must not be "/"). dest_type: "internal" (redirect to another path on the same site) or "external" (redirect to a full URL). Defaults to "internal". dest_path: Destination path when dest_type="internal", e.g. "/new-page". dest_url: Destination URL when dest_type="external" (must start with http:// or https://), e.g. "https://example.com". status_code: HTTP redirect code: 301, 302, 303, 304, 307, or 308. Defaults to 301.
Create a NEW Grigora website with AI from a description of what it should be. Grigora's AI website builder designs and writes the whole site from the prompt in the background (usually a few minutes). This uses the account's AI credits and counts toward its plan's website limit, so call it once per website the user actually asked for. The site is NOT published. Then: poll get_website_build_status(project_id) until status is "completed" (or "failed"); after that the new site's project_id works with every other tool (products, directory, blog, assets...), edit_website changes it with more prompts, and publish_project makes it live when the user wants. Give the user the returned editor_url to open the site in Grigora's editor. Args: prompt: What the website is for and what it should contain — business, audience, pages, tone, style. Specific is better. name: The website's name, e.g. "Pumpkin". Optional; derived from the prompt when empty. attachments: Optional links to files for the builder to use — logos, photos, brand guides, menus (PDF), price lists (CSV), audio, video. A list of up to 10 public URLs, e.g. ["https://example.com/logo.png"]. Grigora downloads them itself (up to 80 MB each), so only pass links — never file contents. Refer to them in the prompt by file name, e.g. "use logo.png in the header". For a LOCAL file (e.g. on the user's computer), first call get_attachment_upload_url, upload it with the returned curl command, then pass the returned url here. A refused attachment fails the call before anything is built or charged.
Delete assets (files and/or folders). Folder paths should end with /. Args: project_id: The project ID. files: JSON array of paths to delete (e.g. ["images/photo.jpg", "temp/"]).
Delete a CMS post category by ID. Args: project_id: The project ID. category_id: The category ID (from list response).
Delete a CMS blog post. Args: project_id: The project ID. post_id: The ID of the post to delete (UUID from list response, or full SK like cms-post-data-<uuid>).
Delete a collection. The products it grouped are not deleted. Args: project_id: The project ID. collection_id: The collection ID to delete.
Delete a product and its stock counters. Fails with a 409 while any order referencing the product is still open — fulfil, refund, or cancel those orders first. Args: project_id: The project ID. product_id: The product ID to delete.
Remove one variant from a product and drop its stock counter. The product's options are left in place, so the combination can be re-added later. Args: project_id: The project ID. product_id: The product ID. variant_id: The variant ID to remove.
Delete a directory collection and all its items. Args: project_id: The project ID. collection_id: The collection ID.
Delete a field from a directory collection. Args: project_id: The project ID. collection_id: The collection ID. field_id: The field ID to delete.
Delete a directory item. Args: project_id: The project ID. collection_id: The collection ID. item_id: The item ID to delete.
Delete a URL redirect by ID. Args: project_id: The project ID. redirect_id: The redirect ID (from list_url_redirects).
Change an existing AI-built Grigora website by describing the change. Grigora's AI builder applies the change to the site's design and content in the background (usually a few minutes), exactly like typing the prompt in the editor's AI chat. Uses the account's AI credits; nothing is published. Works only on AI-builder websites. Only ONE build runs per website at a time. If one is running this returns error "build_in_progress" with its build_id: wait for get_website_build_status to report "completed" (or "failed"), then send the next change. Combine related changes into one prompt when you can. If no build starts, "reply" holds the AI's question for the user. Args: project_id: The website's project ID. prompt: The change to make, e.g. "Make the hero warmer and add a testimonials section". attachments: Optional links to files for the builder to use — logos, photos, brand guides, menus (PDF), price lists (CSV), audio, video. A list of up to 10 public URLs, e.g. ["https://example.com/logo.png"]. Grigora downloads them itself (up to 80 MB each), so only pass links — never file contents. Refer to them in the prompt by file name, e.g. "use logo.png in the header". For a LOCAL file (e.g. on the user's computer), first call get_attachment_upload_url, upload it with the returned curl command, then pass the returned url here. A refused attachment fails the call before anything is built or charged.
Generate every combination of a product's current options as variants (max 100). Existing variants are matched by option combination and keep their id, SKU, price, and stock; missing combinations are added at the product's price. Args: project_id: The project ID. product_id: The product ID.
Get Umami analytics for a project (pageviews, visitors, top pages, etc.). Requires Umami connected to the project. Args: project_id: The project ID. start_date: Start date YYYY-MM-DD (optional; default last 30 days). end_date: End date YYYY-MM-DD (optional; default today). timezone: Timezone (default UTC). limit: Max number of top pages to return. unit: Time bucketing: minute, hour, day, month, year.
Get a single asset by path (URL and metadata). Args: project_id: The project ID. path: Asset path relative to project (e.g. images/photo.jpg).
Get signed upload URLs for one or more files. Upload the file with PUT to the returned upload_url; then use cdn_url to access the file. Args: project_id: The project ID. files: JSON array of filenames (e.g. ["images/photo.jpg", "doc.pdf"]). folder: Optional folder prefix for all files.
Get a one-time upload link for a LOCAL file to attach to create_website / edit_website. MCP cannot carry files, so a local file goes straight from disk to Grigora's storage with the returned `curl` command (replace <LOCAL_FILE_PATH> with the file's path and run it in a shell). The file's contents never pass through the conversation. Then put the returned `url` in the attachments list of create_website or edit_website. The link expires in 15 minutes; one link per file. Allowed: images (PNG, JPG, WebP, GIF, AVIF), PDF, CSV (up to 10 MB), and audio/video (up to 80 MB). For a file that is already online, skip this and pass its public URL directly. Args: file_name: The file's name, e.g. "brand-guide.pdf" (refer to it by this name in the prompt). mime_type: e.g. "image/png", "application/pdf", "text/csv", "video/mp4". size_bytes: The file's exact size in bytes (e.g. from `wc -c < FILE`).
Get a single CMS blog post's content as HTML and as blocks. Returns success, data.id, data.content_html (HTML string), and data.content_blocks (block tree or array; null if not parseable). Args: project_id: The project ID. post_id: The ID of the post (UUID from list response, or full SK like cms-post-data-<uuid>).
Get one collection, optionally with the full product objects it links. Args: project_id: The project ID. collection_id: The collection ID. Required unless slug is given. slug: The collection slug. Used when collection_id is empty. include_products: Also return the linked products, in link order.
Get one product with its options, variants, live stock, and public URL. Args: project_id: The project ID. product_id: The product ID. Required unless slug is given. slug: The product slug. Used when product_id is empty.
Get store settings: name, default currency, emails, appearance, SEO, shipping, tax, invoicing. Payment gateway credentials are never returned — connection status only. Args: project_id: The project ID.
Get custom code (header, body, footer) for a project. Args: project_id: The project ID.
Get the connected/pending custom domain, exact DNS records and automatic check status. Read-only. DNS verification and SSL activation happen automatically in the backend. This tool does not validate or activate a domain and is safe to call for progress.
Get a single directory item by ID. Args: project_id: The project ID. collection_id: The collection ID. item_id: The item ID.
Discover newsletter operations, merge tags, signup fields and email document blocks. OAuth scope newsletter:read. Use get_newsletter_schema for document, filter and field definitions.
Get a single page by ID (metadata only; no content). Args: project_id: The project ID. page_id: The page ID.
Get details of a specific project/site. Args: project_id: The project ID.
Read Grigora's existing SEO settings before making SEO/schema changes. Returns data.settings, data.editable_fields (supported keys, types, enums), can_update, requires_version and ai_mutation_version. Covers person or organization identity, address, logo, phones, hours, sitemap, robots.txt and IndexNow. Site-level schema is generated by Grigora from these settings.
Status of a website's AI build: running, completed, failed (or none). Use after create_website or edit_website. A build usually takes a few minutes; wait a little between checks rather than polling rapidly. When finished, "reply" is the AI builder's summary of what it did. Args: project_id: The website's project ID (from create_website or list_projects). build_id: Optional; the build_id create_website returned. Defaults to the latest build.
List assets (files and folders) in the project CDN. Args: project_id: The project ID. folder: Optional folder path to list (e.g. images/ or docs/).
List all CMS post categories for a project. Args: project_id: The project ID.
List all CMS blog posts for a project. Args: project_id: The project ID.
List product collections (storefront groupings) with their linked product ids. Args: project_id: The project ID. status: Filter by status: active or draft. Empty for all.
List products in a project's store. Args: project_id: The project ID. status: Filter by status: draft, active, or archived. Empty for all. product_type: Filter by type: digital, download, course, template, membership, service, or physical. Empty for all. collection_id: Only return products linked to this collection. Empty for all. search: Case-insensitive match against title, slug, and SKU. full: Return complete product objects instead of summaries. limit: Max products to return (default 100, max 500). offset: Number of products to skip.
List a product's options and variants with live stock. Products without options report a single synthetic variant with id "default". Args: project_id: The project ID. product_id: The product ID.
List all directory collections for a project. Args: project_id: The project ID.
List all fields for a directory collection. Args: project_id: The project ID. collection_id: The collection ID.
Grigora ChatGPT Plugin FAQ
How the directory, categories and Discoverability Score work.
Read the methodologyHow do I improve Grigora's ChatGPT Plugin discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Grigora alternatives on ChatGPT?
As of 2026-11-04, Grigora competes with 3dCMS, AgentBuild, Allo Christian, AVSBL Website Builder, B12 Website Generator, Beste, CR Servers AI Connect, Croisa and 34 more in ChatGPT AI Website Builders, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.


