Skip to main content
Glama

Server Details

Set prices and booking limits by demand to fill capacity profitably

Ownership verified
Status
Healthy
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
ChatGPT
–
Claude
–

TDQS

A4.3/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct roles: revenue_optimizer performs the analysis for normal-sized inputs, while revenue_optimizer_get_engine is explicitly a large-data/sandbox fallback that returns a Python script. The size thresholds in the description make the boundary unambiguous.

Naming Consistency4/5

Both names use snake_case and share the revenue_optimizer prefix, so they are predictable as a pair. However, the base name is a noun phrase rather than a verb_noun action, and get_engine slightly undersells that it generates a full script.

Tool Count3/5

Two tools is thin for a domain with this much surface area, and the main tool bundles pricing, elasticity, protection levels, overbooking, and forecasting into one call. The large-data fallback is a sensible second tool, but the set still feels borderline under-segmented.

Completeness4/5

The surface covers the core domain well: forecasting, price optimization, elasticity, protection levels, overbooking limits, show-rate estimation, and a large-data escape hatch. Minor gaps remain around scenario comparison or explicit result retrieval, but no critical workflow dead end is apparent.

Available Tools

2 tools
revenue_optimizerDynamic Pricing, Booking Pace, Protection Levels & OverbookingA
Read-only
Inspect

Yield management for perishable capacity (hotel rooms, seats, tickets, rentals, slots, covers). From products (capacity, sold, days to the date, price, floor/ceiling) and optional bookings (stay/event date, lead time or booking date, status, class, price, segment), price history (date, price, units), fare classes (fare, demand still to come) and show history it returns: booking pace vs comparable past dates and an additive-pickup forecast with range; the price now maximising expected contribution within a band (demand from pickup x price response); price elasticity by log-log regression with confidence interval, refusing flat-price or demand-driven histories, pooled across products; Littlewood / EMSR-a / EMSR-b protection levels and booking limits with the exact optimal levels and expected revenue vs first-come-first-served; overbooking limit (binomial shows) with the chance of turning anyone away, show rates by segment with Beta-Binomial shrinkage, never for critical clinic types. Recommendations only. Decision cards first. Up to 500 products / 20,000 bookings; larger: revenue_optimizer_get_engine.

NameRequiredDescriptionDefault
as_ofNoPlan date YYYY-MM-DD (default: latest booking date).
bookingsNoproduct, stay/event date, booking_date or lead_time, status, cancel date, class, price, segment, units.
capacityNoCapacity for fare classes without a product row.
currencyNoINR
industryNohotel
productsNoOne row per product and date: product, capacity, sold, days_out or stay/event date, price; optional price_floor, price_ceiling, unit_cost, segment, show_rate, denied_cost, no_show_fee, critical, elasticity, expected_remaining_demand.
denied_costNoCost of turning one customer away (walk / bump / compensation).
fare_classesNoproduct, class, fare, mean_demand, sd_demand (demand still to come); capacity on the row or via `capacity` when no product row.
show_historyNosegment, booked, showed.
price_historyNoproduct, date, price, units sold.
pace_alert_pctNo
currency_symbolNo
max_denied_probNo
max_overbook_pctNo
min_price_pointsNo
default_elasticityNoOnly an explicit user assumption; flagged as assumed.
count_cancellationsNoCount cancellations as no-shows (for limits set far ahead).
max_products_listedNo
allow_price_increaseNoDefault true; false for clinics.
max_price_change_pctNo

Output Schema

NameRequiredDescription
alertsNo
statusYes1 = ok, 0 = nothing could be planned
messageNo
summaryNo
metadataYes
productsNo
decisionsYesPlain-language cards, priority order. Relay these first.
elasticityNo
protectionNo
show_ratesNo
assumptionsNo
data_quality_reportNo

TDQS

A4.3/5.0
Behavior5/5

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

