clariBI.com
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.
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.
Tool Definition Quality
Average 4.2/5 across 26 of 26 tools scored. Lowest: 3.6/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.
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').
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.
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 toolscheck_integration_statusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| handoff_id | Yes | The id returned by request_oauth_integration_url. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Failure reason when status is "failed". |
| status | Yes | One of pending, connected, failed, expired. |
| provider | Yes | |
| created_at | No | |
| handoff_id | Yes | |
| completed_at | No | |
| connection_id | No | |
| data_source_id | No | The created data source, present once status is "connected". |
| integration_type | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_pricingARead-onlyIdempotentInspect
List clariBI subscription tiers with prices, AI credits, data source limits, user limits, and headline features. No authentication required.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | No | Optional. Return only this tier (free, trial, lite, starter, professional, enterprise). |
Output Schema
| Name | Required | Description |
|---|---|---|
| tiers | Yes | |
| currency | Yes | ISO currency code, always "USD". |
| billing_url | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tier | Yes | Target subscription tier. | |
| billing_period | No | Billing cadence for the checkout. Defaults to monthly. | monthly |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | Yes | |
| session_id | Yes | Stripe Checkout Session id. |
| checkout_url | Yes | Stripe Checkout URL. Open in a browser to complete payment. |
| billing_period | Yes | monthly or yearly. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| source_id | Yes | UUID of the report, dashboard, goal, or data source. | |
| transform | No | Series transform applied before fitting. Log helps revenue/traffic series with growing variance. Auto detects when log is beneficial; none forces raw scale. | auto |
| aggregation | No | How multiple raw points falling into the same bucket are combined. Auto picks sum for additive metrics, mean otherwise. Use Mean for rates (CTR, conversion, latency). | auto |
| description | No | ||
| granularity | No | Bucket size for the time series. Hourly requires an hourly data source; the engine refuses to fabricate hourly buckets from daily data. | daily |
| metric_path | Yes | Dot-path to the numeric column. For data_source: the metric key (e.g. "revenue"). For goal: "value" or "percentage". For report: the path inside the insights JSON. For dashboard: "widget_id:metric_name". | |
| source_type | Yes | Which clariBI artifact the metric lives on. Most callers should start with data_source for raw connector metrics or goal to forecast a tracked KPI. | |
| horizon_days | No | How many BUCKETS ahead to project. The per-granularity cap applies: hourly 168, daily 90, weekly 52, monthly 24, quarterly 8, annual 5. The field name is "_days" for backwards compatibility — it counts buckets of the chosen granularity. | |
| non_negative | No | When true, point + lower band clamped at zero. Omit to let the engine heuristic decide (via non_negative_auto=true). | |
| method_override | No | Force a specific forecasting method instead of auto-selecting via walk-forward CV. Valid names: naive, seasonal_naive, moving_average, drift, linear_trend, ar_p, holt_winters, holt_winters_multiplicative, holt_winters_damped, theta, gradient_boost, ensemble_top3. Empty = auto. | |
| include_anomalies | No | ||
| narration_enabled | No | When 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_auto | No | When true (default), the backend heuristic owns non_negative and re-evaluates per run based on the metric path. Set false alongside non_negative to lock the choice. | |
| schedule_frequency | No | How often the forecast re-runs. Manual schedules only run when called explicitly via run_forecast. | monthly |
| include_changepoints | No | ||
| include_correlations | No | ||
| schedule_day_of_week | No | ||
| schedule_day_of_month | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| web_url | Yes | |
| granularity | No | |
| next_run_at | No | |
| horizon_days | Yes | |
| metric_label | No | |
| schedule_frequency | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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".
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Display title for the generated report. | |
| template_id | No | Optional registry ID of the marketplace template to render. If omitted, an empty report shell is created and you can attach a template later from the web app. | |
| output_format | No | Output format. Must match one of ``GeneratedReport.OUTPUT_FORMATS``. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | Initial status, normally "pending". Poll get_report for progress. |
| web_url | Yes | |
| report_id | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_statusARead-onlyIdempotentInspect
Check the status of a previously-dispatched run_analysis job. Returns the analysis result if completed.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes | job_id returned by a prior run_analysis call. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Failure reason. Present when status is "failed". |
| job_id | Yes | |
| result | No | Analysis envelope. Present when status is "completed". |
| status | Yes | |
| progress | Yes | Completion fraction or percentage reported by the job. |
| current_step | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_statusARead-onlyIdempotentInspect
Get the organization's billing status — tier, renewal date, and upgrade options.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| billing_url | Yes | |
| trial_ends_at | No | |
| price_yearly_usd | Yes | |
| price_monthly_usd | Yes | |
| subscription_tier | Yes | |
| subscription_status | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_dashboardARead-onlyIdempotentInspect
Fetch one dashboard by ID. Includes widget definitions, the most recent refresh data, and the web URL.
| Name | Required | Description | Default |
|---|---|---|---|
| dashboard_id | Yes | UUID of the dashboard to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| status | Yes | Dashboard lifecycle status. |
| web_url | Yes | |
| is_public | Yes | |
| created_at | No | |
| updated_at | No | |
| description | No | |
| last_refresh | No | |
| configuration | No | Dashboard layout and widget configuration. |
| analysis_metadata | No | AnalysisEngine envelope captured when the dashboard was created. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_schemaARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| data_source_id | Yes | UUID of the data source to fetch the schema for. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| schema | Yes | Schema-shaped fields the preprocessing pipeline wrote into the source metadata (columns, column_types, sample_rows, row_count, ...). Empty until preprocessing has run or for source types with no column inventory. |
| status | Yes | |
| source_type | Yes | |
| last_sync_at | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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_forecastARead-onlyIdempotentInspect
Fetch one forecast configuration by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| forecast_id | Yes | UUID of the forecast to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| web_url | Yes | |
| is_active | No | |
| source_id | No | |
| transform | No | auto / none / log |
| created_at | No | |
| updated_at | No | |
| aggregation | No | auto / sum / mean / last / max |
| description | No | |
| granularity | No | One of: hourly, daily, weekly, monthly, quarterly, annual. |
| metric_path | Yes | |
| next_run_at | No | |
| source_type | Yes | One of: report, dashboard, goal, data_source. |
| horizon_days | Yes | |
| metric_label | No | |
| non_negative | No | |
| latest_run_id | No | |
| method_override | No | |
| include_anomalies | No | |
| latest_run_status | No | pending, running, completed, failed, refunded. |
| narration_enabled | No | |
| non_negative_auto | No | |
| schedule_frequency | No | daily, weekly, monthly, or manual. |
| include_changepoints | No | |
| include_correlations | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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_runARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | UUID of the run. Pass 'latest' to fetch the most recent run for the forecast. | |
| forecast_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| result | No | Forecast envelope. Contains keys: target, correlations, anomalies, changepoints, meta, and (when narration ran) narration. `target` carries lower/upper plus calibrated lower_50/upper_50, lower_80/upper_80, lower_95/upper_95 bands, the winning method, exogenous_driver when a leading-indicator was used, ensemble_components when the ensemble method won, transform applied, and non_negative flag. See docs/MCP_SERVER.md for the shape. |
| status | Yes | |
| trigger | No | |
| narration | No | Peer of result.narration for convenience. Null when the run pre-dates narration OR was gated out (insufficient credits, org disabled, etc.). |
| created_at | No | |
| duration_ms | No | |
| forecast_id | Yes | |
| completed_at | No | |
| error_message | No | |
| credits_consumed | No | |
| credits_refunded | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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_trustARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| forecast_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes | Per-past-run accuracy ordered oldest-first. Each row compares one prior run's forecast against actuals that have since materialized. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_reportARead-onlyIdempotentInspect
Fetch one generated report by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| report_id | Yes | UUID of the report to fetch. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| title | Yes | |
| status | Yes | |
| web_url | Yes | |
| insights | No | Narrative insight blocks, when generated. |
| created_at | No | |
| description | No | |
| completed_at | No | |
| download_url | No | Present only once status is "completed". |
| output_format | No | |
| output_file_path | No | |
| report_period_end | No | |
| report_period_start | No | |
| data_quality_metrics | No | Per-source data-quality stats captured at generation time. |
Tool Definition Quality
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.
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.
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.
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.
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.
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_usageARead-onlyIdempotentInspect
Get the organization's current AI credit usage, data source count, user count, and rate-limit headroom.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| max_users | No | |
| trial_ends_at | No | |
| ai_credits_used | Yes | |
| ai_credits_limit | Yes | |
| storage_gb_limit | No | |
| data_sources_used | No | |
| subscription_tier | Yes | |
| data_sources_limit | No | |
| subscription_status | Yes | |
| ai_credits_remaining | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public http(s) URL of the file to ingest. The server fetches it once at call time; the URL is not re-fetched on subsequent analyses. Private networks (RFC 1918, loopback, link-local, cloud metadata) are blocked. | |
| name | Yes | Display name for the new data source. | |
| format | No | Optional format hint. If omitted, the server infers it from the Content-Type header and URL extension. | |
| description | No | Optional human note stored on the data source. | |
| wait_seconds | No | Seconds to block waiting for preprocessing before returning. 0 returns immediately. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| format | Yes | Detected file format (csv, json, xlsx, ...). |
| status | Yes | Preprocessing status. Poll get_data_source_schema until "active". |
| web_url | No | |
| raw_data_id | Yes | |
| bytes_fetched | Yes | |
| data_source_id | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_dashboardsARead-onlyIdempotentInspect
List dashboards in your clariBI organization. Returns id, name, status, last refresh, and a URL you can open in a browser.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1–100). | |
| offset | No | Row offset for pagination. | |
| search | No | Optional substring match against dashboard name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| limit | Yes | |
| total | Yes | Total dashboards matching the query. |
| offset | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_sourcesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1-100). | |
| offset | No | Row offset for pagination. | |
| source_type | No | Filter by source_type (csv, postgresql, google_ads, meta_ads, jira, mcp, …). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| limit | Yes | |
| total | Yes | Total data sources matching the query. |
| offset | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_forecastsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1-100). | |
| offset | No | Row offset for pagination. | |
| is_active | No | Filter by active forecasts. Omit to include both active and paused. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| limit | Yes | |
| total | Yes | |
| offset | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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_reportsARead-onlyIdempotentInspect
List generated reports in your clariBI organization. Returns id, title, status, output format, and download URL.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1-100). | |
| offset | No | Row offset for pagination. | |
| status | No | Filter by status (pending, generating, completed, failed, cancelled). |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| limit | Yes | |
| total | Yes | Total reports matching the query. |
| offset | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_id | Yes | UUID of a COMPLETED run. Use get_forecast_run with run_id='latest' first if you want the most recent. | |
| forecast_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| narration | Yes | Narration payload (summary, highlights, risks, recommendations, methodology_note, credits_consumed, model_used, generated_at, fallback_reason). fallback_reason is null on success; one of 'insufficient_credits', 'llm_failed', 'disabled', 'org_disabled' when narration was skipped. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Work email for the new account. | ||
| last_name | No | User's last name (optional). | |
| first_name | No | User's first name (optional). | |
| accept_terms | Yes | Must be true. By passing true the user agrees to https://claribi.com/terms and https://claribi.com/privacy. | |
| organization_name | Yes | Display name for the organization workspace. |
Output Schema
| Name | Required | Description |
|---|---|---|
| No | ||
| next_step | Yes | Next tool to call: "verify_email" for a fresh signup, else "check_inbox". |
| pending_id | Yes | Pass to verify_email. Null when no new registration was created. |
| expires_in_seconds | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | OAuth provider to authorize. Currently supports the native-OAuth catalog: Google (Ads, Analytics 4, Search Console, Sheets, Drive, BigQuery), Meta Ads, and Atlassian Jira / Confluence. | |
| integration_type | No | Per-provider sub-type. Google accepts google_ads, gsheets, ga4, gsc, gdrive, bigquery, gcs, gcp, basic. Meta accepts ads or basic. Jira and Confluence accept basic. Defaults to basic. |
Output Schema
| Name | Required | Description |
|---|---|---|
| provider | Yes | |
| next_step | Yes | Tool to call next, normally "check_integration_status". |
| handoff_id | Yes | |
| authorize_url | Yes | Open in a browser to grant consent. |
| integration_type | Yes | |
| expires_in_seconds | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Natural language question to analyze. E.g. "What was revenue last quarter by region?". | |
| session_id | No | Optional existing conversation session UUID. | |
| wait_seconds | No | How long (seconds) to wait for the job to finish before returning a job_id for polling. 0 = always return immediately. |
Output Schema
| Name | Required | Description |
|---|---|---|
| job_id | Yes | |
| result | No | Analysis envelope (headline metric, chart data, follow-ups). Present when status is "completed". |
| status | Yes | Job status, e.g. "completed", "running", "queued". |
| poll_url | No | Present when the job is still running. Poll get_analysis_status instead for structured progress. |
| ai_credits_used | No | |
| ai_credits_limit | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| forecast_id | Yes | ||
| wait_seconds | No | Seconds to wait for the run to finish before returning a poll handle. 0 = return immediately with the run_id. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | No | Present when status reaches "completed". |
| run_id | Yes | |
| status | Yes | pending while queued, running mid-execution, completed/failed/refunded when terminal. |
| poll_tool | No | Tool to poll if the run is still running ("get_forecast_run"). |
| credits_consumed | No | |
| credits_refunded | No | |
| credits_reserved | No |
Tool Definition Quality
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name for the new data source. Shown in the web app and in subsequent list_data_sources calls. | |
| format | Yes | File format. Drives MIME detection and the preprocessing route inside clariBI. csv covers comma-separated; tsv is tab-separated; xlsx is modern Excel; json must be a top-level array of objects or a single object. | |
| data_base64 | Yes | Base64-encoded file contents. Maximum 25 MB encoded (~18 MB raw). For larger payloads, host the file at a public URL and use ingest_url_data_source. | |
| description | No | Optional human-readable description. Surfaces in the web app and in get_data_source_schema. | |
| wait_seconds | No | How long (seconds) to wait for preprocessing to finish before returning. 0 returns immediately with status="preprocessing"; the caller polls get_data_source_schema or list_data_sources. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | Yes | |
| format | Yes | Detected file format (csv, json, xlsx, ...). |
| status | Yes | Preprocessing status. Poll get_data_source_schema until "active". |
| web_url | No | |
| raw_data_id | Yes | |
| bytes_uploaded | Yes | |
| data_source_id | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | 6-digit verification code from the email. | |
| password | Yes | A password for the new account. Must be at least 8 characters and pass Django's standard validators. | |
| pending_id | Yes | The pending_id returned by register_account. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tier | Yes | New organization tier, always "trial". |
| scope | Yes | Space-separated granted scopes. |
| user_id | Yes | |
| expires_in | Yes | Access-token lifetime in seconds. |
| next_steps | No | |
| token_type | Yes | Always "Bearer". |
| mcp_api_key | Yes | Long-lived API key (claribi_mcp_...) for persistent client config. |
| access_token | Yes | OAuth bearer token for this conversation. |
| mcp_api_key_id | Yes | |
| organization_id | Yes |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!