Skip to main content
Glama

Costory: Your Finops MCP

create_event

Create a new event to annotate a cost change. Use this when the user wants to document why costs changed — e.g. a deployment, migration, pricing update, or business decision. Events are displayed on cost charts as annotations so the team can correlate cost movements with real-world changes. STRONGLY RECOMMENDED: provide a "widget" definition describing the chart this event explains — this creates a visual annotation tied directly to the relevant cost movement. Omit widget only for purely informational org-wide events. Optionally attach tags (string labels such as "migration" or "scaling") to the event — call list_tags to discover existing tag values in the org before inventing new ones. Optionally attach metadata key-value pairs (e.g. link to a PR, owner, external reference) — metadata.source is reserved/system-managed and should not be set by agents. EXAMPLE: "Log the Kubernetes migration we did last Tuesday" → { name: "Kubernetes cluster migration", date: "2026-03-18", description: "Migrated from k8s v1.27 to v1.30, caused temporary node scaling cost spike", category: "TECHNICAL", tags: ["migration"], metadata: { link: "https://github.com/acme/infra/pull/42", owner: "platform-team" }, widget: { title: "K8s node cost", queries: [{ type: "cost", name: "a", metricId: "cost", currency: "USD", filterCel: "cos_service_name in ["AmazonEC2"]" }], from: "2026-03-10", to: "2026-03-25", aggBy: "Day" } }

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateYesEvent date (YYYY-MM-DD)
nameYesEvent name (min 5 characters)
slugNoOrganization slug. Omit to auto-detect from your account (fails if you belong to multiple orgs).
tagsNoTags to attach to the event (e.g. 'migration', 'scaling'). Use list_tags to discover existing tag values.
widgetNoAnnotation chart for the event. Same shape as the `query` tool (`queries`, `datePreset` or `from`/`to`, `aggBy`, `compare`, `limit`, `scopeId`) plus `title` and optional `description`. Providing a widget creates a visual annotation so the team can see which cost movement the event documents. On create: STRONGLY RECOMMENDED; omit only for truly org-wide events with no cost chart. On update: omit to leave existing annotation charts unchanged; pass widgetEventId when the event has multiple charts.
categoryNoBUSINESS = org/budget change, TECHNICAL = deployment/infra change, PROVIDER = cloud provider updateTECHNICAL
metadataNoOptional key-value metadata (e.g. link, owner, event). source is always set to api.
descriptionYesWhat happened and why it affects costs

TDQS

A5/5.0
Behavior5/5

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

Annotations (readOnlyHint:false, destructiveHint:false) already indicate a write operation, and the description consistently says 'Create.' It adds extra behavioral context: the widget creates a visual annotation tied to cost movement, metadata.source is reserved/system-managed and must not be set by agents, and tag values should be discovered via list_tags rather than invented. This significantly enriches understanding of side effects and constraints.

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

Conciseness5/5

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

The description is front-loaded with a clear purpose, then logically progresses to usage guidance, parameter tips, and a compact example. Every sentence adds value: the widget guidance, tag discovery, metadata.source warning, and example all earn their place. While longer than average, it is appropriately sized for a tool with 8 parameters and nested objects.

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

Completeness5/5

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

Given the tool's complexity (8 params, nested objects, no output schema), the description is remarkably complete. It covers when to use, how to construct a widget, tag conventions, metadata constraints, and provides a complete JSON example. It leaves little ambiguity about what the agent should provide in various scenarios, making it fully actionable.

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

Parameters5/5

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

Schema coverage is 100%, but the description goes far beyond baseline by providing a full worked example, explaining the widget object shares shape with the query tool, clarifying the use of tags with list_tags, and warning about metadata.source. This adds substantial semantic meaning to the parameters, especially for nested objects like widget and metadata.

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 opens with 'Create a new event to annotate a cost change,' which is a specific verb+resource+scope statement. It clearly distinguishes from sibling create tools like create_alert, create_dashboard, and create_report by focusing on cost-change annotation. The additional context about displaying events on cost charts reinforces the tool's unique role.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Use this when the user wants to document why costs changed — e.g. a deployment, migration, pricing update, or business decision.' It also provides conditional guidance: 'Omit widget only for purely informational org-wide events,' and recommends calling list_tags to discover existing tags. This constitutes clear context and exclusions, well beyond a vague 'use this for events.'

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

Tools are organized by resource (alerts, dashboards, reports, events, virtual dimensions) with distinct actions, so most are clearly separable. The main confusion risks are the three report-delivery side-effect tools (run_report_now, retry_report_execution, transfer_report_execution) and the generic get that spans five resource types, though detailed descriptions mitigate these.

Naming Consistency4/5

The dominant verb_noun pattern (create_*, list_*, update_*, preview_*, get_*) is consistent and predictable across the set. Deviations like bare verbs query/search/get and the noun-only virtual_dimension_overlap_matrix are readable but break the otherwise uniform convention.

Tool Count3/5

44 tools is heavy and exceeds the comfortable range, but the server covers a genuinely broad FinOps platform spanning querying, dashboards, reports, alerts, events, virtual dimensions, docs, skills, and suggestions. Each tool has a distinct job, though the sheer count makes agent navigation harder.

Completeness3/5

Core workflows are well covered: query → dashboard/report/alert/event, plus a full virtual-dimension draft lifecycle. Notable gaps include alerts being create-only with no update/delete, no deletes for dashboards/events/published virtual dimensions, and budget management limited to query/get with no create/update.

Resources