Skip to main content
Glama

Server Details

clariBI is an AI-powered business intelligence platform built for small and mid-sized SaaS, ecommerce, and operations teams. Instead of writing SQL or building dashboards manually, users ask questions in plain English ("what's our CAC by channel last quarter?") and the AI engine pulls the data from Stripe, HubSpot, Google Analytics, ad platforms, Jira, and 30+ other sources via the open Model Context Protocol. Dashboards generate themselves on source connect.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 26 of 26 tools scored. Lowest: 3.6/5.

Server CoherenceA
Disambiguation4/5

Tools are generally distinct by resource and action, but a few status polling tools (check_integration_status, get_analysis_status) could be confused without careful reading; descriptions clarify the difference.

Naming Consistency4/5

Most tools use a consistent verb_noun snake_case pattern, but there is minor variation (e.g., 'check' vs 'get' for status, and some compound nouns like 'request_oauth_integration_url').

Tool Count4/5

26 tools is slightly above the typical range but appropriate for a comprehensive BI platform covering data ingestion, analysis, forecasting, reports, dashboards, and account management; each tool has a clear purpose.

Completeness2/5

The tool surface is heavily read-oriented, lacking update and delete operations for most resources (data sources, dashboards, reports, forecasts). This leaves significant lifecycle management gaps for an agent.

Available Tools

26 tools
check_integration_statusA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
handoff_idYesThe id returned by request_oauth_integration_url.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoFailure reason when status is "failed".
statusYesOne of pending, connected, failed, expired.
providerYes
created_atNo
handoff_idYes
completed_atNo
connection_idNo
data_source_idNoThe created data source, present once status is "connected".
integration_typeYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the description adds value by listing the possible statuses and the return of data_source_id. No contradictions and no missing critical behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of two concise sentences with no wasted words. It immediately communicates the action, target, and returns.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool with one parameter and an output schema, the description adequately covers what the tool returns and the flow. Some details about idempotency are already in annotations. It is complete for its complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for handoff_id. The description repeats the relation to request_oauth_integration_url, which is already in the schema, so it adds minimal extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool polls an OAuth handoff and returns specific statuses (pending, connected, failed, expired). It distinguishes this from the sibling request_oauth_integration_url by specifying the handoff as initiated by that tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to use this after requesting an OAuth integration URL and indicates that the resulting data_source_id can be passed to run_analysis. It does not explicitly mention when not to use or alternative tools, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_pricingA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
tierNoOptional. Return only this tier (free, trial, lite, starter, professional, enterprise).

Output Schema

