Skip to main content
Glama

Submit a proposal package

submit_proposal_package
Destructive

For the signed-in vendor: asks to submit a proposal package on one of your leads, written by code against the market's published proposal model: scope lines included or excluded, phases with duration and dependency, price lines (component, unit, quantity, unit price, currency), assumptions and exclusions, a short note per section, and the currency, term in months and annual escalator. Nothing is submitted by this tool: it checks the package, names any field that needs a change, and returns a link to PreShiftIQ's confirm page, where the owner of the vendor record confirms. A client sees the package only after asking you for proposals.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "match_id": "<match_id>",
      "package": "<package>"
    },
    "name": "submit_proposal_package"
  }
}

Input Schema

NameRequiredDescriptionDefault
packageYes
match_idYes

Output Schema

NameRequiredDescriptionDefault
errorsNo
statusYes
summaryYes
expires_atYes
confirm_urlYes
proposals_recordedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.7/5.0
Behavior4/5

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

Beyond the annotations this adds substantial behavior: 'Nothing is submitted by this tool' — it validates the package, names any field needing a change, and returns a link to the confirm page where the owner of the vendor record confirms. That two-step commit flow and the field-level error reporting are exactly the kind of context annotations cannot carry. There is mild tension with destructiveHint=true (read as 'this writes'), but because the confirm step ultimately mutates, this is clarification rather than a direct contradiction.

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

Conciseness3/5

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

The critical behavioral facts (nothing is submitted; confirm link; owner confirms) are front-loaded and earn their place. However, the opening sentence is a sprawling mega-clause chaining 'written by code against the market's published proposal model', the full package inventory, and the pricing model, which makes it hard to parse for a structuring agent.

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?

With an output schema present, the description needn't explain return values, and it covers the key flow: validation, error naming, and the human confirm handoff. Minor gaps remain — no note on authentication requirements, on whether a repeated call creates a duplicate (idempotentHint=false), or on limits for a given lead.

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

Parameters4/5

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

Schema coverage is 0% and 'package' is an untyped object, so the description carries the whole burden — and it does, enumerating phases with duration and dependency, price lines with component/unit/quantity/unit price/currency, and per-section notes. The gap is that match_id is never described (only implied as 'one of your leads') and the field keys are prose, not tied to exact package properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('asks to submit a proposal package on one of your leads') and enumerates the package contents (scope lines, phases, price lines, assumptions/exclusions, currency/term/escalator), so the agent knows exactly what is being sent. It never names a sibling such as request_proposals or my_matches, so differentiation from the surrounding toolset remains implicit.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: it applies to 'the signed-in vendor' acting on 'one of your leads', and the closing line 'A client sees the package only after asking you for proposals' gestures at the precondition. There is no explicit when-to-use/when-not guidance or a named alternative for reaching the same outcome.

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.