MCP server exposing ForexFactory calendar as resources, prompts, and tools
Single tool server with reasonable naming and schema structure, but missing critical elements. Tool name 'ffcal_get_calendar_events' follows verb_noun pattern. Input schema is present with type declarations and descriptions for all parameters. However, output schema is not documented, the function signature shows `-> list[dict]` with no field documentation, violating the 'Document the output schema' critical check. Parameter descriptions exist but lack format constraints (e.g., YYYY-MM-DD format is mentioned in description but not in schema pattern/format). Error handling exists but is basic, ValueError raised for invalid time_period lacks recovery guidance. No pagination parameters despite the tool clearly returning potentially large lists of events. Tool description is adequate (194 chars) but could be more explicit about when to use it. Overall assessment: functional but incomplete by production standards.
Retrieve ForexFactory calendar events for a given time period or custom date range.Valid `time_period` values include: today, tomorrow, yesterday, this_week, next_week, last_week, this_month, next_month, last_month, custom.
Output schema not documented. Function returns `list[dict]` with no specification of field names, types, or structure. LLMs cannot plan downstream operations or extract required data without knowing what fields to expect.
No pagination support. Tool returns calendar events which could be hundreds or thousands of items, but provides no limit, offset, or cursor parameters. Large result sets will exhaust context window. Rubric baseline: tools returning lists MUST accept page/offset and limit parameters.
Parameter format constraints not declared in schema. 'start_date' and 'end_date' descriptions mention YYYY-MM-DD but schema has no pattern or format constraint. LLMs cannot validate input format themselves, must be enforced by schema.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 41 | - | v1 |
Error handling lacks recovery guidance. ValueError for invalid time_period does not suggest alternatives like discovery tools.
Parameter dependency not explicitly documented in schema. 'start_date' and 'end_date' are required IF time_period='custom' but this conditional relationship is only in description, not enforced by required field logic. Schema shows all three params as non-required.