ParametersJSON Schema
NameRequiredDescription
tiersYes
currencyYesISO currency code, always "USD".
billing_urlYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds the behavioral detail 'No authentication required,' which is beyond what annotations provide. No contradictions are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with only two sentences. It front-loads the purpose and includes essential behavioral info without any fluff. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema, the description does not need to detail return values. It covers the key aspects of the response (tiers, prices, credits, limits, features). While it omits potential details like sorting or pagination, for a simple listing of subscription tiers, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage; the 'tier' parameter is described with valid values. The description does not add any additional semantic information about the parameter beyond what the schema already provides, so it meets the baseline of 3 for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a clear resource ('clariBI subscription tiers') along with the specific details included (prices, AI credits, data source limits, etc.). This distinctly differentiates the tool from siblings like check_integration_status or create_checkout_session, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states that no authentication is required, which is a clear usage guideline. However, it does not provide explicit when-not-to-use instructions or alternatives, though the sibling context implies when this tool is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_checkout_sessionAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
tierYesTarget subscription tier.
billing_periodNoBilling cadence for the checkout. Defaults to monthly.monthly

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierYes
session_idYesStripe Checkout Session id.
checkout_urlYesStripe Checkout URL. Open in a browser to complete payment.
billing_periodYesmonthly or yearly.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate the tool is not read-only, idempotent, or destructive. The description adds that it returns a URL and payment must happen outside the LLM. However, it does not detail side effects like pending subscription creation or database changes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no wasted words. First sentence states purpose and resource, second adds critical behavioral constraint.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and an output schema, the description covers the key behavior. It could mention error conditions or prerequisites, but it is sufficiently complete for the use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already well described. The description does not add extra meaning beyond the schema; it only provides context for the tier parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates a Stripe Checkout URL for upgrading a clariBI subscription. It specifies the verb and resource, and distinguishes from sibling tools by noting payment cannot happen inside the LLM.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to facilitate payment via browser) and explicitly states that payment cannot happen inside the LLM. It does not list alternatives or exclusions, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_forecastAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
source_idYesUUID of the report, dashboard, goal, or data source.
transformNoSeries transform applied before fitting. Log helps revenue/traffic series with growing variance. Auto detects when log is beneficial; none forces raw scale.auto
aggregationNoHow 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).auto
descriptionNo
granularityNoBucket size for the time series. Hourly requires an hourly data source; the engine refuses to fabricate hourly buckets from daily data.daily
metric_pathYesDot-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".
source_typeYesWhich clariBI artifact the metric lives on. Most callers should start with data_source for raw connector metrics or goal to forecast a tracked KPI.
horizon_daysNoHow 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.
non_negativeNoWhen true, point + lower band clamped at zero. Omit to let the engine heuristic decide (via non_negative_auto=true).
method_overrideNoForce 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.
include_anomaliesNo
narration_enabledNoWhen true, every completed run gets an AI-generated narrative attached (summary, highlights, risks, recommendations, methodology). Costs 1-2 extra AI credits per run.
non_negative_autoNoWhen 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.
schedule_frequencyNoHow often the forecast re-runs. Manual schedules only run when called explicitly via run_forecast.monthly
include_changepointsNo
include_correlationsNo
schedule_day_of_weekNo
schedule_day_of_monthNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
web_urlYes
granularityNo
next_run_atNo
horizon_daysYes
metric_labelNo
schedule_frequencyNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate it's a mutation (readOnlyHint=false) and not destructive. The description adds transparency by revealing that it 'resolves the source binding immediately so a bad source_id or metric_path errors out before any credits are spent,' which is value beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the purpose, and every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (19 params, 4 required) and the existence of an output schema, the description adequately covers the creation action and error behavior. It references run_forecast for subsequent steps. Could mention retrieval tools like get_forecast, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 63%, and many parameters already have descriptions. The tool description does not add significant meaning beyond the schema; it only generally mentions configuration storage. Baseline of 3 is appropriate as the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Bind a forecast to a metric in your workspace.' It details key actions (stores config, sets schedule, resolves source binding) and distinguishes from the sibling 'run_forecast' by explicitly mentioning 'Run the forecast with run_forecast.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use the tool (to create a forecast) and directs the user to run_forecast for execution. However, it does not explicitly state when not to use it or mention alternatives among siblings, though no other creation sibling exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_reportAInspect

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".

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesDisplay title for the generated report.
template_idNoOptional 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_formatNoOutput format. Must match one of ``GeneratedReport.OUTPUT_FORMATS``.pdf

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesInitial status, normally "pending". Poll get_report for progress.
web_urlYes
report_idYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description explicitly discloses asynchronous behavior (poll via get_report, status-based download URL) and optional template behavior. Annotations confirm mutation (readOnlyHint=false) and non-idempotence, with no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero unnecessary words, front-loaded with action and return value. Perfectly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

All parameters are covered, return values (report id, download URL) are stated, polling mechanism is suggested. Asynchronous creation tool is fully described without needing output schema details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

