← Files AI2SQLARCHIVED FILE

.codex-plugin/plugin.json

6.8 KB · Nov 3, 2026 · 19:05 UTC

↓ Download file

{
  "author": {
    "name": "Crossregions"
  },
  "description": "AI2SQL turns plain-English requests into correct SQL for PostgreSQL, MySQL, SQL Server, SQLite, Oracle, Snowflake and BigQuery, and helps with the SQL you already have: fix a failing statement, optimize a slow one, explain an inherited query, or convert between dialects.\n\nConnect your databases at ai2sql.io and ChatGPT can read their schema and run read-only queries against them. Writes and DDL are blocked, so nothing in your database can be changed from a chat.\n\nSign in with your existing AI2SQL account to use it in ChatGPT.\n\nNo database yet? Every account can try the shared demo_shop sample store and see real rows.",
  "interface": {
    "capabilities": [
      "Read",
      "Write"
    ],
    "category": "Developer Tools",
    "defaultPrompt": [
      "Write a PostgreSQL query for monthly revenue by product category",
      "Fix this SQL: SELECT categry, SUM(total) FROM orders GROUP BY category",
      "Explain what this query does"
    ],
    "developerName": "Crossregions",
    "displayName": "AI2SQL",
    "longDescription": "AI2SQL turns plain-English requests into correct SQL for PostgreSQL, MySQL, SQL Server, SQLite, Oracle, Snowflake and BigQuery, and helps with the SQL you already have: fix a failing statement, optimize a slow one, explain an inherited query, or convert between dialects.\n\nConnect your databases at ai2sql.io and ChatGPT can read their schema and run read-only queries against them. Writes and DDL are blocked, so nothing in your database can be changed from a chat.\n\nSign in with your existing AI2SQL account to use it in ChatGPT.\n\nNo database yet? Every account can try the shared demo_shop sample store and see real rows.",
    "privacyPolicyURL": "https://ai2sql.io/privacy-policy",
    "shortDescription": "Write, fix and run SQL",
    "supportURL": "https://ai2sql.io/contact",
    "termsOfServiceURL": "https://ai2sql.io/termsandconditions",
    "websiteURL": "https://ai2sql.io",
    "logo": "./assets/logo.png",
    "logoDark": "./assets/logo-dark.png",
    "composerIcon": "./assets/composer.png"
  },
  "name": "ai2sql-sql",
  "version": "1.0.2",
  "mcpServers": "./.mcp.json",
  "homepage": "https://ai2sql.io",
  "keywords": [
    "sql",
    "postgresql",
    "mysql",
    "sql server",
    "database",
    "query",
    "text to sql"
  ],
  "extensions": {
    "com.openai": {
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Generate SQL from a plain-English request in a chosen dialect.",
              "prompt": "Use AI2SQL to write a PostgreSQL query that returns the top 5 customers by total order value in the last 30 days. Tables: customers(id, name) and orders(id, customer_id, total, created_at).",
              "tools_triggered": "generate_sql",
              "expected_behavior": "Returns a PostgreSQL SELECT that joins customers and orders, filters the last 30 days, sums total per customer, orders by that sum descending and limits to 5. Nothing is executed."
            },
            {
              "description": "Repair a failing statement.",
              "prompt": "Use AI2SQL to fix this SQL: SELECT categry, SUM(total) FROM orders GROUP BY category HAVING SUM(total) > 100",
              "tools_triggered": "fix_sql",
              "expected_behavior": "Returns corrected SQL that selects category (typo fixed) with SUM(total), GROUP BY category and HAVING SUM(total) > 100."
            },
            {
              "description": "Convert SQL between dialects.",
              "prompt": "Use AI2SQL to convert this MySQL query to PostgreSQL: SELECT * FROM orders WHERE created_at > DATE_SUB(NOW(), INTERVAL 7 DAY)",
              "tools_triggered": "convert_sql",
              "expected_behavior": "Returns the PostgreSQL version using NOW() - INTERVAL '7 days' (or equivalent) in place of DATE_SUB."
            },
            {
              "description": "Explain an unfamiliar query in plain English.",
              "prompt": "Use AI2SQL to explain what this query does: SELECT customer_id, total, RANK() OVER (PARTITION BY customer_id ORDER BY total DESC) AS r FROM orders",
              "tools_triggered": "explain_sql",
              "expected_behavior": "A step-by-step plain-English explanation: for each customer, orders are ranked by total from highest to lowest; no rewritten SQL is required."
            },
            {
              "description": "List the databases in the account and read a schema.",
              "prompt": "Which databases do I have in AI2SQL, and what tables and columns does the Demo Store have?",
              "tools_triggered": "list_connections, describe_schema",
              "expected_behavior": "list_connections returns the shared demo_shop sample (runnable on every plan) and the review account's Demo Store sample (schema-only, 3 tables); describe_schema returns the Demo Store's customers, orders and products tables with their columns."
            },
            {
              "description": "Run a read-only query on the shared demo_shop sample, which works on every plan including free.",
              "prompt": "Use AI2SQL to show the top 5 customers by revenue in the demo_shop sample database.",
              "tools_triggered": "describe_schema, run_query",
              "expected_behavior": "describe_schema(connection_id \"demo-shop\") returns customers, orders, order_items and products; run_query on \"demo-shop\" returns 5 rows of fake sample customers with their revenue. Read-only; nothing is changed."
            }
          ],
          "negative": [
            {
              "description": "Requests to change data are refused: run_query accepts only a single SELECT or WITH statement and rejects writes and DDL with read_only_violation. ChatGPT must not claim the data was deleted.",
              "prompt": "Use AI2SQL to delete all rows from the orders table in my database."
            },
            {
              "description": "Running queries is part of the paid plans. On the free review account run_query returns payment_required; ChatGPT should say so plainly and not retry or show a checkout link.",
              "prompt": "Use AI2SQL to run SELECT * FROM customers on my Demo Store database."
            },
            {
              "description": "Unrelated requests should not trigger AI2SQL tools.",
              "prompt": "Book me a flight to Paris next Friday."
            }
          ]
        },
        "demo_recording_url": "https://youtu.be/RYbZ7BY4Mas",
        "commerce": false,
        "commerce_description": "AI2SQL does not sell products or process payments in ChatGPT."
      },
      "publication": {
        "release_notes": "1.0.2: adds the shared demo_shop sample (read-only, every plan) so users without a database can see real rows. No other behaviour changes."
      }
    }
  },
  "apps": "./.app.json"
}

SHA-256: d554479736b613da6703a61ef944736871c0bafea1b5ebd548b6d7509b72add5