Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add keboola/mcp-server --skill build-flowgit clone --depth 1 https://github.com/keboola/mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/keboola/mcp-server/build-flow)<a href="https://agentmods.dev/skills/keboola/mcp-server/build-flow"><img src="https://agentmods.dev/badge/skills/keboola/mcp-server/build-flow/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/keboola/mcp-server/build-flow"><img src="https://agentmods.dev/badge/skills/keboola/mcp-server/build-flow.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00043 | $0.01031 |
| Opus 5.5 | $0.00017 | $0.00412 |
| Sonnet 5.5 | $0.00009 | $0.00206 |
| Haiku 4.5 | $0.00004 | $0.00103 |
Grade A, and why
build-flow scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 62 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Build a flow
Create a flow from existing configurations, or change an existing flow, in the one project the user confirms.
Input
Which configurations to run, in what order, and whether the flow needs a schedule. For an existing flow, its name or ID.
Steps
- Pick the project. Call
get_accessible_projects(withwith_llm_instruction=trueon the first call in the conversation) and ask the user which project the flow belongs in. Never pick a project on your own: confirm it. Do this even when the session looks scoped already or a data tool would work without it: this plugin always narrows the session to the projects the user confirms. Ifget_accessible_projectsfails because no programmatic token is present, the login is bound to one project: confirm it with the user and skip step 2. - Scope the session to that project. Call
set_project_scopewithproject_ids=[<the confirmed id>]. This must happen before any write. If the result carries a non-nullscope_token, pass it on every later tool call. Every write below also passes the confirmed id asproject_id: other conversations on the same login share the scope, and a scope they moved makes the write fail instead of landing in another project. - Get context. Call
get_project_infowithproject_id=<the confirmed id>. It says whether conditional flows are enabled in the project, and itstoolset_restrictionssay whether the user's role may set schedules. If they say only read-only tools are available, tell the user they cannot create flows in this project and stop. - Collect the tasks. Find every configuration the flow should run with
search(item_types=["configuration", "transformation"]) and confirm the list with the user. Each task needs a component ID and a configuration ID; useget_configswithconfigs=[...]when a search hit does not show them. Do not create the configurations here; a missing SQL transformation is built with thebuild-sql-transformationskill first. - Load the schema. Call
get_flow_schemawithflow_type="keboola.flow"when conditional flows are enabled, otherwiseflow_type="keboola.orchestrator". Callget_flow_exampleswith the same type if you have not seen one in this conversation. - Show the plan. List the phases, the tasks in each phase and their order. Tasks in one phase run in parallel; phases run in order. Wait for the user to agree.
- Create or update.
- New flow: call
create_conditional_flowwithproject_id=<the confirmed id>forkeboola.flow, orcreate_flowwithproject_id=<the confirmed id>forkeboola.orchestrator. Give every phase and task anidand aname. - Existing flow: find it with
searchanditem_types=["flow"], read it withget_flowsandflow_ids=[...], then callmodify_flowwithproject_id=<the confirmed id>, itsconfiguration_id=..., theflow_type=...it already has, achange_description=...and only the fields that change.
- New flow: call
- Schedule, if asked. Call
modify_flowwithproject_id=<the confirmed id>andschedules=[...]for the schedule the user asked for. Confirm the cron expression and time zone with the user first. Iftoolset_restrictionsfrom step 3 say the role cannot set schedules, tell the user and skip this step. - Run, if asked. Ask before running. Call
run_jobwithproject_id=<the confirmed id>, the flow'scomponent_id=...andconfiguration_id=..., then follow it withget_jobs. On failure, continue with thedebug-failed-jobskill. - Report. Give the flow name, its phases, the schedule and the links the tools returned.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 62 lines · 43 tokens per session scan A ad5ee737a3ca
build-flow is a skill published in the GitHub repository keboola/mcp-server (85 stars, last pushed today), licensed MIT. It adds 43 tokens to every session and 1,031 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-23.
Other skills, from other repositories
report-issue
File a bug or feature request against this repository (cyanheads/git-mcp-server) using the gh CLI. Use for tool logic bugs, git provider misbehavior, transport issues, auth/config problems, or new feature proposals.
reviewing-sla-definitions
Reviewing ServiceNow SLA, OLA and underpinning-contract definitions and how they perform: breach rates per definition, overlapping or duplicated definitions on the same table and target, and definitions that never attach. Use when the user asks about SLA breaches by definition, too many SLAs, duplicate or conflicting…
quick-capture
Use this skill to drop a new task into GSD Task Manager from any AI assistant that has the gsd-mcp-server connected.
papi-plan
Invoke when starting a new PAPI cycle. Covers plan generation, board management, and cycle scoping rules.
papi-idea
Invoke when submitting backlog ideas, registering docs, or filing research. Covers idea pipeline and doc registry conventions.
papi-integration-recipe
Use when the user wants to feed data from a connected MCP tool (Sentry, Linear, GitHub, Slack, or any other) into PAPI. Demonstrates the "host agent = integration bus" pattern: read from the external tool, map to PAPI shape, write via PAPI tool. PAPI never owns connectors — the user's AI session passes data between…