100% schema coverage provides baseline 3; description adds valuable context for template_id (empty shell behavior) and output_format (internal constant reference). Title is adequately described in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Create a new generated report in your clariBI organization' with specific verb and resource. It differentiates from sibling tools like get_report or list_reports by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on using get_report for polling and the optional template_id behavior. Does not explicitly list when to use versus alternatives among many siblings, but the creation intent is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_analysis_statusA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesjob_id returned by a prior run_analysis call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoFailure reason. Present when status is "failed".
job_idYes
resultNoAnalysis envelope. Present when status is "completed".
statusYes
progressYesCompletion fraction or percentage reported by the job.
current_stepYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly and idempotent hints. Description adds that it returns result on completion, no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two efficient sentences, front-loaded with purpose, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists and single parameter, description adequately covers tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with clear description for job_id. Description reinforces but doesn't add beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool checks status of a prior run_analysis job and returns result if completed, distinguishing it from sibling tools like run_analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage after run_analysis, but could explicitly state when to poll. Clear enough given sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_billing_statusA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
billing_urlYes
trial_ends_atNo
price_yearly_usdYes
price_monthly_usdYes
subscription_tierYes
subscription_statusYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true; description adds valuable context about return fields (tier, renewal date, upgrade options).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, direct, no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, existing output schema, and annotations, description provides sufficient context for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters, so description need not add param info; baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets billing status and lists specific components (tier, renewal date, upgrade options), distinguishing it from sibling tools like check_pricing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives; usage is implied but not compared to other billing-related tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_dashboardA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dashboard_idYesUUID of the dashboard to fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
statusYesDashboard lifecycle status.
web_urlYes
is_publicYes
created_atNo
updated_atNo
descriptionNo
last_refreshNo
configurationNoDashboard layout and widget configuration.
analysis_metadataNoAnalysisEngine envelope captured when the dashboard was created.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false. The description adds value by detailing what data is returned (widget definitions, refresh data, URL), which is beyond what annotations provide. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no unnecessary words. The core information is front-loaded. Every sentence provides useful context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so the description need not detail return format. It covers what the dashboard fetch includes, and the single required parameter is well-documented. No gaps given the complexity and available context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for 'dashboard_id'. The tool description does not add further parameter guidance, but the schema already suffices. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetch'), the resource ('one dashboard'), and what is included ('widget definitions, most recent refresh data, web URL'). It also implicitly distinguishes from sibling 'list_dashboards' which fetches multiple.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (fetching a single dashboard by ID) but does not explicitly state when to use this tool versus alternatives like 'get_report' or 'list_dashboards'. No when-not or alternative criteria given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_data_source_schemaA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_source_idYesUUID of the data source to fetch the schema for.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
schemaYesSchema-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.
statusYes
source_typeYes
last_sync_atNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent. Description adds that schema is derived from preprocessing metadata and explains polling behavior to check preprocessing completion, which is valuable beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with purpose, then usage guidance. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, usage context, data origin, and polling behavior. With full schema and output schema, the description is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only parameter has 100% schema coverage with a clear description. Description does not add additional meaning beyond what the schema already provides for the parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Fetch the column schema for a data source' with a specific verb and resource. Distinguishes from siblings by referencing run_analysis and upload/ingest patterns.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: before run_analysis for column names, and to poll after upload/ingest until status is 'active'. Names sibling tools and provides context for usage decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_forecastA
Read-onlyIdempotent
Inspect