With readOnlyHint and non-destructive annotations already present, the description adds substantial behavioral context: recommendations only, decision cards first, refusal on flat-price or demand-driven histories, pooled elasticity, and no overbooking for critical clinic types. These are meaningful constraints and caveats beyond the annotations.

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?

The purpose is front-loaded, followed by input data, outputs, constraints, and the sibling alternative. The description is dense and includes long run-on clauses, but most of the density is justified by the tool's complexity.

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

Completeness4/5

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

Given a 20-parameter tool with an output schema and read-only annotations, the description covers the analytical outputs, input data shapes, scale limits, and important refusal cases. It is not exhaustive on every tuning parameter, but the schema and output schema fill those gaps.

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

Parameters3/5

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

The description explains the main data inputs (products, bookings, price history, fare classes, show history) and their key fields, which helps beyond the 55% schema coverage. However, many control parameters such as pace_alert_pct, max_denied_prob, min_price_points, count_cancellations, and max_price_change_pct are not explained in the description.

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 names a specific domain (yield management for perishable capacity) and enumerates the concrete outputs: pace forecasts, optimal price, elasticity, protection levels, and overbooking limits. It also distinguishes the sibling by directing larger datasets to revenue_optimizer_get_engine.

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?

It gives clear usage context across hotel, airline, event, rental, restaurant, clinic, and other perishable-capacity settings, plus an explicit alternative at the 500-product/20,000-booking threshold. It does not describe when not to use the tool beyond that scale cutoff and the clinic caveat.

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

revenue_optimizer_get_engineRevenue Optimizer — Get Engine Script (large histories)A
Read-only
Inspect

For more than 500 products, 20,000 bookings or 5,000 price-history rows, or any such file already in your code sandbox. Returns a complete numpy-only Python script with the same engine as revenue_optimizer; it reads products, fare classes, price history, bookings and show history, prints the decision cards and one line per product, and writes everything to revenue_plan.json. No booking data reaches this server on this path.

NameRequiredDescriptionDefault
paramsNoOther inputs exactly as revenue_optimizer takes them (industry, as_of ...).
bookings_pathNoOptional bookings / reservations export.
products_pathNoProducts file (CSV/TSV/JSON).
fare_classes_pathNoOptional fare classes file.
show_history_pathNoOptional show-up history file.
price_history_pathNoOptional price / units history file.

Output Schema

NameRequiredDescription
notesNo
pathsNo
scriptYes
languageNo
requiresNo
writes_fileNo
instructionsYes
engine_versionYes
scipy_requiredNo
data_requirementsNo
network_access_requiredNo

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the readOnly/openWorld annotations by disclosing the privacy-relevant fact that no booking data reaches the server on this path, that the output is generated code (not computed results), and that the script writes revenue_plan.json and prints decision cards plus one line per product. These are exactly the side effects and trust considerations an agent needs before choosing this route.

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?

Three sentences, front-loaded with the size threshold that drives the routing decision, followed by output description and the data-privacy note. No filler and no repetition of the title.

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?

With an output schema present, return values need no further explanation, and the description still summarizes them. Combined with the explicit invocation thresholds, sandbox-write behavior and no-upload guarantee, nothing an agent needs to call this correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% and each path parameter is already documented in the schema, so the baseline is 3. The description adds only that the engine reads products, fare classes, price history, bookings and show history, which largely restates the schema and says nothing about what 'params' must contain or what happens when optional paths are omitted.

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 and deliverable: it returns a complete numpy-only Python script running the same engine as revenue_optimizer. The opening threshold clause immediately distinguishes it from its only sibling, so an agent can route without opening either schema.

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?

Gives concrete, numeric selection criteria (>500 products, >20,000 bookings, >5,000 price-history rows, or data already resident in the sandbox) and names the sibling that shares the engine, implying the in-server path for smaller payloads. The when-to-use condition is unambiguous rather than left to inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedrevenue_optimizer
    • First observedrevenue_optimizer_get_engine

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    23 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources