Skip to main content
Glama
ChronulusAI

Chronulus MCP Server

Official

Quickstart: Claude for Desktop

Install

Claude for Desktop is currently available on macOS and Windows.

Install Claude for Desktop here

Configuration

Follow the general instructions here to configure the Claude desktop client.

You can find your Claude config at one of the following locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

Then choose one of the following methods that best suits your needs and add it to your claude_desktop_config.json

(Option 1) Install release from PyPI

pip install chronulus-mcp

(Option 2) Install from Github

git clone https://github.com/ChronulusAI/chronulus-mcp.git
cd chronulus-mcp
pip install .
{
  "mcpServers": {
    "chronulus-agents": {
      "command": "python",
      "args": ["-m", "chronulus_mcp"],
      "env": {
        "CHRONULUS_API_KEY": "<YOUR_CHRONULUS_API_KEY>"
      }
    }
  }
}

Note, if you get an error like "MCP chronulus-agents: spawn python ENOENT", then you most likely need to provide the absolute path to python. For example /Library/Frameworks/Python.framework/Versions/3.11/bin/python3 instead of just python

Here we will build a docker image called 'chronulus-mcp' that we can reuse in our Claude config.

git clone https://github.com/ChronulusAI/chronulus-mcp.git
cd chronulus-mcp
 docker build . -t 'chronulus-mcp'

In your Claude config, be sure that the final argument matches the name you give to the docker image in the build command.

{
  "mcpServers": {
    "chronulus-agents": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "-e", "CHRONULUS_API_KEY", "chronulus-mcp"],
      "env": {
        "CHRONULUS_API_KEY": "<YOUR_CHRONULUS_API_KEY>"
      }
    }
  }
}

uvx will pull the latest version of chronulus-mcp from the PyPI registry, install it, and then run it.

{
  "mcpServers": {
    "chronulus-agents": {
      "command": "uvx",
      "args": ["chronulus-mcp"],
      "env": {
        "CHRONULUS_API_KEY": "<YOUR_CHRONULUS_API_KEY>"
      }
    }
  }
}

Note, if you get an error like "MCP chronulus-agents: spawn uvx ENOENT", then you most likely need to either:

  1. install uv or

  2. Provide the absolute path to uvx. For example /Users/username/.local/bin/uvx instead of just uvx

Additional Servers (Filesystem, Fetch, etc)

In our demo, we use third-party servers like fetch and filesystem.

For details on installing and configure third-party server, please reference the documentation provided by the server maintainer.

Below is an example of how to configure filesystem and fetch alongside Chronulus in your claude_desktop_config.json:

{
  "mcpServers": {
    "chronulus-agents": {
      "command": "uvx",
      "args": ["chronulus-mcp"],
      "env": {
        "CHRONULUS_API_KEY": "<YOUR_CHRONULUS_API_KEY>"
      }
    },
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/path/to/AIWorkspace"
      ]
    },
    "fetch": {
      "command": "uvx",
      "args": ["mcp-server-fetch"]
    }
  }
} 

Claude Preferences

To streamline your experience using Claude across multiple sets of tools, it is best to add your preferences to under Claude Settings.

You can upgrade your Claude preferences in a couple ways:

  • From Claude Desktop: Settings -> General -> Claude Settings -> Profile (tab)

  • From claude.ai/settings: Profile (tab)

Preferences are shared across both Claude for Desktop and Claude.ai (the web interface). So your instruction need to work across both experiences.

Below are the preferences we used to achieve the results shown in our demos:

## Tools-Dependent Protocols
The following instructions apply only when tools/MCP Servers are accessible.

### Filesystem - Tool Instructions
- Do not use 'read_file' or 'read_multiple_files' on binary files (e.g., images, pdfs, docx) .
- When working with binary files (e.g., images, pdfs, docx) use 'get_info' instead of 'read_*' tools to inspect a file.

### Chronulus Agents - Tool Instructions
- When using Chronulus, prefer to use input field types like TextFromFile, PdfFromFile, and ImageFromFile over scanning the files directly.
- When plotting forecasts from Chronulus, always include the Chronulus-provided forecast explanation below the plot and label it as Chronulus Explanation.

Available Tools

9 tools
create_chronulus_sessionA

A tool that creates a new Chronulus Session and returns a session_id

When to use this tool:

  • Use this tool when a user has requested a forecast or prediction for a new use case

  • Before calling this tool make sure you have enough information to write a well-defined situation and task. You might need to ask clarifying questions in order to get this from the user.

  • The same session_id can be reused as long as the situation and task remain the same

  • If user wants to forecast a different use case, create a new session and then use that