Fetch one forecast configuration by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
forecast_idYesUUID of the forecast to fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
nameYes
web_urlYes
is_activeNo
source_idNo
transformNoauto / none / log
created_atNo
updated_atNo
aggregationNoauto / sum / mean / last / max
descriptionNo
granularityNoOne of: hourly, daily, weekly, monthly, quarterly, annual.
metric_pathYes
next_run_atNo
source_typeYesOne of: report, dashboard, goal, data_source.
horizon_daysYes
metric_labelNo
non_negativeNo
latest_run_idNo
method_overrideNo
include_anomaliesNo
latest_run_statusNopending, running, completed, failed, refunded.
narration_enabledNo
non_negative_autoNo
schedule_frequencyNodaily, weekly, monthly, or manual.
include_changepointsNo
include_correlationsNo
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, openWorldHint, and idempotentHint. Description adds no additional behavioral context beyond stating it fetches a configuration by ID, missing potential details like existence expectations or response shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, zero waste, front-loaded with the action and resource. Perfect for a simple one-parameter read tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple read operation, one parameter, and presence of an output schema (not shown), the description efficiently covers the core purpose without needing elaboration on returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter description. Tool description adds no extra meaning beyond what the schema already provides, hitting the baseline expectation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'fetch' and resource 'forecast configuration' with qualifier 'by ID', clearly distinguishing from list_forecasts and create_forecast siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage through 'by ID' suggests use when you have a specific forecast ID, but no explicit when-to-use or when-not-to-use guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_forecast_runA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesUUID of the run. Pass 'latest' to fetch the most recent run for the forecast.
forecast_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
resultNoForecast 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.
statusYes
triggerNo
narrationNoPeer of result.narration for convenience. Null when the run pre-dates narration OR was gated out (insufficient credits, org disabled, etc.).
created_atNo
duration_msNo
forecast_idYes
completed_atNo
error_messageNo
credits_consumedNo
credits_refundedNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint. Description adds valuable behavioral context: returns 'full forecast envelope' with specific components (target series, projection, drivers, anomalies, etc.). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action and unique parameter case, then enumerates return components. No wasted words, highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, so return details are not required. Description covers key return components. Could mention error handling for invalid IDs or non-existent runs, but not essential given annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50%; run_id is well-documented in schema, forecast_id lacks description. The main description implies forecast_id is the forecast identifier but adds no new semantic details beyond the schema. Slightly lacking for the undocumented parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses specific verb 'Fetch' with resource 'run of a forecast'. Distinguishes from siblings like get_forecast (forecast metadata) and run_forecast (creates run). Clearly states the action and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'by ID' or with 'latest' for most recent. No explicit exclusions, but context from sibling tools implies clear differentiation. Could note that for listing runs, other tools may be needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_forecast_trustA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
forecast_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
runsYesPer-past-run accuracy ordered oldest-first. Each row compares one prior run's forecast against actuals that have since materialized.
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only and idempotent. The description adds behavioral detail: it returns comparisons of prior runs against actuals, and mentions specific metrics (sMAPE). This provides transparency about what the agent can expect.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, each earning its place: the first defines the output, the second explains the comparison, the third provides usage guidance. It is concise and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with a single required parameter and an output schema, the description adequately explains what the tool does and what the output contains. It also provides usage context. No obvious gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. The description implies the forecast_id is for a forecast, but does not explicitly state that the required parameter is the forecast UUID. However, given the simplicity of a single UUID parameter, the inference is straightforward. The description adds minimal value beyond the schema itself.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns per-past-run accuracy for a forecast, comparing projections to actuals. It uses specific language ('per-past-run', 'accuracy', 'compares a prior run's projection against actuals'), and context from sibling tools like get_forecast and get_forecast_run indicates this is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit use cases: to see accuracy trends over time or detect systematic optimism in backtests. It does not explicitly state when not to use or mention alternatives, but the usage guidance is clear and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_reportA
Read-onlyIdempotent
Inspect

Fetch one generated report by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
report_idYesUUID of the report to fetch.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
titleYes
statusYes
web_urlYes
insightsNoNarrative insight blocks, when generated.
created_atNo
descriptionNo
completed_atNo
download_urlNoPresent only once status is "completed".
output_formatNo
output_file_pathNo
report_period_endNo
report_period_startNo
data_quality_metricsNoPer-source data-quality stats captured at generation time.
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint and idempotentHint; description adds no additional behavioral context beyond 'generated', which is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words, front-loaded with verb and object.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with one parameter and output schema; description is adequate though no mention of errors or output format (covered by schema).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and parameter description is clear; description does not add extra meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states verb 'Fetch' and resource 'generated report' with identifier, clearly distinguishing it from sibling tools like list_reports and generate_report.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use versus alternatives like list_reports; usage is implied but not contrasted with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_usageA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
max_usersNo
trial_ends_atNo
ai_credits_usedYes
ai_credits_limitYes
storage_gb_limitNo
data_sources_usedNo
subscription_tierYes
data_sources_limitNo
subscription_statusYes
ai_credits_remainingYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, confirming no side effects. The description adds value by listing the exact data points returned (AI credits, counts, headroom), providing behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that efficiently conveys the tool's purpose with no extraneous words. Every part of the description contributes to understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an existing output schema (which documents return values), the description adequately covers the high-level data returned. It is complete for a simple retrieval tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters and 100% schema coverage, the description correctly omits parameter details. It adds no redundant information, achieving the baseline for tools with no parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Get' and the resource 'organization's current AI credit usage, data source count, user count, and rate-limit headroom'. It fully distinguishes the tool from siblings by focusing on usage metrics, which is a distinct subset of the available data retrieval operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when needing organization-level usage metrics but does not explicitly state when to use this tool over alternatives like check_billing_status or get_dashboard. No exclusions or alternative tool references are provided, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ingest_url_data_sourceAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic 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.
nameYesDisplay name for the new data source.
formatNoOptional format hint. If omitted, the server infers it from the Content-Type header and URL extension.
descriptionNoOptional human note stored on the data source.
wait_secondsNoSeconds to block waiting for preprocessing before returning. 0 returns immediately.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
formatYesDetected file format (csv, json, xlsx, ...).
statusYesPreprocessing status. Poll get_data_source_schema until "active".
web_urlNo
raw_data_idYes
bytes_fetchedYes
data_source_idYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate a write operation (readOnlyHint=false) and external side effects (openWorldHint=true). The description adds that the URL is fetched once and not re-fetched, and that private networks are blocked. This provides helpful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each adding distinct value: purpose + format list + blocking info, and return value + usage hint. No redundant or trivial text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core purpose, use case, supported formats, blocking behavior, and return value. With an output schema present, it does not need to explain return structure. Could mention error scenarios but is sufficient for most agents.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear parameter descriptions. The tool description does not add further parameter-level details, but baseline is 3 since schema already covers semantics adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource pair ('Create a new data source by fetching a public URL') and immediately distinguishes itself from the sibling 'upload_data_source' tool by mentioning the 25 MB inline upload cap, providing strong differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('for files larger than the 25 MB inline upload cap'). Implicitly advises against using private URLs by mentioning blocked networks. Lacks an explicit 'do not use' for small files but context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_dashboardsA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1–100).
offsetNoRow offset for pagination.
searchNoOptional substring match against dashboard name.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
totalYesTotal dashboards matching the query.
offsetYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and idempotent behavior. The description adds context by listing returned fields and mentioning a browser URL. It does not contradict annotations and provides useful behavioral insight beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, no wasted words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the schema, annotations, and output schema, the description is fairly complete. It could mention pagination behavior, but the schema already covers limit/offset. Minor gap but mostly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (all parameters described). The description does not add extra parameter meaning beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List dashboards'), the resource ('your clariBI organization'), and specifies the returned fields (id, name, status, last refresh, URL). This distinguishes it from siblings like 'get_dashboard' which returns a single dashboard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing dashboards but lacks explicit guidance on when to use this tool versus alternatives (e.g., 'get_dashboard' for a single dashboard). No when-not or exclusion criteria are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_data_sourcesA
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1-100).
offsetNoRow offset for pagination.
source_typeNoFilter by source_type (csv, postgresql, google_ads, meta_ads, jira, mcp, …).

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
totalYesTotal data sources matching the query.
offsetYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so description carries less burden. It adds context about returned fields (id, name, source_type, etc.) but no additional behavioral traits beyond what annotations imply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main verb, no wasted words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present (context signals indicate true), the description doesn't need to fully explain returns, but it lists key fields. Parameters are all optional and documented in schema, so overall completeness is good.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it doesn't mention parameters like limit, offset, or source_type filters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'data sources', and distinguishes from siblings like list_dashboards and list_reports. It also lists the return fields, providing a complete purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool vs alternatives. For example, it doesn't mention that this lists only connected data sources without filtering, or when to use get_data_source_schema for schema details.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_forecastsA
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1-100).
offsetNoRow offset for pagination.
is_activeNoFilter by active forecasts. Omit to include both active and paused.

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
totalYes
offsetYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds that each row covers source binding, horizon, schedule, and latest run status, which is useful. However, it omits pagination behavior details beyond parameters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the core purpose, second describes row contents and suggests next step. No wasted words; highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations and output schema present, the description covers the tool's purpose and row structure adequately. It implies pagination via limit/offset but could mention that the response is a list. Overall fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters already have descriptions. The tool description does not add new parameter semantics beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'List metric forecasts in your clariBI organization' – a specific verb+resource. It distinguishes from sibling tool 'get_forecast_run' by noting that tool fetches full results, and contextually differs from other list tools (e.g., list_dashboards) by entity type.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly recommends 'get_forecast_run' for fetching full results after listing, providing clear context. Does not explicitly exclude cases, but the tool's simple nature makes this adequate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_reportsA
Read-onlyIdempotent
Inspect

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

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size (1-100).
offsetNoRow offset for pagination.
statusNoFilter by status (pending, generating, completed, failed, cancelled).

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
limitYes
totalYesTotal reports matching the query.
offsetYes
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, indicating a safe read operation. The description adds that it returns specific fields but does not mention pagination behavior or rate limits. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded with the purpose and includes key return fields. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with an output schema, the description covers the purpose and return fields. However, it does not mention pagination behavior or ordering, which would be helpful for an agent. Overall, it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions already provided. The description does not add additional meaning to the parameters beyond what the schema offers, so it meets the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it lists generated reports in the organization and enumerates the fields returned (id, title, status, output format, download URL). This distinguishes it from sibling tools like 'get_report' (single report) or 'generate_report'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for browsing reports but does not explicitly state when to use this versus alternatives. Given siblings like 'get_report' and 'generate_report', the description lacks guidance on when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

