clariBI

AI business intelligence: sign up, ingest data, run analyses, generate reports from any MCP client.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
90%
Qualität der Benennung
97%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~8,987Tokens (Tool-Definitionen)
~3.4 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (7.02% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "mcp-server": {
      "url": "https://claribi.com/mcp/v1/"
    }
  }
}

Remote-Endpunkte

https://claribi.com/mcp/v1/streamable-http
https://claribi.com/mcp/v1/ssesse

Was es kann

Tool-Inventar

Tools (26)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢check_integration_status(handoff_id)

Poll an OAuth handoff initiated by request_oauth_integration_url. Returns the current status (pending, connected, failed, expired) and, when connected, the data_source_id you can pass to run_analysis.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "handoff_id": {
      "type": "string",
      "format": "uuid",
      "description": "The id returned by request_oauth_integration_url."
    }
  },
  "required": [
    "handoff_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "handoff_id": {
      "type": "string",
      "format": "uuid"
    },
    "provider": {
      "type": "string"
    },
    "integration_type": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "One of pending, connected, failed, expired."
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "completed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "data_source_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "The created data source, present once status is \"connected\"."
    },
    "connection_id": {
      "type": [
        "string",
        "null"
      ]
    },
    "error": {
      "type": [
        "string",
        "null"
      ],
      "description": "Failure reason when status is \"failed\"."
    }
  },
  "required": [
    "handoff_id",
    "provider",
    "integration_type",
    "status"
  ]
}
🟢check_pricing(tier)

List clariBI subscription tiers with prices, AI credits, data source limits, user limits, and headline features. No authentication required.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tier": {
      "type": "string",
      "description": "Optional. Return only this tier (free, trial, lite, starter, professional, enterprise)."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "currency": {
      "type": "string",
      "description": "ISO currency code, always \"USD\"."
    },
    "tiers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "Display name of the tier."
          },
          "price_monthly_usd": {
            "type": "number"
          },
          "price_yearly_usd": {
            "type": "number"
          },
          "ai_credits": {
            "type": "integer"
          },
          "data_sources": {
            "type": "integer"
          },
          "max_users": {
            "type": "integer"
          },
          "storage_gb": {
            "type": "number"
          },
          "duration_days": {
            "type": "integer",
            "description": "Trial length in days; 0 for paid tiers."
          },
          "headline_features": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "name",
          "price_monthly_usd",
          "price_yearly_usd"
        ]
      }
    },
    "billing_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "currency",
    "tiers",
    "billing_url"
  ]
}
🟡create_checkout_session(tier, billing_period)

Create a Stripe Checkout URL the user can open in a browser to upgrade their clariBI subscription. Payment cannot happen inside the LLM; this tool returns a URL.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "tier": {
      "type": "string",
      "enum": [
        "starter",
        "professional",
        "enterprise"
      ],
      "description": "Target subscription tier."
    },
    "billing_period": {
      "type": "string",
      "enum": [
        "monthly",
        "yearly"
      ],
      "default": "monthly",
      "description": "Billing cadence for the checkout. Defaults to monthly."
    }
  },
  "required": [
    "tier"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "checkout_url": {
      "type": "string",
      "format": "uri",
      "description": "Stripe Checkout URL. Open in a browser to complete payment."
    },
    "session_id": {
      "type": "string",
      "description": "Stripe Checkout Session id."
    },
    "tier": {
      "type": "string"
    },
    "billing_period": {
      "type": "string",
      "description": "monthly or yearly."
    }
  },
  "required": [
    "checkout_url",
    "session_id",
    "tier",
    "billing_period"
  ]
}
🟡create_forecast(name, description, source_type, source_id, metric_path, ...)