How to use this tool:

  • To create a session, you need to provide a situation and task that describe the forecasting use case

  • If the user has not provided enough detail for you to decompose the use case into a situation (broad or background context) and task (specific requirements for the forecast), ask them to elaborate since more detail will result in a better / more accurate forecast.

  • Once created, this will generate a unique session_id that can be used to when calling other tools about this use case.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesA short descriptive name for the use case defined in the session.
situationYesThe broader context for the use case
taskYesSpecific details on the forecasting or prediction task.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well: it discloses that the tool creates a session (implying a write operation), returns a unique session_id, and that sessions are reusable under certain conditions. It could improve by mentioning potential errors, rate limits, or authentication needs, but covers key behavioral aspects like creation and reuse.

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

Conciseness4/5

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

The description is well-structured with clear sections ('When to use this tool', 'How to use this tool') and front-loaded purpose. It could be more concise by reducing repetition (e.g., 'ask clarifying questions' appears twice) and trimming explanatory details that might be inferred, but overall it's efficient and organized.

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

Completeness4/5

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

For a creation tool with no annotations and no output schema, the description provides good context: it explains the purpose, usage guidelines, behavioral traits (creation, session_id return, reuse), and parameter expectations. It could be more complete by detailing output format or error handling, but covers most essentials given the complexity.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (name, situation, task). The description adds some context by explaining that situation is 'broad or background context' and task is 'specific requirements for the forecast', but this largely reiterates schema descriptions. Baseline 3 is appropriate as schema does heavy lifting.

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

Purpose5/5

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

The description explicitly states the tool 'creates a new Chronulus Session and returns a session_id', providing a specific verb ('creates') and resource ('Chronulus Session'). It distinguishes this from sibling tools like 'create_forecasting_agent_and_get_forecast' by focusing on session creation rather than forecasting or prediction generation directly.

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

Usage Guidelines5/5

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

The description includes a dedicated 'When to use this tool' section with explicit guidance: use for new forecasting/prediction use cases, ensure sufficient information first, reuse session_id for same situation/task, and create new sessions for different use cases. It also implies alternatives by noting session reuse and distinguishing from other tools that might handle forecasting directly.

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

create_forecasting_agent_and_get_forecastA

This tool creates a NormalizedForecaster agent with your session and input data model and then provides a forecast input data to the agent and returns the prediction data and text explanation from the agent.

When to use this tool:

  • Use this tool to request a forecast from Chronulus

  • This tool is specifically made to forecast values between 0 and 1 and does not require historical data

  • The prediction can be thought of as seasonal weights, probabilities, or shares of something as in the decimal representation of a percent

How to use this tool:

  • First, make sure you have a session_id for the forecasting or prediction use case.

  • Next, think about the features / characteristics most suitable for producing the requested forecast and then create an input_data_model that corresponds to the input_data you will provide for the thing being forecasted.

  • Remember to pass all relevant information to Chronulus including text and images provided by the user.

  • If a user gives you files about a thing you are forecasting or predicting, you should pass these as inputs to the agent using one of the following types:

    • ImageFromFile

    • List[ImageFromFile]

    • TextFromFile

    • List[TextFromFile]

    • PdfFromFile

    • List[PdfFromFile]

  • If you have a large amount of text (over 500 words) to pass to the agent, you should use the Text or List[Text] field types

  • Finally, add information about the forecasting horizon and time scale requested by the user

  • Assume the dates and datetimes in the prediction results are already converted to the appropriate local timezone if location is a factor in the use case. So do not try to convert from UTC to local time when plotting.

  • When plotting the predictions, use a Rechart time series with the appropriate axes labeled and with the prediction explanation displayed as a caption below the plot

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session_id for the forecasting or prediction use case
input_data_modelYesMetadata on the fields you will include in the input_data.
input_dataYesThe forecast inputs that you will pass to the chronulus agent to make the prediction. The keys of the dict should correspond to the InputField name you provided in input_fields.
forecast_start_dt_strYesThe datetime str in '%Y-%m-%d %H:%M:%S' format of the first value in the forecast horizon.
time_scaleNoThe times scale of the forecast horizon. Valid time scales are 'hours', 'days', and 'weeks'.days
horizon_lenNoThe integer length of the forecast horizon. Eg., 60 if a 60 day forecast was requested.

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral aspects: it creates an agent (implies stateful operation), specifies the forecast value range (0-1), mentions no historical data requirement, describes how to handle files and large text, and provides guidance on timezone handling and plotting. However, it doesn't mention potential rate limits, error conditions, or performance characteristics.

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

Conciseness3/5

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

The description is well-structured with clear sections ('When to use', 'How to use'), but is quite lengthy with multiple paragraphs of detailed instructions. Some information (like plotting guidance) may be better placed elsewhere. While informative, it could be more concise by focusing only on essential guidance for tool invocation rather than downstream usage instructions.

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

Completeness4/5

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

For a complex tool with 6 parameters, nested objects, and no output schema, the description provides substantial context about what the tool does, when to use it, and how to prepare inputs. It compensates well for the lack of output schema by describing what gets returned (prediction data and text explanation). The main gap is lack of explicit differentiation from the 'reuse_forecasting_agent_and_get_forecast' sibling tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds some context about how to think about input_data_model creation and provides examples of field types, but doesn't add significant semantic meaning beyond what's in the schema. The baseline of 3 is appropriate given the comprehensive schema coverage.

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

Purpose4/5

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

The description clearly states the tool creates a NormalizedForecaster agent and provides a forecast, with specific mention of returning prediction data and text explanation. It distinguishes from some siblings by focusing on forecasting (vs. prediction or risk assessment), but doesn't explicitly differentiate from 'reuse_forecasting_agent_and_get_forecast' which appears to be a similar tool.

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

Usage Guidelines5/5

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

The description includes explicit 'When to use this tool' section with three specific use cases, including constraints (forecast values between 0 and 1, no historical data required). It also provides a detailed 'How to use this tool' section with step-by-step guidance, though it doesn't explicitly mention when to choose this tool over sibling alternatives like 'reuse_forecasting_agent_and_get_forecast'.

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

create_prediction_agent_and_get_predictionsA

This tool creates a BinaryPredictor agent with your session and input data model and then provides prediction input data to the agent and returns the consensus a prediction from a panel of experts along with their individual estimates and text explanations. The agent also returns the alpha and beta parameters for a Beta distribution that allows you to estimate the confidence interval of its consensus probability estimate.

When to use this tool:

  • Use this tool to request a probability estimate from Chronulus in situation when there is a binary outcome

  • This tool is specifically made to estimate the probability of an event occurring and not occurring and does not require historical data

How to use this tool:

  • First, make sure you have a session_id for the prediction use case.

  • Next, think about the features / characteristics most suitable for producing the requested prediction and then create an input_data_model that corresponds to the input_data you will provide for the thing or event being predicted.

  • Remember to pass all relevant information to Chronulus including text and images provided by the user.

  • If a user gives you files about a thing you are forecasting or predicting, you should pass these as inputs to the agent using one of the following types:

    • ImageFromFile

    • List[ImageFromFile]

    • TextFromFile

    • List[TextFromFile]

    • PdfFromFile

    • List[PdfFromFile]

  • If you have a large amount of text (over 500 words) to pass to the agent, you should use the Text or List[Text] field types

  • Finally, provide the number of experts to consult. The minimum and default number is 2, but users may request up to 30 30 opinions in situations where reproducibility and risk sensitively is of the utmost importance. In most cases, 2 to 5 experts is sufficient.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session_id for the forecasting or prediction use case
input_data_modelYesMetadata on the fields you will include in the input_data.
input_dataYesThe forecast inputs that you will pass to the chronulus agent to make the prediction. The keys of the dict should correspond to the InputField name you provided in input_fields.
num_expertsYesThe number of experts to consult when forming consensus

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by explaining the creation of an agent, consensus mechanism, expert panel approach, Beta distribution parameters for confidence intervals, and file handling guidelines. It doesn't mention rate limits, authentication needs, or error conditions, keeping it from a perfect score.

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

Conciseness3/5

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

The description is well-structured with clear sections (purpose, when to use, how to use) but contains some redundancy and could be more concise. Sentences like 'Remember to pass all relevant information...' could be tightened, and the file type listing is detailed but necessary.

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

Completeness4/5

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

For a complex tool with 4 parameters, nested objects, and no output schema, the description provides substantial context about the prediction process, expert consensus mechanism, Beta distribution outputs, and file handling. It adequately compensates for the lack of output schema and annotations, though could mention error cases or response format.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds some context about session_id usage, input_data_model creation, and num_expert guidelines (2-30 range, 2-5 typically sufficient), but doesn't provide significant additional semantics beyond what the schema already documents.

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

Purpose5/5

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

