Skip to main content
Glama
cohm

indico-mcp

by cohm

book_room

Book a room in Indico for a specific time on a single day. Use dry_run to preview and confirm booking details before creating the reservation.

Instructions

Create a room booking in Indico.

Always confirm the full details with the user before calling this tool with dry_run=False, as the booking is created immediately and may be difficult to cancel.

IMPORTANT CONSTRAINTS:

  • The booking must start and end on the same day (Indico API limitation for this endpoint; recurring or multi-day bookings must be made via the web UI).

  • The token must have the 'Classic API (read and write)' scope.

  • Booking dates can be today or in the future; exact restrictions depend on the Indico instance's room booking policy.

RETRY SAFETY: this endpoint is not idempotent. Submitting the same request twice (e.g. after a transient network error) will create two separate bookings. Use dry_run=True to pre-validate before committing, and do not retry automatically on failure.

IMPERSONATION: the booked_for parameter allows booking on behalf of another user. Only use it when the user has explicitly authorised this action.

Returns the booking confirmation from Indico, including the reservation ID if successful. When dry_run=True, returns the parameters that would have been sent without making any API call.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
room_idYesIndico room ID (from search_rooms or find_available_rooms).
from_dtYesBooking start, YYYY-MM-DDTHH:MM.
to_dtYesBooking end, YYYY-MM-DDTHH:MM. Must be on the same day as start.
reasonYesReason for the booking.
booked_forNoIndico username to book on behalf of (defaults to the token owner). Only pass this when the user has explicitly asked to book on behalf of someone else — misuse may constitute impersonation.
dry_runNoWhen True, validate all inputs and return the booking parameters that would be submitted without actually creating the booking. Use this to confirm details with the user before committing.
instanceNoNamed Indico instance to query. Use only configured names. If omitted, the server default instance is used.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior5/5

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

Without annotations, the description fully discloses critical behaviors: immediate creation, difficulty to cancel, non-idempotency, retry safety, dry_run behavior, and return value with reservation ID.

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?

Well-structured with headings for constraints, retry safety, and impersonation. Slightly verbose but every sentence adds value; front-loaded with purpose and key safety instructions.

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?

Comprehensively covers all aspects for a complex tool: constraints, safety, usage, output description, and dry_run behavior. Output schema exists but description still adds value.

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 description coverage is 100%, and the description adds meaningful context beyond the schema, such as warnings about booked_for misuse, dry_run validation purpose, and same-day constraint enforcement for to_dt.

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 'Create a room booking in Indico' and distinguishes the tool from siblings like find_available_rooms and search_rooms by referencing them in parameter descriptions and constraints.

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?

Provides extensive guidance: use dry_run for pre-validation, confirm with user before committing, same-day constraint, token scope, no automatic retry, impersonation authorization, and alternative for multi-day bookings via web UI.

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

Install Server

Other Tools

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/cohm/indico-mcp'

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