Bind a forecast to a metric in your workspace. Stores the configuration, sets up the schedule, and resolves the source binding immediately so a bad source_id or metric_path errors out before any credits are spent. Run the forecast with run_forecast.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "description": {
      "type": "string",
      "maxLength": 5000
    },
    "source_type": {
      "type": "string",
      "enum": [
        "report",
        "dashboard",
        "goal",
        "data_source"
      ],
      "description": "Which clariBI artifact the metric lives on. Most callers should start with data_source for raw connector metrics or goal to forecast a tracked KPI."
    },
    "source_id": {
      "type": "string",
      "description": "UUID of the report, dashboard, goal, or data source."
    },
    "metric_path": {
      "type": "string",
      "description": "Dot-path to the numeric column. For data_source: the metric key (e.g. \"revenue\"). For goal: \"value\" or \"percentage\". For report: the path inside the insights JSON. For dashboard: \"widget_id:metric_name\"."
    },
    "granularity": {
      "type": "string",
      "enum": [
        "hourly",
        "daily",
        "weekly",
        "monthly",
        "quarterly",
        "annual"
      ],
      "default": "daily",
      "description": "Bucket size for the time series. Hourly requires an hourly data source; the engine refuses to fabricate hourly buckets from daily data."
    },
    "horizon_days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 168,
      "default": 30,
      "description": "How many BUCKETS ahead to project. The per-granularity cap applies: hourly 168, daily 90, weekly 52, monthly 24, quarterly 8, annual 5. The field name is \"_days\" for backwards compatibility — it counts buckets of the chosen granularity."
    },
    "include_correlations": {
      "type": "boolean",
      "default": true
    },
    "include_anomalies": {
      "type": "boolean",
      "default": true
    },
    "include_changepoints": {
      "type": "boolean",
      "default": true
    },
    "narration_enabled": {
      "type": "boolean",
      "default": true,
      "description": "When true, every completed run gets an AI-generated narrative attached (summary, highlights, risks, recommendations, methodology). Costs 1-2 extra AI credits per run."
    },
    "aggregation": {
      "type": "string",
      "enum": [
        "auto",
        "sum",
        "mean",
        "last",
        "max"
      ],
      "default": "auto",
      "description": "How multiple raw points falling into the same bucket are combined. Auto picks sum for additive metrics, mean otherwise. Use Mean for rates (CTR, conversion, latency)."
    },
    "transform": {
      "type": "string",
      "enum": [
        "auto",
        "none",
        "log"
      ],
      "default": "auto",
      "description": "Series transform applied before fitting. Log helps revenue/traffic series with growing variance. Auto detects when log is beneficial; none forces raw scale."
    },
    "non_negative": {
      "type": "boolean",
      "description": "When true, point + lower band clamped at zero. Omit to let the engine heuristic decide (via non_negative_auto=true)."
    },
    "non_negative_auto": {
      "type": "boolean",
      "default": true,
      "description": "When true (default), the backend heuristic owns non_negative and re-evaluates per run based on the metric path. Set false alongside non_negative to lock the choice."
    },
    "method_override": {
      "type": "string",
      "maxLength": 40,
      "description": "Force a specific forecasting method instead of auto-selecting via walk-forward CV. Valid names: naive, seasonal_naive, moving_average, drift, linear_trend, ar_p, holt_winters, holt_winters_multiplicative, holt_winters_damped, theta, gradient_boost, ensemble_top3. Empty = auto."
    },
    "schedule_frequency": {
      "type": "string",
      "enum": [
        "daily",
        "weekly",
        "monthly",
        "manual"
      ],
      "default": "monthly",
      "description": "How often the forecast re-runs. Manual schedules only run when called explicitly via run_forecast."
    },
    "schedule_day_of_week": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6
    },
    "schedule_day_of_month": {
      "type": "integer",
      "minimum": 1,
      "maximum": 31
    }
  },
  "required": [
    "name",
    "source_type",
    "source_id",
    "metric_path"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "metric_label": {
      "type": "string"
    },
    "horizon_days": {
      "type": "integer"
    },
    "granularity": {
      "type": "string"
    },
    "schedule_frequency": {
      "type": "string"
    },
    "next_run_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "web_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "id",
    "name",
    "horizon_days",
    "web_url"
  ]
}
🟡generate_report(title, template_id, output_format)

Create a new generated report in your clariBI organization. Returns the report id you can poll via get_report, plus a download URL once status reaches "completed".

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Display title for the generated report."
    },
    "template_id": {
      "type": "string",
      "description": "Optional registry ID of the marketplace template to render. If omitted, an empty report shell is created and you can attach a template later from the web app."
    },
    "output_format": {
      "type": "string",
      "enum": [
        "json",
        "pdf",
        "html",
        "excel",
        "csv"
      ],
      "default": "pdf",
      "description": "Output format. Must match one of ``GeneratedReport.OUTPUT_FORMATS``."
    }
  },
  "required": [
    "title"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "report_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "description": "Initial status, normally \"pending\". Poll get_report for progress."
    },
    "web_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "report_id",
    "status",
    "web_url"
  ]
}
🟢get_analysis_status(job_id)