The description clearly states the tool creates a BinaryPredictor agent and provides predictions with consensus from experts, including individual estimates and explanations. It distinguishes from siblings like 'create_forecasting_agent_and_get_forecast' by specifying binary outcomes and no historical data requirement.

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

Usage Guidelines5/5

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

The description explicitly includes 'When to use this tool' section, specifying it's for binary outcome probability estimates without historical data. It distinguishes from alternatives by mentioning specific use cases and provides clear context for 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.

get_risk_assessment_scorecardA

A tool that retrieves the risk assessment scorecard for the Chronulus Session in Markdown format

When to use this tool:

  • Use this tool when the use asks about the risk level or safety concerns of a forecasting use case

  • You may also use this tool to provide justification to a user if you would like to warn them of the implications of what they are asking you to forecasting or predict.

How to use this tool:

  • Make sure you have a session_id for the forecasting or prediction use case

  • When displaying the scorecard markdown for the user, you should use an MDX-style React component

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesThe session_id for the forecasting or prediction use case
as_jsonYesIf true, returns the scorecard in JSON format, otherwise returns a markdown formatted scorecard

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that the tool retrieves data (implying read-only) and mentions output formats (Markdown/JSON), but lacks details on permissions, rate limits, error handling, or what the scorecard contains. It adds some context (e.g., format options) but doesn't fully compensate for the missing annotations.

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

Conciseness4/5

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

The description is well-structured with clear sections ('When to use this tool' and 'How to use this tool'), and sentences are purposeful. However, it includes implementation advice ('use an MDX-style React component') that may be unnecessary for tool selection, slightly reducing efficiency.

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

Completeness3/5

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

Given no annotations and no output schema, the description is moderately complete. It covers purpose, usage, and basic parameters, but lacks details on behavioral traits (e.g., auth, errors) and output structure. For a tool with 2 parameters and no structured output info, it should provide more context on what the scorecard contains or how to interpret it.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('session_id' and 'as_json'). The description adds minimal value beyond the schema: it mentions 'Markdown format' and implies JSON as an alternative, but doesn't explain parameter interactions or provide additional semantics. Baseline 3 is appropriate when schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'retrieves the risk assessment scorecard for the Chronulus Session in Markdown format'. It specifies the verb ('retrieves'), resource ('risk assessment scorecard'), and format ('Markdown format'), though it doesn't explicitly distinguish it from sibling tools like 'save_forecast' or 'save_prediction_analysis_html', which are write operations.

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

Usage Guidelines5/5

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

The description provides explicit guidance on when to use this tool: 'when the user asks about the risk level or safety concerns of a forecasting use case' and 'to provide justification... if you would like to warn them'. It clearly defines the context for usage, though it doesn't mention alternatives or exclusions, which is acceptable given the specificity of the use cases.

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

rescale_forecastA

A tool that rescales the prediction data (values between 0 and 1) from the NormalizedForecaster agent to scale required for a use case

When to use this tool:

  • Use this tool when there is enough information from the user or use cases to determine a reasonable min and max for the forecast predictions

  • Do not attempt to rescale or denormalize the predictions on your own without using this tool.

  • Also, if the best min and max for the use case is 0 and 1, then no rescaling is needed since that is already the scale of the predictions.

  • If a user requests to convert from probabilities to a unit in levels, be sure to caveat your use of this tool by noting that probabilities do not always scale uniformly to levels. Rescaling can be used as a rough first-pass estimate. But for best results, it would be better to start a new Chronulus forecasting use case predicting in levels from the start.

How to use this tool:

  • To use this tool present prediction_id from the normalized prediction and the min and max as floats

  • If the user is also changing units, consider if the units will be inverted and set the inverse scale to True if needed.

  • When plotting the rescaled predictions, use a Rechart time series plot with the appropriate axes labeled and include the chronulus prediction explanation as a caption below the plot.

  • If you would like to add additional notes about the scaled series, put these below the original prediction explanation.

ParametersJSON Schema
NameRequiredDescriptionDefault
prediction_idYesThe prediction_id from a prediction result
y_minYesThe expected smallest value for the use case. E.g., for product sales, 0 would be the least possible value for sales.
y_maxYesThe expected largest value for the use case. E.g., for product sales, 0 would be the largest possible value would be given by the user or determined from this history of sales for the product in question or a similar product.
invert_scaleNoSet this flag to true if the scale of the new units will run in the opposite direction from the inputs.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes the tool's behavior: it rescales normalized predictions, requires prediction_id and min/max values, handles unit inversion via invert_scale flag, and includes usage caveats about probability scaling. However, it doesn't mention error conditions, rate limits, or authentication needs, which would be helpful for a mutation tool.

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

