An MCP Server for Chronulus AI Forecasting and Prediction Agents
chronulus-mcp has 9 tools with mostly complete schemas and descriptions, but exhibits several quality gaps. Tool naming is reasonable (action verbs present), and all tools have descriptions exceeding 20 characters. However, descriptions vary significantly in quality and LLM-optimization. Parameter schemas are present and typed, but lack consistency in constraint documentation (e.g., time_scale enum is documented but other constrained fields are not). Output schemas are not documented. Error handling guidance is absent from all tool descriptions. The server demonstrates moderate maturity but falls short of production-grade quality. Specific issues: (1) some descriptions are generic ('Rescales prediction data') without explaining WHEN to use the tool or WHAT happens next; (2) no guidance for handling failures or recovery paths; (3) tool dependencies are mentioned in __init__.py instructions but not in individual tool descriptions; (4) output structure for predictions/forecasts is not documented; (5) several tools are compound operations (create_X_and_get_Y naming pattern) that could benefit from split concerns, though this may be intentional for UX.
Creates a new Chronulus Session A Chronulus Session allows you to use Chronulus Agents. To create a session, you need to provide a situation and task. Once created, this will generate a unique session id that can be used to when calling the agents.
Queues and retrieves a forecast from Chronulus with a predefined session_id This tool creates a NormalizedForecaster agent and then provides a forecast input to the agent and returns the prediction data and text explanation from the agent.
Queues and retrieves a binary event prediction from Chronulus with a predefined session_id This tool creates a BinaryPredictor agent and then provides a prediction input to the agent and returns the prediction data and text explanations from each of the experts consulted by the agent.
Get the risk assessment scorecard for the Session
Rescales prediction data from the NormalizedForecaster agent
Compound tool names with 'and' pattern (create_X_and_get_Y) violate single-responsibility principle; agents cannot create without fetching or reuse without getting results. Consider splitting into separate create + fetch tools for more granular composition.
No output schema documentation. Tools return 'prediction data and text explanation' or 'forecast data' without specifying field names, types, or structure. LLMs cannot plan downstream calls or extract specific fields without seeing the response schema.
Error handling absent. No tool descriptions mention what happens on failure, how to recover, or when to retry. E.g., 'create_chronulus_session' may fail if situation/task are too vague, but agents have no guidance on fallback or correction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 54 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Queues and retrieves a forecast from Chronulus with a previously created agent_id This tool provides a forecast input to a previous created Chronulus NormalizedForecaster agent and returns the prediction data and text explanation from the agent.
Queues and retrieves a binary event prediction from Chronulus with a previously created agent_id This tool provides a prediction input to a previous created Chronulus BinaryPredictor agent and returns the prediction data and text explanations from each of the experts consulted by the agent.
Saves the forecast from a NormalizedForecaster agent to CSV and the explanation to TXT
Saves the analysis from a BinaryPredictor prediction to an HTML file
Generic/incomplete descriptions. 'Rescales prediction data from the NormalizedForecaster agent' (37 chars) does not explain WHEN to use (what is rescaling for?), WHEN it is needed, or what the output is. Descriptions below 50 chars that lack context reduce LLM ability to select tools correctly.
Parameter constraints not consistently enforced in descriptions. 'time_scale' correctly documents enum values (hours, days, weeks), but 'input_data' and 'input_data_model' lack validation hints. No descriptions specify if input_data fields are required or optional, or if there are size/format constraints beyond the 10MB total mentioned in server instructions.
Tool dependencies and ordering not documented. The server instructions mention 'create session first, then agent', but individual tool descriptions do not state prerequisites or ordering. Agents must infer dependencies from context rather than explicit guidance.
Missing idempotency guarantees. No tool descriptions state whether repeated calls with identical inputs produce the same result or side effects. Agents may retry on ambiguous failures, risking duplicate session/agent creation or duplicate file saves.