Check the status of a previously-dispatched run_analysis job. Returns the analysis result if completed.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid",
      "description": "job_id returned by a prior run_analysis call."
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string"
    },
    "current_step": {
      "type": "string"
    },
    "progress": {
      "type": "number",
      "description": "Completion fraction or percentage reported by the job."
    },
    "result": {
      "type": "object",
      "description": "Analysis envelope. Present when status is \"completed\"."
    },
    "error": {
      "type": "string",
      "description": "Failure reason. Present when status is \"failed\"."
    }
  },
  "required": [
    "job_id",
    "status",
    "current_step",
    "progress"
  ]
}
🟢get_billing_status

Get the organization's billing status — tier, renewal date, and upgrade options.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "subscription_tier": {
      "type": "string"
    },
    "subscription_status": {
      "type": "string"
    },
    "price_monthly_usd": {
      "type": "number"
    },
    "price_yearly_usd": {
      "type": "number"
    },
    "trial_ends_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "billing_url": {
      "type": "string",
      "format": "uri"
    }
  },
  "required": [
    "subscription_tier",
    "subscription_status",
    "price_monthly_usd",
    "price_yearly_usd",
    "billing_url"
  ]
}
🟢get_dashboard(dashboard_id)

Fetch one dashboard by ID. Includes widget definitions, the most recent refresh data, and the web URL.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "dashboard_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the dashboard to fetch."
    }
  },
  "required": [
    "dashboard_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "description": "Dashboard lifecycle status."
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "last_refresh": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "web_url": {
      "type": "string",
      "format": "uri"
    },
    "is_public": {
      "type": "boolean"
    },
    "description": {
      "type": "string"
    },
    "configuration": {
      "type": "object",
      "description": "Dashboard layout and widget configuration."
    },
    "analysis_metadata": {
      "type": "object",
      "description": "AnalysisEngine envelope captured when the dashboard was created."
    }
  },
  "required": [
    "id",
    "name",
    "status",
    "web_url",
    "is_public"
  ]
}
🟢get_data_source_schema(data_source_id)

Fetch the column schema for a data source. Useful before asking run_analysis about specific columns. The schema is derived from the preprocessing metadata clariBI extracted when the source was last synced. Poll this after upload_data_source / ingest_url_data_source until the returned status flips to "active" — that means preprocessing has finished and run_analysis will see the data.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "data_source_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the data source to fetch the schema for."
    }
  },
  "required": [
    "data_source_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "source_type": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "schema": {
      "type": "object",
      "description": "Schema-shaped fields the preprocessing pipeline wrote into the source metadata (columns, column_types, sample_rows, row_count, ...). Empty until preprocessing has run or for source types with no column inventory."
    },
    "last_sync_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "name",
    "source_type",
    "status",
    "schema"
  ]
}
🟢get_forecast(forecast_id)

Fetch one forecast configuration by ID.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "forecast_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the forecast to fetch."
    }
  },
  "required": [
    "forecast_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "name": {
      "type": "string"
    },
    "source_type": {
      "type": "string",
      "description": "One of: report, dashboard, goal, data_source."
    },
    "source_id": {
      "type": "string"
    },
    "metric_path": {
      "type": "string"
    },
    "metric_label": {
      "type": "string"
    },
    "granularity": {
      "type": "string",
      "description": "One of: hourly, daily, weekly, monthly, quarterly, annual."
    },
    "horizon_days": {
      "type": "integer"
    },
    "is_active": {
      "type": "boolean"
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "web_url": {
      "type": "string",
      "format": "uri"
    },
    "schedule_frequency": {
      "type": [
        "string",
        "null"
      ],
      "description": "daily, weekly, monthly, or manual."
    },
    "next_run_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "latest_run_status": {
      "type": [
        "string",
        "null"
      ],
      "description": "pending, running, completed, failed, refunded."
    },
    "latest_run_id": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "narration_enabled": {
      "type": "boolean"
    },
    "aggregation": {
      "type": "string",
      "description": "auto / sum / mean / last / max"
    },
    "transform": {
      "type": "string",
      "description": "auto / none / log"
    },
    "non_negative": {
      "type": "boolean"
    },
    "non_negative_auto": {
      "type": "boolean"
    },
    "method_override": {
      "type": "string"
    },
    "description": {
      "type": "string"
    },
    "include_correlations": {
      "type": "boolean"
    },
    "include_anomalies": {
      "type": "boolean"
    },
    "include_changepoints": {
      "type": "boolean"
    },
    "updated_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  },
  "required": [
    "id",
    "name",
    "source_type",
    "metric_path",
    "horizon_days",
    "web_url"
  ]
}
🟢get_forecast_run(forecast_id, run_id)

