Index / MCP servers / FlowCastle

FlowCastle MCP server

Connect FlowCastle and your agent gets 43 tools, among them apply_actions, create_application, create_contact. It answers at https://api.flowcastle.ai/api/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 4 September 2026; the last check, on 17 October 2026, succeeded.

Status
Answering
Tools
43
Official
yes, served from flowcastle.ai
Reliability
10 of 10 checks
Response time
69 ms
Transport
streamable HTTP
Last checked
17 October 2026

Build, edit, and deploy Telegram bots on FlowCastle's hosted visual flow platform.

Description as the publisher wrote it.

The 43 tools FlowCastle offers

ToolWhat it does
apply_actionsValidate and apply a batch of flow-builder actions — the single write path for editing flows, blocks, variables, broadcasts, sequences, and folders. Call this directly; a separate validate_actions call beforehand is unnecessary. Broadcasts
Inputs: applicationId, flowId, conversationId, actions
create_applicationCreate a new application (workspace) owned by the caller. Requires a personal API key (usr_...) — application-scoped keys cannot create applications. Seeds default flows unless skipDefaultFlows is true. Creates persistent state and is NOT i
Inputs: name, preferredLanguage, skipDefaultFlows
create_contactCreate a contact manually — for imports or externally-sourced audiences; contacts who message a bot are created automatically. Requires the manage_broadcasts permission. platformId must be unique within the bot (duplicate fails with 409); b
Inputs: applicationId, botId, platformId, username, email, phone
deploy_applicationPublish the workspace to its bots — the API equivalent of the dashboard's Deploy button. This is the step that makes edits live. apply_actions writes to the DRAFT graph. Until this runs the connected bots keep serving the previously publish
Inputs: applicationId, botIds
execute_telegram_operationSubmit one supported read operation on the connected telegram_mtproto account. Call list_telegram_operations for the input schema. Returns a requestId; poll get_telegram_operation until completed, error or timed_out. Requires manage_broadca
Inputs: applicationId, botId, operation, input
get_action_schemaReturn the action-authoring contract that apply_actions batches are validated against. Read-only, needs no API key. Called with NO arguments it returns a compact INDEX: every creatable block type, action and topic with one line saying when
Inputs: blockTypes, actions, actionKinds, topics
get_application_contextReturn the full application-level automation context in one read-only call: every flow (with folders), connected bots, variables, sequences, and operations. This is the broad orientation call — prefer get_workspace_summary when you only nee
Inputs: applicationId
get_block_detailsReturn the complete contents of one block: block data, action configs, HTTP request bodies, custom-code files, triggers, menu payloads, and media paths. Read-only. This is the heaviest read in the API — call get_flow_context first to find t
Inputs: applicationId, flowId, blockId
get_broadcast_analyticsReturn engagement analytics for a broadcast: delivery breakdown by status plus per-message-block sent and clicked counts for its flow, over an optional date window. Read-only. Sent counts reflect messages attempted, not confirmed deliveries
Inputs: applicationId, broadcastId, startDate, endDate
get_broadcast_detailsReturn full details for a single broadcast: status, schedule, recurrence rule, linked flow, and delivery breakdown by status. Read-only. Call list_broadcasts first to find the broadcastId. For per-message-block engagement stats use get_broa
Inputs: applicationId, broadcastId
get_contactReturn one contact's full profile plus every contact-variable value stored for them. Read-only. Values may hold personal data; variables of type SECRET are always redacted. Call list_contacts first to find the contactId.
Inputs: applicationId, contactId
get_contact_activityReturn one contact's engagement history: goals they achieved and buttons they clicked, newest first, plus all-time goal totals. Read-only. This is the per-contact companion to get_broadcast_analytics (which is aggregate). Clicks are inline/
Inputs: applicationId, contactId, limit, startDate, endDate, includeFlowRuns
get_design_guidelinesReturn the flow-design rules that validation does NOT enforce: when to split a branch into its own flow, how navigation and menus must be wired, and worked examples. Read-only, takes no arguments, and needs no API key. Read this before any
get_flow_analyticsMeasure how NAMED flows are actually used over the last 30 days: how many contacts entered each one, where inside it they stop (per block, with the stop RATE), how many were answered by a human agent afterwards, and how many hit an error. U
Inputs: applicationId, flowIds
get_flow_contextReturn one flow's graph topology: its blocks, how they link, and a short summary per block. Read-only. Deliberately omits block data and action configs to stay cheap — once you know which block matters, call get_block_details for its full c
Inputs: applicationId, flowId
get_flow_exampleReturn one reusable flow example by id, optionally with a complete action batch you can adapt and pass to apply_actions. Read-only, needs no API key. Call search_flow_examples first to find the id.
Inputs: id, includeSchemaExample
get_funnel_analyticsReturn the measured conversion funnels of the workspace's ENTRY flows over the last 30 days, busiest first: how many new contacts entered, which blocks they reached, the share who stop at each block, which buttons lead nowhere (pressed then
Inputs: applicationId
get_module_catalogReturn a compact index of both installed and available marketplace modules, with each module's key, versions, description, actions, and triggers. Read-only. Start here when you need a capability the core action kinds do not cover; then call
Inputs: applicationId
get_module_detailsReturn everything needed to use one module: action input fields and their types, trigger configuration, manual setup fields (credentials an operator must fill in the dashboard), and references to already-installed actions. Read-only. Call g
Inputs: applicationId, moduleKey, moduleVersion
get_telegram_operationRead a Telegram operation status and result using its requestId and the same applicationId/botId used for submission. Requires manage_broadcasts for the owning application. Poll every two seconds. Results expire one hour after their last up
Inputs: applicationId, botId, requestId
get_variable_contextSearch variable definitions by scope and keyword. Read-only. Returns { variables, total, returned, truncated } — compare returned against total to detect a cut-off result set and re-call with a higher limit. Values are withheld unless inclu
Inputs: applicationId, scope, query, limit, includeValues
get_website_importStatus of a website import started by import_website_knowledge or an import_website_into_knowledge_base action: stage, progress, counters, warnings and the pages that were not imported. Read-only. Poll until status is DONE, DONE_WITH_ERRORS
Inputs: applicationId, jobId
get_workspace_summaryReturn a compact application, flow, sequence, operation, and bot summary — the cheapest way to orient in a workspace. Read-only, no side effects. Deliberately omits variables and full flow graphs: use get_variable_context for variables, get
Inputs: applicationId, flowId
import_website_knowledgeCrawl a website into a knowledge base so an AI_TOOL_ROUTER can answer from it. Creates a new base (named after the host) unless knowledgeBaseId is given. Honours robots.txt, skips junk and duplicate pages, keeps blog posts by default, and c
Inputs: applicationId, siteUrl, knowledgeBaseId, knowledgeBaseName, includeBlog, maxPages
install_moduleInstall an exact marketplace module version into an application and create any missing installed-template actions. Requires the manage_automation permission. Call get_module_catalog first to select the module and version, then get_module_de
Inputs: applicationId, moduleKey, moduleVersion
list_applicationsList the applications this API key can access, with the caller role and the permissions it grants. Start here when using a personal API key (usr_...): every other tool needs an explicit applicationId, which this tool supplies. Read-only, ta
list_broadcastsList broadcasts in the application with status, schedule, and delivery counts. Read-only. Filters combine as AND. Note that delivery counts report messages attempted, not confirmed deliveries. Use get_broadcast_details for one broadcast's f
Inputs: applicationId, botId, status, isRecurring, page, limit
list_contact_tagsList the contact tags in use in the application (or one bot) with how many contacts carry each, most-used first. Read-only. This is the attribution view: UTM tags ("utm: <slug>", set by ?start=utm--<slug> deep links, one per ad or campaign)
Inputs: applicationId, botId, search, limit
list_contactsList and search contacts in the application, paginated, newest first. Read-only. Filters combine as AND; search matches name, username, email, phone, and platformId; `tags` / `tagIds` keep only contacts carrying at least one of those tags (
Inputs: applicationId, botId, search, status, isActive, tags
list_event_contactsThe reverse lookup: which contacts triggered one analytics event — achieved a goal (kind GOAL + goalKey), clicked a button (BUTTON_CLICK + blockId, optionally buttonId/buttonIndex), were sent a block (BLOCK_SENT + blockId), or received a br
Inputs: applicationId, kind, goalKey, blockId, buttonId, buttonIndex
list_telegram_operationsDiscover supported Telegram MTProto account operations, input schemas, permissions and limits. Requires manage_broadcasts. All current operations read public data; this catalog does not connect to Telegram. botId may be omitted when the app
Inputs: applicationId, botId
list_watched_groupsList the group/channel chats a telegram_mtproto userbot monitors. Read-only. The watched list is the single source of truth for which chats the userbot processes: messages from unlisted group/channel chats are dropped (fail closed) and thei
Inputs: applicationId, botId
read_messagesRead the message transcript: what users sent the bot and what the bot sent back, newest first. Source is the runtime's own message ledger, written by the bot as it handled each turn — inbound messages are recorded before any routing decisio
Inputs: applicationId, contactId, botId, direction, actor_type, startDate
run_flow_autotestRuns deterministic behavioural tests against flows that are ALREADY applied (compiles them to an AST and simulates a user). Call after apply_actions to verify a build; read `summary` and the failed checks, patch with apply_actions, re-run.
Inputs: applicationId, flowIds, scenarios
search_flow_examplesSearch the library of reusable flow examples covering common business cases (lead capture, onboarding, payments, reminders). Read-only, needs no API key. Returns compact matches — id, title, summary, tags — with no flow body; pass an id to
Inputs: query, tags, limit
search_flowsFind every flow and block whose contents contain a keyword. Read-only. Searches message text and its translations, button labels and URLs, action names and configs, action input/output field paths and values, condition operands, trigger com
Inputs: applicationId, query, limit
send_flow_to_contactsRun an EXISTING interactive flow for each listed contact right now, outside any trigger — as if each of them had just triggered it. Use it when the WHOLE message is the flow — its first block's text, media and buttons are what the recipient
Inputs: applicationId, flowId, contactIds
send_messageSend a message to ONE contact right now, outside any flow. For reaching many contacts use a broadcast instead. Target the contact with contactId (globally unique — preferred), or with platformId (the platform-side id, e.g. the Telegram user
Inputs: applicationId, contactId, platformId, botId, text, media
set_watched_groupsReplace a telegram_mtproto userbot's watched-groups list — the chats it monitors. Requires the manage_settings permission. SET semantics: send the COMPLETE desired list every time (call list_watched_groups first and include existing entries
Inputs: applicationId, botId, groups
sync_dialog_contactsImport a telegram_mtproto userbot's existing chats as contacts — DM partners, groups, and channels — so everything the account already talks to becomes a valid send_message target without waiting for each chat to message first. Requires the
Inputs: applicationId, botId, kinds, limit
3 more tools

update_application, update_contact, validate_actions

Add FlowCastle to your AI client

Every block below points at https://api.flowcastle.ai/api/mcp. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http flowcastle https://api.flowcastle.ai/api/mcp
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "flowcastle": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://api.flowcastle.ai/api/mcp"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "flowcastle": {
      "url": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "flowcastle": {
      "type": "http",
      "url": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "flowcastle": {
      "url": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "flowcastle": {
      "serverUrl": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "flowcastle": {
      "url": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: FlowCastle
version: 0.0.1
schema: v1
mcpServers:
  - name: FlowCastle
    type: streamable-http
    url: https://api.flowcastle.ai/api/mcp
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "flowcastle": {
      "httpUrl": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "flowcastle": {
      "type": "http",
      "url": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "flowcastle": {
      "url": "https://api.flowcastle.ai/api/mcp"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fapi.flowcastle.ai%2Fapi%2Fmcp&type=streamable_http&id=flowcastle&name=FlowCastle

Is FlowCastle up right now?

It answered our last check on 17 October 2026 in 69 ms. Over 10 checks since 4 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to FlowCastle

Questions about FlowCastle

Is there an official FlowCastle MCP server?

Yes. It is published by flowcastle.ai and served from api.flowcastle.ai, the vendor's own domain: https://api.flowcastle.ai/api/mcp.

How many tools does FlowCastle have?

43, as returned by the server's own tools/list on 7 September 2026: apply_actions, create_application, create_contact, deploy_application, execute_telegram_operation, get_action_schema, get_application_context, get_block_details, and 35 more.

Is FlowCastle down?

It answered our last check on 17 October 2026 in 69 ms. Over 10 checks since 4 September 2026 it answered 10.

How do I add FlowCastle to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.flowcastle.ai/api/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does FlowCastle need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: ai.flowcastle. Endpoint host: api.flowcastle.ai. ARD identifier: urn:air:ai.flowcastle:mcp:flowcastle. First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.