← Files KeboolaARCHIVED FILE

plugin.json

6.66 KB · Nov 5, 2026 · 01:20 UTC

↓ Download file

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "keboola",
  "version": "1.0.0",
  "description": "Explore, query and build in your Keboola projects: inspect tables, run SELECT queries, create SQL transformations and flows, and debug failed jobs through the Keboola MCP server.",
  "author": {
    "name": "Keboola",
    "url": "https://www.keboola.com"
  },
  "homepage": "https://help.keboola.com/ai/mcp-server/",
  "repository": "https://github.com/keboola/mcp-server",
  "license": "MIT",
  "keywords": [
    "keboola",
    "data",
    "sql",
    "etl",
    "transformations",
    "flows",
    "mcp"
  ],
  "extensions": {
    "com.openai": {
      "interface": {
        "displayName": "Keboola",
        "shortDescription": "Work with your Keboola data",
        "longDescription": "Connect ChatGPT to your Keboola projects. Explore buckets and tables, ask questions about your data with read-only SQL, build Snowflake or BigQuery SQL transformations, run them in flows, and find out why a job failed.\n\nYou sign in with your Keboola account. First you choose your Keboola region, then you log in to Keboola and approve access. ChatGPT can reach only the projects your Keboola account can reach, with the same role and permissions you have in Keboola. Before the plugin creates or changes anything, it asks you to confirm the project, and it asks again before it runs a job.\n\nThe plugin cannot delete projects, buy or change subscriptions, or run write statements through SQL queries. Data changes go through Keboola transformations, which you can review in Keboola.",
        "developerName": "Keboola",
        "category": "Developer Tools",
        "capabilities": [
          "Read",
          "Write"
        ],
        "websiteURL": "https://www.keboola.com",
        "supportURL": "https://help.keboola.com/ai/mcp-server/",
        "privacyPolicyURL": "https://www.keboola.com/privacy-policy",
        "termsOfServiceURL": "https://www.keboola.com/terms-and-conditions",
        "defaultPrompt": [
          "Show me the tables in my Keboola project and what they contain.",
          "Create a SQL transformation that aggregates daily orders.",
          "Why did my last Keboola job fail?"
        ],
        "brandColor": "#0072EF",
        "composerIcon": "./assets/icon.png",
        "logo": "./assets/icon.png"
      },
      "review": {
        "test_cases": {
          "positive": [
            {
              "description": "Explore tables in the demo project",
              "prompt": "Which tables do I have in my Keboola project, and what is in the orders table?",
              "tools_triggered": "get_accessible_projects, set_project_scope, get_project_info, search, get_tables",
              "expected_behavior": "Names the demo project OpenAI DEMO, lists its tables with row counts, and describes in.c-sales.orders (600 rows) with its columns, description and sample rows. Changes nothing."
            },
            {
              "description": "Answer a question with a read-only SQL query",
              "prompt": "In Keboola, what are the top 5 category values by total amount in orders?",
              "tools_triggered": "get_accessible_projects, set_project_scope, get_project_info, get_tables, query_data",
              "expected_behavior": "Runs one SELECT with GROUP BY, ORDER BY and LIMIT 5 and returns the categories ranked by total amount. The demo data has 4 categories, so the answer has 4 rows, led by Bikes. Changes nothing."
            },
            {
              "description": "Create and run a SQL transformation",
              "prompt": "Create a Keboola SQL transformation that builds a table review_daily_summary with total amount per day from orders, then run it.",
              "tools_triggered": "get_accessible_projects, set_project_scope, get_project_info, get_tables, query_data, create_sql_transformation, run_job, get_jobs",
              "expected_behavior": "Uses the demo project, saves a transformation with a name and description, runs it as asked, and reports a successful job and the output table review_daily_summary with one row per day."
            },
            {
              "description": "Explain a failed job",
              "prompt": "Why did the last failed job in my Keboola project fail?",
              "tools_triggered": "get_accessible_projects, set_project_scope, get_jobs, get_configs",
              "expected_behavior": "Finds the failed job of the transformation Customer lifetime value, quotes the error \"Unrecognized name: total_price\", explains that the column is called amount, and proposes a fix. Does not change or rerun anything."
            },
            {
              "description": "Create a flow from existing configurations",
              "prompt": "Create a Keboola flow that first runs Prepare orders and then Revenue by category.",
              "tools_triggered": "get_accessible_projects, set_project_scope, get_project_info, search, get_flow_schema, get_flow_examples, create_conditional_flow",
              "expected_behavior": "Finds both transformations and creates a flow with two phases in this order: Prepare orders, then Revenue by category. Returns the flow name. Does not run the flow."
            }
          ],
          "negative": [
            {
              "description": "General data engineering question that needs no project data",
              "prompt": "Explain the difference between ETL and ELT pipelines and when to use each."
            },
            {
              "description": "Generic SQL writing for a schema the user describes",
              "prompt": "Write a SQL query that returns the top 5 customers by revenue from a table orders(customer_id, amount)."
            },
            {
              "description": "Data warehouse outside Keboola",
              "prompt": "List the tables in my own Snowflake account and show the row counts."
            }
          ]
        },
        "commerce": false,
        "commerce_description": "This plugin does not sell products, credits or subscriptions and does not process payments."
      },
      "publication": {
        "release_notes": "Keboola 1.0.0 \u2014 first public release. Connect ChatGPT to your Keboola projects on any Keboola multi-tenant region: choose your region, log in to Keboola and approve access. Four workflows: explore project data with read-only SQL, build Snowflake or BigQuery SQL transformations, debug failed jobs, and build flows from existing configurations. The plugin confirms the project before every change and asks before running a job. Not included in this version: Python and JavaScript data apps, creating new projects, and running arbitrary component actions."
      },
      "apps": "./.app.json"
    }
  }
}

SHA-256: a52671cd0474fc500290e34db06409416795f8673419945d7471479b1f896752