Conciseness3/5

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

The description is structured with clear sections ('When to use this tool', 'How to use this tool'), which is helpful. However, it includes implementation details that don't belong in a tool description (plotting instructions with Rechart, adding notes below explanations). These sentences don't earn their place in a tool definition and make it less concise than ideal.

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

Completeness4/5

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

For a mutation tool with no annotations and no output schema, the description does a good job covering purpose, usage, and parameters. It explains the transformation behavior and includes important caveats about probability scaling. The main gap is lack of information about return values or error handling, which would be needed for full completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema: it mentions presenting prediction_id and min/max as floats, and suggests considering unit inversion for invert_scale. This doesn't significantly enhance understanding beyond what the schema provides, meeting the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'rescales the prediction data (values between 0 and 1) from the NormalizedForecaster agent to scale required for a use case.' It specifies the verb ('rescales'), resource ('prediction data'), and distinguishes from siblings by mentioning the NormalizedForecaster agent, which none of the sibling tools reference. This is specific and well-differentiated.

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

Usage Guidelines5/5

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

The description provides explicit guidance in a dedicated 'When to use this tool' section. It gives clear conditions for when to use (enough information to determine min/max), when not to use (if min/max are 0 and 1), and alternatives (starting a new Chronulus forecasting use case for better results when converting probabilities to levels). This is comprehensive usage guidance.

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

reuse_forecasting_agent_and_get_forecastA

This tool creates a NormalizedForecaster agent with your session and input data model and then provides a forecast input data to the agent and returns the prediction data and text explanation from the agent.

When to use this tool:

  • Use this tool to request a forecast from Chronulus

  • This tool is specifically made to forecast values between 0 and 1 and does not require historical data

  • The prediction can be thought of as seasonal weights, probabilities, or shares of something as in the decimal representation of a percent

How to use this tool:

  • First, make sure you have a session_id for the forecasting or prediction use case.

  • Next, think about the features / characteristics most suitable for producing the requested forecast and then create an input_data_model that corresponds to the input_data you will provide for the thing being forecasted.

  • Remember to pass all relevant information to Chronulus including text and images provided by the user.

  • If a user gives you files about a thing you are forecasting or predicting, you should pass these as inputs to the agent using one of the following types:

    • ImageFromFile

    • List[ImageFromFile]

    • TextFromFile

    • List[TextFromFile]

    • PdfFromFile

    • List[PdfFromFile]

  • If you have a large amount of text (over 500 words) to pass to the agent, you should use the Text or List[Text] field types

  • Finally, add information about the forecasting horizon and time scale requested by the user

  • Assume the dates and datetimes in the prediction results are already converted to the appropriate local timezone if location is a factor in the use case. So do not try to convert from UTC to local time when plotting.

  • When plotting the predictions, use a Rechart time series with the appropriate axes labeled and with the prediction explanation displayed as a caption below the plot

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe agent_id for the forecasting or prediction use case and previously defined input_data_model
input_dataYesThe forecast inputs that you will pass to the chronulus agent to make the prediction. The keys of the dict should correspond to the InputField name you provided in input_fields.
forecast_start_dt_strYesThe datetime str in '%Y-%m-%d %H:%M:%S' format of the first value in the forecast horizon.
time_scaleNoThe times scale of the forecast horizon. Valid time scales are 'hours', 'days', and 'weeks'.days
horizon_lenNoThe integer length of the forecast horizon. Eg., 60 if a 60 day forecast was requested.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it creates an agent and returns predictions with explanations, specifies the output range (0 to 1), handles file inputs (images, text, PDFs), manages large text inputs, includes timezone assumptions, and provides plotting guidance. However, it lacks details on error handling, rate limits, or authentication needs, which are common gaps for a tool of this complexity.

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

Conciseness3/5

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

The description is well-structured with clear sections ('When to use this tool', 'How to use this tool'), but it is overly verbose at 15+ sentences. Some details, like plotting instructions and timezone assumptions, are tangential to the core tool functionality and could be streamlined. While front-loaded with purpose, it includes unnecessary elaboration that reduces conciseness.

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

Completeness4/5

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