Fetch one run of a forecast by ID, or pass run_id="latest" for the most recent run. Returns the full forecast envelope: target series + 30-day projection, correlated drivers (with lag and bootstrap stability), anomalies, structural changes, and credit accounting.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "forecast_id": {
      "type": "string",
      "format": "uuid"
    },
    "run_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the run. Pass 'latest' to fetch the most recent run for the forecast."
    }
  },
  "required": [
    "forecast_id",
    "run_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "forecast_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string"
    },
    "trigger": {
      "type": "string"
    },
    "credits_consumed": {
      "type": "integer"
    },
    "credits_refunded": {
      "type": "integer"
    },
    "duration_ms": {
      "type": "integer"
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "completed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "error_message": {
      "type": "string"
    },
    "result": {
      "type": "object",
      "description": "Forecast envelope. Contains keys: target, correlations, anomalies, changepoints, meta, and (when narration ran) narration. `target` carries lower/upper plus calibrated lower_50/upper_50, lower_80/upper_80, lower_95/upper_95 bands, the winning method, exogenous_driver when a leading-indicator was used, ensemble_components when the ensemble method won, transform applied, and non_negative flag. See docs/MCP_SERVER.md for the shape."
    },
    "narration": {
      "type": [
        "object",
        "null"
      ],
      "description": "Peer of result.narration for convenience. Null when the run pre-dates narration OR was gated out (insufficient credits, org disabled, etc.)."
    }
  },
  "required": [
    "id",
    "forecast_id",
    "status"
  ]
}
🟢get_forecast_trust(forecast_id)

Returns per-past-run accuracy for a forecast. Each row compares a prior run's projection against the actuals that have materialized since. Use this to see whether your forecasts have been getting MORE or LESS accurate over time, or to spot when a backtest sMAPE was systematically optimistic vs. realised performance.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "forecast_id": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "forecast_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "runs": {
      "type": "array",
      "description": "Per-past-run accuracy ordered oldest-first. Each row compares one prior run's forecast against actuals that have since materialized.",
      "items": {
        "type": "object",
        "properties": {
          "run_id": {
            "type": "string",
            "format": "uuid"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "method": {
            "type": [
              "string",
              "null"
            ]
          },
          "horizon": {
            "type": "integer"
          },
          "observed_count": {
            "type": "integer",
            "description": "How many of the forecast points now have an actual observation to compare against."
          },
          "smape_actual": {
            "type": "number",
            "description": "sMAPE between the run's forecast and what actually happened. Lower is better; [0, 200]."
          },
          "smape_backtest": {
            "type": "number",
            "description": "The run's own backtest sMAPE at the time it was generated. Compare against actual to spot drift over time."
          }
        }
      }
    }
  },
  "required": [
    "runs"
  ]
}
🟢get_report(report_id)

Fetch one generated report by ID.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "report_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of the report to fetch."
    }
  },
  "required": [
    "report_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "output_format": {
      "type": "string"
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "completed_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "web_url": {
      "type": "string",
      "format": "uri"
    },
    "download_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "Present only once status is \"completed\"."
    },
    "description": {
      "type": "string"
    },
    "insights": {
      "type": "object",
      "description": "Narrative insight blocks, when generated."
    },
    "data_quality_metrics": {
      "type": "object",
      "description": "Per-source data-quality stats captured at generation time."
    },
    "report_period_start": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "report_period_end": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "output_file_path": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "title",
    "status",
    "web_url"
  ]
}
🟢get_usage

Get the organization's current AI credit usage, data source count, user count, and rate-limit headroom.

