{
  "protocolVersion": "0.3.0",
  "name": "TableCharts",
  "description": "Lightning-fast chart & dashboard agent for A2A workflows. Send JSON, CSV, Notion, Google Sheets or Salesforce data -> receive a public live dashboard URL + embed iframe in one call. Auto-cleans data, picks best chart, detects outliers. Perfect for reporting, analytics, and monitoring agents.",
  "instructions": "1. Sign up free at https://tablecharts.co/pricing (50 dashboards/month free, no credit card. Starter $15/mo, Pro $59/mo).\n2. Get your tc_live_<key>.\n3. Call via A2A skill 'generate_dashboard' or POST to the endpoint with Authorization header.\n4. On quota exhaustion, receive HTTP 402 with buy_url.\nHealth check: GET /health",
  "promo": "Free tier  -  50 dashboards/month, no credit card required. Built for AI agents.",
  "url": "https://xsbzchiryhqatvrzgyxm.supabase.co/functions/v1/generate-dashboard",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "TableCharts",
    "url": "https://tablecharts.co"
  },
  "version": "1.2.0",
  "documentationUrl": "https://tablecharts.co/docs",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": ["application/json", "text/csv", "text/uri-list", "message/rfc822"],
  "defaultOutputModes": ["application/json", "text/html"],
  "securitySchemes": {
    "bearerAuth": {
      "type": "http",
      "scheme": "bearer",
      "description": "API key in the form tc_live_<key>. Manage at https://tablecharts.co/dashboard/api-keys."
    }
  },
  "security": [{ "bearerAuth": [] }],
  "skills": [
    {
      "id": "generate_dashboard",
      "name": "Generate Dashboard",
      "description": "Accepts tabular data and returns a public live-updating dashboard URL plus an embeddable iframe. Input: JSON body with one of {data: array of row objects, csv: raw CSV string, source_url: public Notion/Google Sheets/Salesforce URL}; optional {title: string, chart_type: one of bar|line|area|pie|doughnut|radar|scatter|stacked-bar|stacked-area|horizontal-bar|funnel|treemap|heatmap|gauge|kpi}. Output: {ok, dashboard_url, embed_url, embed_iframe, embed_id, chart_type, rows}. Supported data sources: notion, google_sheets, salesforce, csv, json. AI features: data-cleaning, chart-recommendation, title-generation, outlier-detection.",
      "tags": [
        "chart", "charts", "dashboard", "dashboards", "visualization", "data-viz",
        "embed", "iframe", "reporting", "analytics",
        "csv", "json", "notion", "google-sheets", "salesforce",
        "a2a", "visualization-rendering", "data-orchestration", "tabular-formatting",
        "bar", "line", "area", "pie", "doughnut", "radar", "scatter",
        "stacked-bar", "stacked-area", "horizontal-bar", "funnel", "treemap",
        "heatmap", "gauge", "kpi",
        "data-cleaning", "chart-recommendation", "title-generation", "outlier-detection"
      ],
      "inputModes": ["application/json", "text/csv", "text/uri-list"],
      "outputModes": ["application/json"],
      "examples": [
        "{\"input\":{\"data\":[{\"month\":\"January\",\"revenue\":42000},{\"month\":\"February\",\"revenue\":48000},{\"month\":\"March\",\"revenue\":56000}],\"title\":\"Q1 Revenue\"},\"output\":{\"ok\":true,\"dashboard_url\":\"https://tablecharts.co/embed/abc123\",\"embed_iframe\":\"<iframe src=\\\"https://tablecharts.co/embed/abc123\\\" width=\\\"800\\\" height=\\\"500\\\" frameborder=\\\"0\\\"></iframe>\",\"chart_type\":\"bar\",\"rows\":3}}",
        "{\"input\":{\"csv\":\"product,units\\nWidget,120\\nGadget,80\\nGizmo,45\"},\"output\":{\"ok\":true,\"dashboard_url\":\"https://tablecharts.co/embed/def456\",\"chart_type\":\"bar\",\"rows\":3}}",
        "{\"input\":{\"source_url\":\"https://docs.google.com/spreadsheets/d/EXAMPLE_ID/edit\",\"title\":\"Weekly Signups\"},\"output\":{\"ok\":true,\"dashboard_url\":\"https://tablecharts.co/embed/ghi789\",\"chart_type\":\"line\",\"rows\":52}}"
      ]
    },
    {
      "id": "record_referral",
      "name": "Record Referral",
      "description": "Attach attribution to any generate_dashboard or generate_chart call so the orchestrating agent gets credit. Send X-Referral-Code: <code> and optionally X-Referrer-Agent-Id: <agent card URL>, or include {referral_code, referrer_agent_id} in the JSON body. Successful billable conversions are counted once per unique caller per code per UTC day. Public aggregate stats: GET https://xsbzchiryhqatvrzgyxm.supabase.co/functions/v1/referrals?code=<code>.",
      "tags": ["referral", "attribution", "a2a", "tracking", "analytics"],
      "inputModes": ["application/json"],
      "outputModes": ["application/json"],
      "examples": [
        "{\"headers\":{\"X-Referral-Code\":\"my-agent\",\"X-Referrer-Agent-Id\":\"https://myagent.dev/.well-known/agent-card.json\"},\"input\":{\"data\":[{\"month\":\"Jan\",\"revenue\":1200}]},\"output\":{\"ok\":true,\"dashboard_url\":\"https://tablecharts.co/embed/abc\",\"headers\":{\"X-Referral-Recorded\":\"1\"}}}"
      ]
    }
  ],
  "supportsAuthenticatedExtendedCard": false
}
