Skip to main content
Glama

indico_create_contribution

Create an unscheduled Indico contribution with optional speakers, session, duration, and description; then schedule it into the timetable.

Instructions

Create an unscheduled contribution. Use indico_schedule_contribution to place it in the timetable.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
titleYes
personsNo
event_idYesIndico event id (the number in /event/<id>/)
instanceNoIndico instance: a configured name (see indico_list_instances) or its URL; an event link works too. Can be left out when only one instance is configured or a default is set.
session_idNoAssign to this session right away
descriptionNo
duration_minutesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=true, so the mutation/open-world profile is covered. The description contributes one genuinely additive behavioral fact — the contribution is created unscheduled and needs a separate scheduling call — but says nothing about auth requirements, defaults applied, or what happens to persons/session assignment on creation.

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?

Two short sentences, zero filler, with the core action and the essential follow-up call front-loaded. Every sentence earns its place.

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?

Output schema exists, so return values need not be described, and the key state distinction (unscheduled) is covered. However, for a 7-parameter creation tool with under-half schema coverage, the description is thin on how the creation behaves relative to sessions, persons, and the later update/schedule siblings.

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

Parameters2/5

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

Schema description coverage is 43% (title, description, duration_minutes undocumented), so the description is expected to compensate, and it offers no parameter guidance at all. It never explains persons/speaker semantics, the session_id assignment behavior, or duration handling — all left entirely to 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?

States a specific verb+resource ('Create ... contribution') and adds a distinguishing scope qualifier ('unscheduled') that separates it from sibling indico_schedule_contribution. An agent can identify what this tool does and what it does not do without opening the schema.

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

Usage Guidelines4/5

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

Explicitly routes the agent: create here, then use indico_schedule_contribution to place it in the timetable. It names the alternative and the sequencing, but gives no statement about prerequisites (e.g., needing a valid event_id or permissions) or when not to use it versus indico_update_contribution / indico_assign_contribution_session.

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