regenerate_forecast_narrativeAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
run_idYesUUID of a COMPLETED run. Use get_forecast_run with run_id='latest' first if you want the most recent.
forecast_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
narrationYesNarration 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.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are non-committal (readOnlyHint=false, destructiveHint=false), but the description adds crucial behavioral context: the tool costs 1-2 AI credits, overwrites the old narration, and refuses under specific conditions. This goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at three sentences, each carrying essential information. It is front-loaded with the core purpose, followed by cost and constraints, with no redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return values are covered externally), the description covers all necessary context: scope (narration only), cost, idempotency (overwrites), refusal conditions. It is complete for a tool of moderate complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 50% (forecast_id lacks a description). The description adds value for run_id by advising to get it from get_forecast_run, but it does not elaborate on forecast_id. It provides some additional meaning but does not fully compensate for the missing schema description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific verb 're-run' and the resource 'AI narration step against an existing completed forecast run'. It distinguishes this tool from siblings like 'run_forecast' which would perform the full forecast, not just the narration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (to re-run narration without engine work) and when not (if run not complete or narration_disabled). It also provides a hint to use 'get_forecast_run' first. However, it lacks explicit mention of alternative tools among the listed siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

register_accountAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesWork email for the new account.
last_nameNoUser's last name (optional).
first_nameNoUser's first name (optional).
accept_termsYesMust be true. By passing true the user agrees to https://claribi.com/terms and https://claribi.com/privacy.
organization_nameYesDisplay name for the organization workspace.