Given the tool's complexity (5 parameters, nested objects, no output schema, no annotations), the description provides substantial context: purpose, usage guidelines, behavioral details, and implementation steps. It compensates well for the lack of annotations and output schema by explaining what the tool does and how to use it. However, it could improve by briefly mentioning the return format or error cases to be fully complete.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal parameter semantics beyond the schema—it mentions 'agent_id' in the usage guidelines and implies 'input_data' through file handling examples, but doesn't explain parameter interactions or provide additional context. This meets the baseline of 3 when schema coverage is high.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'creates a NormalizedForecaster agent with your session and input data model and then provides a forecast input data to the agent and returns the prediction data and text explanation from the agent.' It specifies the exact action (create agent, provide forecast input, return prediction and explanation) and distinguishes it from siblings like 'create_forecasting_agent_and_get_forecast' by focusing on reusing an existing agent rather than creating a new one.

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

Usage Guidelines5/5

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

The description includes an explicit 'When to use this tool' section with three bullet points: use for forecasting from Chronulus, specifically for values between 0 and 1 without historical data, and for seasonal weights/probabilities/shares. It also distinguishes from alternatives by implying this is for reuse (vs. creation tools like 'create_forecasting_agent_and_get_forecast'), though it doesn't explicitly name alternatives, 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.

reuse_prediction_agent_and_get_predictionA

This tool provides prediction input data to a previously created Chronulus BinaryPredictor agent and returns the consensus a prediction from a panel of experts along with their individual estimates and text explanations. The agent also returns the alpha and beta parameters for a Beta distribution that allows you to estimate the confidence interval of its consensus probability estimate.

When to use this tool:

  • Use this tool to request a prediction from a Chronulus prediction agent that you have already created and when your input data model is unchanged

  • Use this tool to request a probability estimate from an existing prediction agent in a situation when there is a binary outcome

  • This tool is specifically made to estimate the probability of an event occurring and not occurring and does not require historical data

How to use this tool:

  • First, make sure you have a session_id for the prediction use case.

  • Next, think about the features / characteristics most suitable for producing the requested prediction and then create an input_data_model that corresponds to the input_data you will provide for the thing or event being predicted.

  • Remember to pass all relevant information to Chronulus including text and images provided by the user.

  • If a user gives you files about a thing you are forecasting or predicting, you should pass these as inputs to the agent using one of the following types:

    • ImageFromFile

    • List[ImageFromFile]

    • TextFromFile

    • List[TextFromFile]

    • PdfFromFile

    • List[PdfFromFile]

  • If you have a large amount of text (over 500 words) to pass to the agent, you should use the Text or List[Text] field types

  • Finally, provide the number of experts to consult. The minimum and default number is 2, but users may request up to 30 30 opinions in situations where reproducibility and risk sensitively is of the utmost importance. In most cases, 2 to 5 experts is sufficient.

How to use this tool:

  • First, make sure you have an agent_id for the prediction agent. The agent is already attached to the correct session. So you do not need to provide a session_id.

  • Next, reference the input data model that you previously used with the agent and create new input data for the item being predicted that aligns with the previously specified input data model

  • Remember to pass all relevant information to Chronulus including text and images provided by the user.

  • If a user gives you files about a thing you are forecasting or predicting, you should pass these as inputs to the agent using one of the following types:

    • ImageFromFile

    • List[ImageFromFile]

    • TextFromFile

    • List[TextFromFile]

    • PdfFromFile

    • List[PdfFromFile]

  • If you have a large amount of text (over 500 words) to pass to the agent, you should use the Text or List[Text] field types

  • Finally, provide the number of experts to consult. The minimum and default number is 2, but users may request up to 30 30 opinions in situations where reproducibility and risk sensitively is of the utmost importance. In most cases, 2 to 5 experts is sufficient.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesThe agent_id for the forecasting or prediction use case and previously defined input_data_model
input_dataYesThe forecast inputs that you will pass to the chronulus agent to make the prediction. The keys of the dict should correspond to the InputField name you provided in input_fields.
num_expertsYesThe number of experts to consult when forming consensus

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and adds significant behavioral context beyond the input schema. It explains the output includes 'consensus prediction', 'individual estimates and text explanations', and 'alpha and beta parameters for a Beta distribution' for confidence intervals. However, it lacks details on error handling, rate limits, or authentication needs, which are important for a prediction tool.

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

Conciseness2/5

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

The description is overly verbose and repetitive, with duplicated 'How to use this tool' sections that waste space. While it is well-structured with headings, many sentences could be condensed (e.g., file type lists are excessive). It fails to be front-loaded with critical information, burying key usage guidelines in lengthy instructions.

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

Completeness3/5

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

