Skip to main content
Glama
ONDC-Official

ondc-mcp

Official

Start a flow

flow_start

Starts a flow run and returns the callback URL a participant must reach, failing immediately if the flow lacks configuration or ownership.

Instructions

Open a run of one flow and report what its first step needs. Returns the callback URL the participant under test must be able to reach — every payload this server sends advertises it as bap_uri or bpp_uri, so a participant that cannot reach it will never call back. Fails immediately if the flow has no mock config or any step with no owner, so a flow that cannot be driven is rejected before anything is sent. transaction_id comes back null: it belongs to whoever sends the flow's first action, so when that is the participant it is theirs to choose and does not exist yet. Drive the run by flow_id with flow_proceed and flow_await, which report the id once it exists.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
flow_idYesFlow to run, as listed by catalog_list_flows.
session_idYesSession returned by session_create.
auto_advanceNoOverride the session default. When on, the receiver chains this mock's own steps as soon as the participant answers, pausing only for inputs, forms and errors.
transaction_idNoResume a transaction that already exists. Omit it — a new run does not have an id yet, and inventing one here would be wrong whenever the participant sends the flow's first action, because then the id is theirs to choose.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
eventsNoWhat has happened in this session since your last call — the participant's callbacks, steps sent automatically, refusals, form submissions. Attached to every session-scoped result and delivered exactly once, so read it here instead of polling. Absent when nothing happened. `more` above zero means call record_get_events for the rest.
attemptYesWhich try this is. 1 unless the run has been restarted; every attempt gets its own transaction_id.
flow_idYesAddress this run by (session_id, flow_id) from here on.
outcomeYesWhat the first step of the flow needs.
mock_roleYesThe role this server plays in this flow.
session_idYes
auto_advanceYes
callback_urlYesWhat the participant must call back on. Advertised as bap_uri/bpp_uri in every payload this mock sends.
transaction_idYesNull for a new run: the transaction id belongs to whoever sends the flow's first action, so it does not exist until that action crosses the wire. Drive the run with flow_id until then; every loop answer reports the id once it is known.
Behavior5/5

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

Beyond the annotations (readOnly=false, openWorldHint=true, idempotent=false), the description surfaces critical gotchas: the returned callback URL must be reachable by the participant or callbacks never arrive; invalid flows are rejected before anything is sent; and transaction_id is null because it belongs to the first action sender. This is rich, non-obvious behavioral context that will help an agent avoid mistakes.

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 description is front-loaded with the core purpose and then spends a few dense sentences on essential caveats. Every sentence carries meaningful information, though the callback URL explanation is slightly lengthy; overall it is well-structured for the tool's complexity.

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?

The description covers the return value (callback URL, null transaction_id), failure preconditions, and the handoff to flow_proceed/flow_await. Since an output schema exists, it doesn't need to enumerate return fields, and the provided context is sufficient for correct invocation.

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 coverage is 100% and every parameter already has a detailed description, so the description doesn't need to compensate. It does reinforce transaction_id's null behavior, but adds little meaning beyond what the schema already provides.

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 opens with a specific verb+resource: 'Open a run of one flow and report what its first step needs.' It clearly distinguishes itself from siblings by naming flow_proceed and flow_await as the follow-up tools for driving the run, making the initiation role unambiguous.

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?

The description gives clear context for when to use the tool: to start a new flow run, and it points to flow_proceed and flow_await as the next steps. It also states preconditions ('Fails immediately if the flow has no mock config or any step with no owner') that help an agent decide if the tool is applicable. It does not explicitly say 'use X instead when...' but the guidance is sufficient.

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/ONDC-Official/automation-mcp'

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