Eingabe-Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "subscription_tier": {
      "type": "string"
    },
    "subscription_status": {
      "type": "string"
    },
    "ai_credits_used": {
      "type": "integer"
    },
    "ai_credits_limit": {
      "type": "integer"
    },
    "ai_credits_remaining": {
      "type": "integer"
    },
    "data_sources_used": {
      "type": "integer"
    },
    "data_sources_limit": {
      "type": "integer"
    },
    "storage_gb_limit": {
      "type": "number"
    },
    "max_users": {
      "type": "integer"
    },
    "trial_ends_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    }
  },
  "required": [
    "subscription_tier",
    "subscription_status",
    "ai_credits_used",
    "ai_credits_limit",
    "ai_credits_remaining"
  ]
}
🟡ingest_url_data_source(name, url, format, description, wait_seconds)

Create a new data source by fetching a public URL on the server side. Handles CSV, TSV, JSON, Excel, TXT, and PDF. Private networks (RFC 1918, loopback, cloud metadata) are blocked. Returns the data_source_id once preprocessing has started. Use this for files larger than the 25 MB inline upload cap.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Display name for the new data source."
    },
    "url": {
      "type": "string",
      "description": "Public http(s) URL of the file to ingest. The server fetches it once at call time; the URL is not re-fetched on subsequent analyses. Private networks (RFC 1918, loopback, link-local, cloud metadata) are blocked."
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "tsv",
        "json",
        "xlsx",
        "xls",
        "txt",
        "pdf"
      ],
      "description": "Optional format hint. If omitted, the server infers it from the Content-Type header and URL extension."
    },
    "description": {
      "type": "string",
      "maxLength": 1000,
      "description": "Optional human note stored on the data source."
    },
    "wait_seconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 60,
      "default": 0,
      "description": "Seconds to block waiting for preprocessing before returning. 0 returns immediately."
    }
  },
  "required": [
    "name",
    "url"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "data_source_id": {
      "type": "string",
      "format": "uuid"
    },
    "raw_data_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "format": {
      "type": "string",
      "description": "Detected file format (csv, json, xlsx, ...)."
    },
    "status": {
      "type": "string",
      "description": "Preprocessing status. Poll get_data_source_schema until \"active\"."
    },
    "bytes_fetched": {
      "type": "integer"
    },
    "web_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    }
  },
  "required": [
    "data_source_id",
    "raw_data_id",
    "name",
    "format",
    "status",
    "bytes_fetched"
  ]
}
🟢list_dashboards(limit, offset, search)

List dashboards in your clariBI organization. Returns id, name, status, last refresh, and a URL you can open in a browser.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Page size (1–100)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Row offset for pagination."
    },
    "search": {
      "type": "string",
      "description": "Optional substring match against dashboard name."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Total dashboards matching the query."
    },
    "offset": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "Dashboard lifecycle status."
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "updated_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "last_refresh": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "web_url": {
            "type": "string",
            "format": "uri"
          },
          "is_public": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "name",
          "status",
          "web_url",
          "is_public"
        ]
      }
    }
  },
  "required": [
    "total",
    "offset",
    "limit",
    "items"
  ]
}
🟢list_data_sources(limit, offset, source_type)

List the data sources connected to your clariBI organization. Returns id, name, source_type, status, last sync time, and the number of rows (when known).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 50,
      "description": "Page size (1-100)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Row offset for pagination."
    },
    "source_type": {
      "type": "string",
      "description": "Filter by source_type (csv, postgresql, google_ads, meta_ads, jira, mcp, …)."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Total data sources matching the query."
    },
    "offset": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "source_type": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "description": "Sync/preprocessing status."
          },
          "last_sync_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "row_count": {
            "type": [
              "integer",
              "null"
            ],
            "description": "Row count when preprocessing recorded one, else null."
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "name",
          "source_type",
          "status"
        ]
      }
    }
  },
  "required": [
    "total",
    "offset",
    "limit",
    "items"
  ]
}
🟢list_forecasts(limit, offset, is_active)