Output Schema

ParametersJSON Schema
NameRequiredDescription
emailNo
next_stepYesNext tool to call: "verify_email" for a fresh signup, else "check_inbox".
pending_idYesPass to verify_email. Null when no new registration was created.
expires_in_secondsYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide limited behavioral hints (readOnlyHint=false, destructiveHint=false). The description adds context: it sends an email with a verification code and imposes a 10-minute expiry for the pending_id. However, it does not disclose potential side effects like duplicate email handling or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, containing only two sentences that convey the essential action, outcome, and next step. No extraneous information, well-structured with the key action first.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 5 parameters (3 required) and an output schema (though not visible), the description covers the primary behavior and return value (pending_id). It also provides a crucial next-step instruction. A minor gap is the absence of details on error conditions (e.g., duplicate email).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema's descriptions for parameters like email, organization_name, etc. It would benefit from noting that accept_terms must be true or clarifying optional fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool begins account signup, validates email and organization name, sends a verification code, and returns a pending_id. It distinguishes itself from siblings like verify_email by specifying it is the initial registration step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs when to use this tool (to start signup) and what to do next (call verify_email within 10 minutes). It implicitly tells when not to use it by indicating the next step, differentiating from verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_oauth_integration_urlAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
providerYesOAuth 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_typeNoPer-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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
providerYes
next_stepYesTool to call next, normally "check_integration_status".
handoff_idYes
authorize_urlYesOpen in a browser to grant consent.
integration_typeYes
expires_in_secondsYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the tool's behavior: it returns an authorization URL, requires user to open in browser, and after user clicks Allow, the connection is created. This adds significant context beyond annotations (readOnlyHint=false, openWorldHint=true) and aligns with them.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences) and front-loaded with the core purpose. Every sentence provides essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity, schema coverage, and output schema, the description thoroughly explains the workflow: initiation, user action, and polling. It integrates well with sibling tools like check_integration_status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptive parameter descriptions. The description adds value by listing supported providers and explaining that integration_type defaults to 'basic', complementing the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states 'Initiate an OAuth handoff to a vendor integration' and lists specific integrations (Google Ads, GA4, etc.). It clearly distinguishes the tool as the one starting the OAuth process, separate from sibling tool check_integration_status which polls for completion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to start OAuth handoff) and what to do after the user approves (poll check_integration_status). It lacks explicit 'when not to use' or alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_analysisAInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYesNatural language question to analyze. E.g. "What was revenue last quarter by region?".
session_idNoOptional existing conversation session UUID.
wait_secondsNoHow long (seconds) to wait for the job to finish before returning a job_id for polling. 0 = always return immediately.

Output Schema

ParametersJSON Schema
NameRequiredDescription
job_idYes
resultNoAnalysis envelope (headline metric, chart data, follow-ups). Present when status is "completed".
statusYesJob status, e.g. "completed", "running", "queued".
poll_urlNoPresent when the job is still running. Poll get_analysis_status instead for structured progress.
ai_credits_usedNo
ai_credits_limitNo
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses credit consumption, two return modes (inline vs. job_id), and the polling mechanism. Annotations are neutral (no readOnly, etc.) and description adds significant behavioral context beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise paragraph with all essential information. Could be slightly more structured (e.g., bullet points for return modes), but no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Completes the picture for an AI agent: main action, cost, return options, polling, and data source prerequisites. Mentions output schema (implicitly) and references sibling tools for full workflow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers 100% of parameters, but description adds value by explaining the interplay between wait_seconds and job_id, and the nature of the question parameter. Goes beyond schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it runs a natural-language analytics question against data sources. Distinguishes itself by mentioning sibling tools for data ingestion (upload_data_source, etc.) and polling (get_analysis_status), so purpose is specific and distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: use when data sources are available (list_data_sources not empty), and alternatives for data ingestion if empty. Also explains when to poll (wait_seconds=0 or timeout) and references get_analysis_status for polling.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