Given the tool's complexity (3 parameters, nested objects, no output schema, no annotations), the description is moderately complete. It covers purpose, usage, and behavioral output details, but lacks information on error cases, response format specifics, or performance considerations. Without an output schema, more detail on return values would be beneficial.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds some value by explaining 'agent_id' usage ('The agent is already attached to the correct session'), 'input_data' alignment with 'previously specified input data model', and 'num_experts' context ('minimum and default number is 2', 'up to 30', '2 to 5 experts is sufficient'), but these are mostly clarifications rather than essential semantics beyond the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'provides prediction input data to a previously created Chronulus BinaryPredictor agent and returns the consensus a prediction from a panel of experts along with their individual estimates and text explanations.' It specifies the verb ('provides', 'returns'), resource ('prediction agent'), and distinguishes it from siblings by emphasizing reuse of existing agents versus creation tools like 'create_prediction_agent_and_get_predictions'.

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

Usage Guidelines5/5

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

The description includes explicit 'When to use this tool' guidance: 'Use this tool to request a prediction from a Chronulus prediction agent that you have already created and when your input data model is unchanged' and 'Use this tool to request a probability estimate from an existing prediction agent in a situation when there is a binary outcome.' It also distinguishes when not to use it ('does not require historical data') and implies alternatives via sibling tool names like creation tools.

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

save_forecastA

A tool that saves a Chronulus forecast from NormalizedForecaster to separate CSV and TXT files

When to use this tool:

  • Use this tool when you need to save both the forecast data and its explanation to files

  • The forecast data will be saved as a CSV file for data analysis

  • The forecast explanation will be saved as a TXT file for reference

  • Both files will be saved in the same directory specified by output_path

  • This tool can also be used to directly save rescaled predictions without first calling the rescaling tool

How to use this tool:

  • Provide the prediction_id from a previous forecast

  • Specify the output_path where both files should be saved

  • Provide csv_name for the forecast data file (must end in .csv)

  • Provide txt_name for the explanation file (must end in .txt)

  • Optionally provide y_min and y_max to rescale the predictions (defaults to 0)

  • Set invert_scale to True if the target units run in the opposite direction

  • The tool will provide status updates through the MCP context

ParametersJSON Schema
NameRequiredDescriptionDefault
prediction_idYesThe prediction_id from a prediction result
output_pathYesThe path where the CSV file should be saved. Should end in .csv
csv_nameYesThe path where the CSV file should be saved. Should end in .csv
txt_nameYesThe name of the TXT file to be saved. Should end in .txt
y_minNoThe expected smallest value for the use case. E.g., for product sales, 0 would be the least possible value for sales.
y_maxNoThe expected largest value for the use case. E.g., for product sales, 0 would be the largest possible value would be given by the user or determined from this history of sales for the product in question or a similar product.
invert_scaleNoSet this flag to true if the scale of the new units will run in the opposite direction from the inputs.

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behaviors: it saves files to a specified directory, handles optional rescaling parameters, provides status updates via MCP context, and explains the dual-file output (CSV for data, TXT for explanation). However, it lacks details on error handling or file overwriting policies.

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

Conciseness4/5

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

The description is well-structured with clear sections ('When to use this tool', 'How to use this tool'), making it easy to scan. However, some sentences are slightly redundant (e.g., repeating file format requirements), and the overall length could be tightened without losing clarity.

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

Completeness4/5

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

For a tool with 7 parameters, no annotations, and no output schema, the description does a good job covering purpose, usage, and behavioral context. It explains the tool's role in the workflow and output behavior. However, it lacks details on the output format (e.g., CSV/TXT structure) and error scenarios, leaving some gaps in completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters thoroughly. The description adds minimal value beyond the schema, mainly reiterating parameter purposes (e.g., 'Provide csv_name for the forecast data file') without providing additional context or usage nuances. This meets the baseline for high schema coverage.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'saves a Chronulus forecast from NormalizedForecaster to separate CSV and TXT files.' It specifies the verb ('saves'), resource ('forecast'), and output formats (CSV and TXT), distinguishing it from sibling tools like 'save_prediction_analysis_html' which outputs HTML instead.

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

Usage Guidelines5/5

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

The description provides explicit guidance in a dedicated 'When to use this tool' section, listing specific scenarios (e.g., saving both data and explanation files, saving rescaled predictions without prior rescaling). It also implicitly distinguishes from alternatives by not overlapping with sibling tools focused on creation, rescaling, or HTML output.

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

save_prediction_analysis_htmlA

A tool that saves an analysis of a BinaryPredictor prediction to HTML.

