Skip to content

Ask the docs

Answers come only from these docs and are written by an AI model (Gemini), so check the linked pages. Your question is not kept. Do not include personal details or keys.

Create a project, choose an interface and make your first tool call.

Start with the café example and try its MCP server, CLI or messaging agent. All three use the same tools.

You need Node.js 22.18 or later and npm. Check your version with node --version.

MCP and CLI tool calls run without a model key or Flow account. The messaging agent needs a model; you can use your own provider key or Flow’s trial setup.

Create the starter

Run this from the folder where you keep your projects:

Terminal
npx @flow-engineer/flow new my-agent --display-name "My agent"
cd my-agent
npm install

Use lowercase letters, digits and dashes for the folder name. --display-name is what people call your agent.

Already in an empty project folder?

Use init instead of new:

Terminal
npx @flow-engineer/flow init --display-name "My agent"
npm install

Choose how to try it

Start the MCP server:

First terminal
npm run mcp

It prints its MCP URL and a command to connect Claude Code. Keep it running. In another terminal in the same project, read the café menu:

Second terminal
npm run cli -- menu --json

Check it worked: you should see JSON with a menu array, including the café’s drinks, prices, milk options and allergens.

See the shape of the result

This is an excerpt; the starter returns the full menu.

{
"menu": [
{
"item": "Latte",
"sizes": { "small": 4, "large": 4.8 },
"milks": ["whole", "oat", "almond"],
"allergens": ["dairy (unless plant milk)"]
}
],
"note": "This is the whole menu."
}

To try the same tools in an assistant, connect the MCP URL using the command printed by the server. Remote hosts such as Claude or ChatGPT need a public HTTPS endpoint: see MCP servers.

Make it your product

Add your own tools in src/tools.ts, write workflows in agent/skills/ and replace the café’s instructions in agent/AGENTS.md. The starter also includes coding-agent skills in .claude/skills/.

Check the tool and CLI definitions:

Terminal
npx @flow-engineer/flow check

Check it worked: the command reports no configuration problems. Then exercise a real request in the interface you chose.

FileWhat it owns
src/tools.tsProduct operations and their inputs, results and sign-in requirements
agent/skills/<name>/SKILL.mdWorkflows around those operations
src/mcp.tsMCP server and authentication
src/cli.tsCLI names, command groups, arguments and output
src/agent.tsMessaging agent, model and host options
agent/AGENTS.mdThe messaging agent’s purpose and behavior
The MCP server chose another port

The starter uses MCP_PORT, else port 8790 or the next free port. Use the URL it prints. For this my-agent project, set MY_AGENT_SERVER to that URL when running the CLI:

Terminal
MY_AGENT_SERVER=http://127.0.0.1:8791/mcp npm run cli -- menu --json

Replace 8791 with the actual port. The variable name is derived from the project name.

The messaging agent says no model key is set

Run npx @flow-engineer/flow link for Flow’s trial setup, or add your provider key to .env. Restart npm start after changing environment values.

The phone link works but the agent does not answer

Keep npm start running and restart it after link writes keys or a channel sender. WhatsApp and iMessage trial channels reply after you write first. Run npx @flow-engineer/flow status to see what the folder has and what is missing.