Skip to main content
Glama

Create Checkout Link

create_checkout_session

Accepts doola's Terms of Service (https://www.doola.com/terms-of-service) for the Starter package on the user's behalf and creates the Stripe checkout for the formation. Show the user doola's Terms of Service (https://www.doola.com/terms-of-service) and ask whether they agree. Only once they say yes, call create_checkout_session with {termsAccepted: true}. Returns pricing (the first-year list price: quote pricing.summary VERBATIM and never call it 'charged today'), chargeSummary (what Stripe charges today after any discount: quote it VERBATIM), checkoutUrl (paste it verbatim into your reply, never a placeholder), checkoutSessionId (keep it for verify_payment), and companyId / companyName (the company being paid for: name it to the user). Refused with PRECONDITIONS_NOT_MET until start_formation has saved the name, country and company name.

Input Schema

NameRequiredDescriptionDefault
contextNoOptional, for analytics only. In one sentence, why you are calling this tool and how it serves the user's goal. Describe the purpose in general terms: never include names, emails, phone numbers, addresses, IDs or any other personal details.
llm_modelNoOptional, for analytics only. Your exact model identifier from your system prompt (e.g. "claude-opus-4-8"), or "unknown" if unsure. Never guess.
termsAcceptedNotrue only after the user has seen the Terms of Service link and agreed to it.

Output Schema

NameRequiredDescriptionDefault
codeNoStructured error code when error=true (e.g. INVALID_INPUT, PRECONDITIONS_NOT_MET, READINESS_CHECK_FAILED, FILING_FAILED).
errorNotrue if the call failed
savedNoWhat this call saved.
messageNoHuman-readable status or instruction.
missingNoPrerequisites still unmet, in flow order. Empty when only filing remains.
pricingNoFirst-year list price. Quote `summary` verbatim; never call it 'charged today'.
nextStepNoThe tool to call next; null when the flow is complete.
companyIdNoThe company the call acted on.
nextActionNoImperative for the agent — follow verbatim.
checkoutUrlNoStripe checkout link. Paste it verbatim into the reply.
companyNameNoName of the company the call acted on. Name it to the user.
nextQuestionNoQuestion to ask the user verbatim before the next call.
chargeSummaryNoWhat Stripe charges today, after any discount. Quote it verbatim.
nextActionInputNo{tool, arguments} template for the next call. Replace every <placeholder> in arguments with the user's real answer.
checkoutSessionIdNoPass it to verify_payment once the user has paid.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, destructiveHint=false, openWorldHint=true; the description goes well beyond by disclosing that it legally accepts Terms of Service on the user's behalf, that it creates a real Stripe checkout, the refusal code, and the prerequisite gate. It also tells the agent exactly how to quote the returned pricing fields (verbatim, never 'charged today'), which is behavioral context annotations cannot carry.

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?

Front-loaded with the action and the safety gate, then the return-field quoting rules and the refusal condition — all operationally necessary. The Terms of Service link and the 'show and ask the user' instruction are repeated twice, minor redundancy in an otherwise dense description.

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?

Covers preprequisites, consent gating, refusal behavior, and how to use each returned field, so an agent can act correctly without further lookup. Return-value handling is spelled out even though an output schema exists, which is appropriate for a payment-related side effect.

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 100%, so the baseline is 3; the description adds operational meaning for termsAccepted by tying it to a user-confirmation workflow rather than just a boolean flag. It adds nothing for context/llm_model, but those are analytics-only and already self-documented.

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 action chain: accepts the Terms of Service on the user's behalf and creates the Stripe checkout for the formation, plus names the company being paid for. It is clearly separable from siblings by naming verify_payment for the returned session ID and start_formation as the prerequisite.

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 an explicit gating workflow: show the ToS link, ask the user, and only call with {termsAccepted: true} after they say yes. It also states the exact refusal condition (PRECONDITIONS_NOT_MET until start_formation has saved name, country, and company name), leaving nothing to inference.

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.