List metric forecasts in your clariBI organization. Each row covers one metric: its source binding, horizon, schedule, and the latest run status. Use get_forecast_run to fetch the full forecast result.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Page size (1-100)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Row offset for pagination."
    },
    "is_active": {
      "type": "boolean",
      "description": "Filter by active forecasts. Omit to include both active and paused."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer"
    },
    "offset": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "source_type": {
            "type": "string",
            "description": "One of: report, dashboard, goal, data_source."
          },
          "source_id": {
            "type": "string"
          },
          "metric_path": {
            "type": "string"
          },
          "metric_label": {
            "type": "string"
          },
          "granularity": {
            "type": "string",
            "description": "One of: hourly, daily, weekly, monthly, quarterly, annual."
          },
          "horizon_days": {
            "type": "integer"
          },
          "is_active": {
            "type": "boolean"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "web_url": {
            "type": "string",
            "format": "uri"
          },
          "schedule_frequency": {
            "type": [
              "string",
              "null"
            ],
            "description": "daily, weekly, monthly, or manual."
          },
          "next_run_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "latest_run_status": {
            "type": [
              "string",
              "null"
            ],
            "description": "pending, running, completed, failed, refunded."
          },
          "latest_run_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "narration_enabled": {
            "type": "boolean"
          },
          "aggregation": {
            "type": "string",
            "description": "auto / sum / mean / last / max"
          },
          "transform": {
            "type": "string",
            "description": "auto / none / log"
          },
          "non_negative": {
            "type": "boolean"
          },
          "non_negative_auto": {
            "type": "boolean"
          },
          "method_override": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "source_type",
          "metric_path",
          "horizon_days",
          "web_url"
        ]
      }
    }
  },
  "required": [
    "total",
    "offset",
    "limit",
    "items"
  ]
}
🟢list_reports(limit, offset, status)

List generated reports in your clariBI organization. Returns id, title, status, output format, and download URL.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "default": 20,
      "description": "Page size (1-100)."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "default": 0,
      "description": "Row offset for pagination."
    },
    "status": {
      "type": "string",
      "description": "Filter by status (pending, generating, completed, failed, cancelled)."
    }
  },
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Total reports matching the query."
    },
    "offset": {
      "type": "integer"
    },
    "limit": {
      "type": "integer"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "output_format": {
            "type": "string"
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "completed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "web_url": {
            "type": "string",
            "format": "uri"
          },
          "download_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "Present only once status is \"completed\"."
          }
        },
        "required": [
          "id",
          "title",
          "status",
          "web_url"
        ]
      }
    }
  },
  "required": [
    "total",
    "offset",
    "limit",
    "items"
  ]
}
⚪regenerate_forecast_narrative(forecast_id, run_id)

Re-run ONLY the AI narration step against an existing completed forecast run. Costs 1-2 AI credits (no engine work). Returns the new narration; the old one is overwritten in the run record. Refuses when the run is not yet complete or when narration_enabled=false on the forecast.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "forecast_id": {
      "type": "string",
      "format": "uuid"
    },
    "run_id": {
      "type": "string",
      "format": "uuid",
      "description": "UUID of a COMPLETED run. Use get_forecast_run with run_id='latest' first if you want the most recent."
    }
  },
  "required": [
    "forecast_id",
    "run_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "narration": {
      "type": "object",
      "description": "Narration payload (summary, highlights, risks, recommendations, methodology_note, credits_consumed, model_used, generated_at, fallback_reason). fallback_reason is null on success; one of 'insufficient_credits', 'llm_failed', 'disabled', 'org_disabled' when narration was skipped."
    }
  },
  "required": [
    "narration"
  ]
}
⚪register_account(email, organization_name, first_name, last_name, accept_terms)

Begin clariBI account signup. Validates the email + organization name, emails a 6-digit verification code, and returns a pending_id. Call verify_email(pending_id, code) within 10 minutes to finish signup and receive an API key.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email",
      "description": "Work email for the new account."
    },
    "organization_name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Display name for the organization workspace."
    },
    "first_name": {
      "type": "string",
      "maxLength": 100,
      "description": "User's first name (optional)."
    },
    "last_name": {
      "type": "string",
      "maxLength": 100,
      "description": "User's last name (optional)."
    },
    "accept_terms": {
      "type": "boolean",
      "description": "Must be true. By passing true the user agrees to https://claribi.com/terms and https://claribi.com/privacy."
    }
  },
  "required": [
    "email",
    "organization_name",
    "accept_terms"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "pending_id": {
      "type": [
        "string",
        "null"
      ],
      "description": "Pass to verify_email. Null when no new registration was created."
    },
    "email": {
      "type": "string"
    },
    "expires_in_seconds": {
      "type": "integer"
    },
    "next_step": {
      "type": "string",
      "description": "Next tool to call: \"verify_email\" for a fresh signup, else \"check_inbox\"."
    }
  },
  "required": [
    "pending_id",
    "next_step",
    "expires_in_seconds"
  ]
}
🟢request_oauth_integration_url(provider, integration_type)

Initiate an OAuth handoff to a vendor integration (Google Ads, GA4, Search Console, Sheets, Drive, BigQuery, Meta Ads, Jira, Confluence). Returns an authorization URL the user opens in a browser. After the user clicks Allow, the connection is created and you can poll check_integration_status(handoff_id) to find out when the data is ready.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "provider": {
      "type": "string",
      "enum": [
        "google",
        "meta",
        "jira",
        "confluence"
      ],
      "description": "OAuth provider to authorize. Currently supports the native-OAuth catalog: Google (Ads, Analytics 4, Search Console, Sheets, Drive, BigQuery), Meta Ads, and Atlassian Jira / Confluence."
    },
    "integration_type": {
      "type": "string",
      "description": "Per-provider sub-type. Google accepts google_ads, gsheets, ga4, gsc, gdrive, bigquery, gcs, gcp, basic. Meta accepts ads or basic. Jira and Confluence accept basic. Defaults to basic."
    }
  },
  "required": [
    "provider"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "handoff_id": {
      "type": "string",
      "format": "uuid"
    },
    "authorize_url": {
      "type": "string",
      "format": "uri",
      "description": "Open in a browser to grant consent."
    },
    "provider": {
      "type": "string"
    },
    "integration_type": {
      "type": "string"
    },
    "expires_in_seconds": {
      "type": "integer"
    },
    "next_step": {
      "type": "string",
      "description": "Tool to call next, normally \"check_integration_status\"."
    }
  },
  "required": [
    "handoff_id",
    "authorize_url",
    "provider",
    "integration_type",
    "expires_in_seconds",
    "next_step"
  ]
}
🟡run_analysis(question, session_id, wait_seconds)

Run a natural-language analytics question against your connected data sources. Consumes AI credits. Returns either the completed analysis result inline OR a job_id you can poll with get_analysis_status. If list_data_sources returns an empty list, ingest data first with upload_data_source (inline base64), ingest_url_data_source (public URL), or request_oauth_integration_url (Google / Meta / Jira / Confluence).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string",
      "minLength": 3,
      "maxLength": 1000,
      "description": "Natural language question to analyze. E.g. \"What was revenue last quarter by region?\"."
    },
    "session_id": {
      "type": "string",
      "description": "Optional existing conversation session UUID."
    },
    "wait_seconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 60,
      "default": 30,
      "description": "How long (seconds) to wait for the job to finish before returning a job_id for polling. 0 = always return immediately."
    }
  },
  "required": [
    "question"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "description": "Job status, e.g. \"completed\", \"running\", \"queued\"."
    },
    "result": {
      "type": "object",
      "description": "Analysis envelope (headline metric, chart data, follow-ups). Present when status is \"completed\"."
    },
    "ai_credits_used": {
      "type": "integer"
    },
    "ai_credits_limit": {
      "type": "integer"
    },
    "poll_url": {
      "type": "string",
      "format": "uri",
      "description": "Present when the job is still running. Poll get_analysis_status instead for structured progress."
    }
  },
  "required": [
    "job_id",
    "status"
  ]
}
🟢run_forecast(forecast_id, wait_seconds)

Run a forecast now. Reserves AI credits up front, dispatches the backtest + projection + correlation pipeline, and returns either the completed result inline (wait_seconds > 0 and the run finishes in time) or a run_id you can poll with get_forecast_run.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "forecast_id": {
      "type": "string",
      "format": "uuid"
    },
    "wait_seconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 60,
      "default": 30,
      "description": "Seconds to wait for the run to finish before returning a poll handle. 0 = return immediately with the run_id."
    }
  },
  "required": [
    "forecast_id"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "run_id": {
      "type": "string",
      "format": "uuid"
    },
    "status": {
      "type": "string",
      "description": "pending while queued, running mid-execution, completed/failed/refunded when terminal."
    },
    "credits_reserved": {
      "type": "integer"
    },
    "credits_consumed": {
      "type": "integer"
    },
    "credits_refunded": {
      "type": "integer"
    },
    "result": {
      "type": "object",
      "description": "Present when status reaches \"completed\"."
    },
    "poll_tool": {
      "type": "string",
      "description": "Tool to poll if the run is still running (\"get_forecast_run\")."
    }
  },
  "required": [
    "run_id",
    "status"
  ]
}
🟡upload_data_source(name, format, data_base64, description, wait_seconds)

