clariBI
AI business intelligence: sign up, ingest data, run analyses, generate reports from any MCP client.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"mcp-server": {
"url": "https://claribi.com/mcp/v1/"
}
}
}リモートエンドポイント
https://claribi.com/mcp/v1/streamable-httphttps://claribi.com/mcp/v1/ssesseできること
ツール一覧
ツール(26)
🟢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.
入力スキーマ
{
"type": "object",
"properties": {
"handoff_id": {
"type": "string",
"format": "uuid",
"description": "The id returned by request_oauth_integration_url."
}
},
"required": [
"handoff_id"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"tier": {
"type": "string",
"description": "Optional. Return only this tier (free, trial, lite, starter, professional, enterprise)."
}
},
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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".
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"job_id": {
"type": "string",
"format": "uuid",
"description": "job_id returned by a prior run_analysis call."
}
},
"required": [
"job_id"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"dashboard_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the dashboard to fetch."
}
},
"required": [
"dashboard_id"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"forecast_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the forecast to fetch."
}
},
"required": [
"forecast_id"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"forecast_id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"forecast_id"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"report_id": {
"type": "string",
"format": "uuid",
"description": "UUID of the report to fetch."
}
},
"required": [
"report_id"
],
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {},
"additionalProperties": false
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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).
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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).
入力スキーマ
{
"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
}出力スキーマ
{
"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.
入力スキーマ
{
"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
}出力スキーマ
{
"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).
入力スキーマ
{
"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
}出力スキーマ
{
"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).
入力スキーマ
{
"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
}出力スキーマ
{
"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"
]
}コミュニティ
エビデンス