The analysis includes a plot of the theoretical and empirical beta distribution estimated by Chronulus and also list the opinions provided by each expert.

When to use this tool:

  • Use this tool when you need to save the BinaryPredictor estimates to for the user

How to use this tool:

  • Provide the request_id from a previous prediction response

  • Specify the output_path where the html should be saved

  • Provide html_name for the file (must end in .html)

  • The tool will provide status updates through the MCP context

ParametersJSON Schema
NameRequiredDescriptionDefault
request_idYesThe request_id from the BinaryPredictor result
output_pathYesThe path where the HTML file should be saved.
html_nameYesThe path where the HTML file should be saved.
titleYesTitle of analysis
plot_labelYesLabel for the Beta plot
chronulus_prediction_summaryYesA summary paragraph distilling prediction results and expert opinions provided by Chronulus
dist_shapeYesA one line description of the shape of the distribution of predictions
dist_shape_interpretationYes2-3 sentences interpreting the shape of the distribution of predictions in layman's terms

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that the tool saves files to disk (implied by output_path/html_name), provides status updates through MCP context, and requires specific inputs. However, it doesn't mention error conditions, file overwrite behavior, permission requirements, or what happens if the request_id is invalid. For a file-writing tool with no annotations, this leaves important behavioral gaps.

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

Conciseness4/5

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

The description is well-structured with clear sections (purpose, when to use, how to use). It's appropriately sized at 4 paragraphs. While efficient, the 'How to use' section could be more concise by combining related points, but overall it's well-organized and front-loaded with key information.

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

Completeness3/5

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

Given 8 required parameters, no annotations, and no output schema, the description provides good usage guidance but lacks important context. It doesn't explain what the HTML output looks like beyond mentioning plots and expert opinions, doesn't cover error handling, and doesn't specify file format requirements beyond '.html' extension. For a complex tool with many parameters, this leaves significant gaps.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description mentions request_id, output_path, and html_name in the 'How to use' section, but doesn't add meaningful semantic context beyond what's in the schema. The baseline of 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'saves an analysis of a BinaryPredictor prediction to HTML' and specifies what the analysis includes (plot of distributions and expert opinions). It distinguishes from sibling tools like 'save_forecast' by focusing specifically on BinaryPredictor predictions, though it doesn't explicitly contrast with all siblings.

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

Usage Guidelines5/5

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

The description includes explicit 'When to use this tool' and 'How to use this tool' sections. It provides clear context: 'when you need to save the BinaryPredictor estimates for the user' and gives specific prerequisites (request_id from previous prediction) and usage steps. This is comprehensive guidance.

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

TDQS

A3.9/5.0
Disambiguation3/5

The tool set has clear distinctions between forecasting and prediction agents, but there is significant overlap between create_forecasting_agent_and_get_forecast and reuse_forecasting_agent_and_get_forecast, as well as between create_prediction_agent_and_get_predictions and reuse_prediction_agent_and_get_prediction. The descriptions clarify that the 'reuse' variants are for existing agents, but the purposes are nearly identical, which could cause confusion for an agent trying to select the right tool.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (e.g., create_chronulus_session, get_risk_assessment_scorecard, save_forecast). However, there are minor deviations with longer names like create_forecasting_agent_and_get_forecast and create_prediction_agent_and_get_predictions, which include 'and' and are more verbose, breaking the pattern slightly but remaining readable.

Tool Count4/5

With 9 tools, the count is reasonable for a forecasting/prediction server, covering session management, agent creation, reuse, rescaling, risk assessment, and saving outputs. It is slightly on the higher side but well-scoped for the domain, with each tool serving a distinct function in the workflow.

Completeness4/5

The tool set covers the core forecasting and prediction lifecycle, including session creation, agent operations, rescaling, risk assessment, and saving results. A minor gap is the lack of tools for updating or deleting sessions or agents, but agents can work around this by creating new sessions. The surface is largely complete for the stated purpose of probabilistic forecasting and binary prediction.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables integration with OpenAI models through the MCP protocol, supporting concise and detailed responses for use with Claude Desktop.
    1
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Connects Blender to Claude AI through the Model Context Protocol (MCP), enabling prompt-assisted 3D modeling, scene creation, and manipulation directly from Claude.
    17
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Bridges Model Context Protocol (MCP) with Google's Agent-to-Agent (A2A) protocol, enabling MCP-compatible AI assistants like Claude to discover, register, communicate with, and manage tasks on A2A agents through a unified interface.
    6
    7
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ChronulusAI/chronulus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server