Create a new data source from an inline base64-encoded file (CSV, TSV, JSON, Excel, TXT, PDF). The file goes through the same validation and preprocessing as a web upload. Returns the data_source_id you can pass to run_analysis as soon as preprocessing completes (poll get_data_source_schema for readiness or pass wait_seconds to block here).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 2,
      "maxLength": 200,
      "description": "Display name for the new data source. Shown in the web app and in subsequent list_data_sources calls."
    },
    "format": {
      "type": "string",
      "enum": [
        "csv",
        "tsv",
        "json",
        "xlsx",
        "xls",
        "txt",
        "pdf"
      ],
      "description": "File format. Drives MIME detection and the preprocessing route inside clariBI. csv covers comma-separated; tsv is tab-separated; xlsx is modern Excel; json must be a top-level array of objects or a single object."
    },
    "data_base64": {
      "type": "string",
      "description": "Base64-encoded file contents. Maximum 25 MB encoded (~18 MB raw). For larger payloads, host the file at a public URL and use ingest_url_data_source."
    },
    "description": {
      "type": "string",
      "maxLength": 1000,
      "description": "Optional human-readable description. Surfaces in the web app and in get_data_source_schema."
    },
    "wait_seconds": {
      "type": "integer",
      "minimum": 0,
      "maximum": 60,
      "default": 0,
      "description": "How long (seconds) to wait for preprocessing to finish before returning. 0 returns immediately with status=\"preprocessing\"; the caller polls get_data_source_schema or list_data_sources."
    }
  },
  "required": [
    "name",
    "format",
    "data_base64"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "data_source_id": {
      "type": "string",
      "format": "uuid"
    },
    "raw_data_id": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "format": {
      "type": "string",
      "description": "Detected file format (csv, json, xlsx, ...)."
    },
    "status": {
      "type": "string",
      "description": "Preprocessing status. Poll get_data_source_schema until \"active\"."
    },
    "bytes_uploaded": {
      "type": "integer"
    },
    "web_url": {
      "type": [
        "string",
        "null"
      ],
      "format": "uri"
    }
  },
  "required": [
    "data_source_id",
    "raw_data_id",
    "name",
    "format",
    "status",
    "bytes_uploaded"
  ]
}
⚪verify_email(pending_id, code, password)

Complete clariBI signup by submitting the verification code plus a password. Returns an OAuth access_token for immediate use AND a long-lived MCP API key for persistent configuration. The new organization lands on the Trial tier (50 AI credits, 14 days).

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "pending_id": {
      "type": "string",
      "format": "uuid",
      "description": "The pending_id returned by register_account."
    },
    "code": {
      "type": "string",
      "pattern": "^[0-9]{6}$",
      "description": "6-digit verification code from the email."
    },
    "password": {
      "type": "string",
      "minLength": 8,
      "description": "A password for the new account. Must be at least 8 characters and pass Django's standard validators."
    }
  },
  "required": [
    "pending_id",
    "code",
    "password"
  ],
  "additionalProperties": false
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "access_token": {
      "type": "string",
      "description": "OAuth bearer token for this conversation."
    },
    "token_type": {
      "type": "string",
      "description": "Always \"Bearer\"."
    },
    "expires_in": {
      "type": "integer",
      "description": "Access-token lifetime in seconds."
    },
    "scope": {
      "type": "string",
      "description": "Space-separated granted scopes."
    },
    "mcp_api_key": {
      "type": "string",
      "description": "Long-lived API key (claribi_mcp_...) for persistent client config."
    },
    "mcp_api_key_id": {
      "type": "string",
      "format": "uuid"
    },
    "user_id": {
      "type": "string"
    },
    "organization_id": {
      "type": "string"
    },
    "tier": {
      "type": "string",
      "description": "New organization tier, always \"trial\"."
    },
    "next_steps": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "access_token",
    "token_type",
    "expires_in",
    "scope",
    "mcp_api_key",
    "mcp_api_key_id",
    "user_id",
    "organization_id",
    "tier"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet26 Tools
fehlgeschlagene BeobachtungVersion nicht aufgezeichnet—
verifiziertVersion nicht aufgezeichnet26 Tools