run_forecastAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
forecast_idYes
wait_secondsNoSeconds to wait for the run to finish before returning a poll handle. 0 = return immediately with the run_id.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultNoPresent when status reaches "completed".
run_idYes
statusYespending while queued, running mid-execution, completed/failed/refunded when terminal.
poll_toolNoTool to poll if the run is still running ("get_forecast_run").
credits_consumedNo
credits_refundedNo
credits_reservedNo
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds context beyond annotations: reserves AI credits upfront, dispatches a three-step pipeline, and describes conditional return behavior. Annotations are false for readOnly/destructive, consistent with mutation but not destructive action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the action, no filler. Each sentence provides distinct, essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers main behavior, parameters, and outcome types. With an output schema present, it's adequate for an agent to select and invoke the tool. Implicitly assumes forecast exists; no error handling mentioned but acceptable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (wait_seconds has schema description). Description explains wait_seconds effect (wait vs return immediately) but does not add new info for forecast_id beyond the obvious. Baseline 3 with partial compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clear verb+resource: 'Run a forecast now.' Distinguishes from siblings like get_forecast_run and create_forecast by describing the execution pipeline (backtest+projection+correlation) and two possible outcomes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use: to run a forecast. Describes wait_seconds parameter behavior and names get_forecast_run as the polling alternative for deferred results.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_data_sourceAInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name for the new data source. Shown in the web app and in subsequent list_data_sources calls.
formatYesFile 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_base64YesBase64-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.
descriptionNoOptional human-readable description. Surfaces in the web app and in get_data_source_schema.
wait_secondsNoHow 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.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameYes
formatYesDetected file format (csv, json, xlsx, ...).
statusYesPreprocessing status. Poll get_data_source_schema until "active".
web_urlNo
raw_data_idYes
bytes_uploadedYes
data_source_idYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses asynchronous preprocessing with polling/waiting options. Mentions validation same as web upload. No contradiction with annotations. Could mention error handling but overall good.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with core purpose, second sentence adds critical workflow info. No redundant phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers async behavior, format support, size limits, alternative tool, and key return value. Output schema exists so return details not required. Complete for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and description adds meaning: name shown in web app, format drives MIME detection, data_base64 max size, description optional, wait_seconds blocking. Complements schema well.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'create', resource 'data source', and method 'from inline base64-encoded file'. Lists supported formats and explicitly distinguishes from sibling tool ingest_url_data_source.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context on when to use (inline base64) vs alternative (URL-based for larger files). Explains polling vs waiting behavior. Lacks explicit when-not-to-use, but the guidance is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_emailAInspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes6-digit verification code from the email.
passwordYesA password for the new account. Must be at least 8 characters and pass Django's standard validators.
pending_idYesThe pending_id returned by register_account.

Output Schema

ParametersJSON Schema
NameRequiredDescription
tierYesNew organization tier, always "trial".
scopeYesSpace-separated granted scopes.
user_idYes
expires_inYesAccess-token lifetime in seconds.
next_stepsNo
token_typeYesAlways "Bearer".
mcp_api_keyYesLong-lived API key (claribi_mcp_...) for persistent client config.
access_tokenYesOAuth bearer token for this conversation.
mcp_api_key_idYes
organization_idYes
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are non-informative (all false), but the description adds behavioral context: returns both OAuth access_token and MCP API key, and sets the new organization on Trial tier with specific limits. This goes beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The first sentence states the main purpose, the second adds key return values and side effects. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown), the description does not need to explain return values. It mentions important outputs and a side effect (trial tier). For a signup completion tool, this is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents parameters. The description mentions 'verification code plus a password' but adds no additional semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Complete clariBI signup by submitting the verification code plus a password.' It clearly specifies the verb (complete signup) and resource (clariBI signup), and distinguishes from the sibling tool 'register_account' by referencing the pending_id from it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage after register_account, providing clear context for when to use. It does not explicitly state when not to use, but the purpose is unambiguous given the sibling set.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources