bridgecore
Say what should happen; get the right app tool per step, an n8n workflow, or the call itself.
Should I use this
Quality & Safety
Findings (1)
- LOWin do
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"bridgecore": {
"url": "https://bridgecore-mcp.chinlee2200.workers.dev/"
}
}
}Remote endpoints
https://bridgecore-mcp.chinlee2200.workers.dev/streamable-httphttps://mcp.usebridgecore.com/streamable-httpWhat it can do
Tool inventory
Tools (5)
🟢do(need, inputs, dry_run)
One tool for 3,604 app capabilities (n8n catalog + OpenAPI + MCP): say what should happen; get the exact call. Plain words in ('send an sms to +1 213 555 0100 saying hello', 'add a row to google sheets'); the matching capability is found, its required inputs are checked (values you said out loud — emails, #channels, +phones — are filled for you), and the exact HTTP/MCP request that would be sent is returned, with `missing` naming any input still needed. Preview only: this server never sends the request and never accepts credentials. A 'when …' need or several steps returns one preview per step; n8n-only steps come back as an importable n8n workflow. Running the request for real is offered separately by the Bridgecore Apify Actor (apify.com/bridgecore/bridgecore-automation-planner).
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"description": "What should happen, in plain words. One action to run it ('text +1… saying hi'); 'when …' for a flow."
},
"inputs": {
"type": "object",
"description": "Values for the capability's inputs by name (see `missing` in a dry run). Optional.",
"additionalProperties": true
},
"dry_run": {
"type": "boolean",
"default": true,
"description": "Kept for compatibility; this server always previews and never sends."
}
},
"required": [
"need"
]
}Output Schema
{
"type": "object",
"properties": {
"need": {
"type": "string"
},
"dry_run": {
"type": "boolean",
"description": "true = nothing was sent"
},
"fee_usd": {
"type": "number",
"description": "price per successful real call"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "One step: text, kind (trigger/action), the chosen tool or a gap; reversibility = read-only (changes nothing) / reversible (undo by hand) / irreversible (sends, posts, deletes, pays — out in the world), and approval_gate (an Approve/Decline message runs first)."
},
"description": "per step: capability, request (headers masked), missing inputs, status/data/error"
},
"ran": {
"type": "integer",
"description": "real calls made"
},
"charged": {
"type": "integer",
"description": "successful calls billed"
},
"workflow": {
"type": "object",
"description": "n8n workflow when a step can only run inside n8n"
},
"note": {
"type": "string"
}
},
"required": [
"need"
],
"additionalProperties": true
}🟢find_recipe(need, limit)
Find a ready-made automation recipe for a plain-words need, e.g. 'when a typeform is submitted add a row to google sheets and send a slack message'. Returns the best matching recipes (apps chained with →, what it does, the n8n workflow JSON, the blanks to fill and accounts to connect) plus matching public n8n templates (title + official link). Covers connecting apps, automating a workflow, syncing tools, and getting notified when something happens.
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"description": "What should happen, in plain words. Start with 'when …' for the trigger."
},
"limit": {
"type": "integer",
"default": 3,
"minimum": 1,
"maximum": 10,
"description": "How many recipes to return (1-10)."
}
},
"required": [
"need"
]
}Output Schema
{
"type": "object",
"properties": {
"need": {
"type": "string"
},
"recipes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "matching tested recipes, each with its n8n workflow, blanks and accounts"
},
"public_templates": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "public n8n templates: title + official link"
},
"planned_steps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "One step: text, kind (trigger/action), the chosen tool or a gap; reversibility = read-only (changes nothing) / reversible (undo by hand) / irreversible (sends, posts, deletes, pays — out in the world), and approval_gate (an Approve/Decline message runs first)."
}
}
},
"required": [
"need"
],
"additionalProperties": true
}🟢plan_automation(need, alternatives)
Turn a plain-words need into steps (one trigger + actions) and pick the concrete tool for each step from 3,000+ app capabilities (n8n nodes, OpenAPI, MCP). Reports a gap when the named app cannot do a step instead of substituting another app.
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"description": "What should happen, in plain words: 'when <trigger> <action>, then <action>'."
},
"alternatives": {
"type": "integer",
"default": 3,
"minimum": 1,
"maximum": 5,
"description": "Runner-up tools to list per step (1-5)."
}
},
"required": [
"need"
]
}Output Schema
{
"type": "object",
"properties": {
"need": {
"type": "string"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "One step: text, kind (trigger/action), the chosen tool or a gap; reversibility = read-only (changes nothing) / reversible (undo by hand) / irreversible (sends, posts, deletes, pays — out in the world), and approval_gate (an Approve/Decline message runs first)."
},
"description": "trigger + actions, each with the best tool, alternatives, or a gap"
}
},
"required": [
"need"
],
"additionalProperties": true
}🟢make_n8n_workflow(need, name, approval)
Generate an importable n8n workflow JSON from a plain-words need, with every node wired in order, values said out loud already filled (emails, #channels, trigger events), plus the list of blanks only the person can fill and the credentials to connect. Shape-checked; the person tests it in n8n before turning it on. Say 'and ask me first' (or approval='always') and a one-tap approval gate — a Slack/Telegram/Gmail message with Approve / Decline buttons — goes in front of the step, so nothing is sent, posted, deleted or paid until the person taps Approve.
Input Schema
{
"type": "object",
"properties": {
"need": {
"type": "string",
"description": "What should happen, in plain words. Start with 'when …' for the trigger; add 'and ask me first' before a step the person wants to approve."
},
"name": {
"type": "string",
"description": "Workflow name shown in n8n (optional; made from the need when left out)."
},
"approval": {
"type": "string",
"enum": [
"auto",
"always",
"never"
],
"default": "auto",
"description": "auto = gate the steps the need asks to approve ('ask me first'); always = gate every irreversible step (send, post, delete, pay); never = no gates."
}
},
"required": [
"need"
]
}Output Schema
{
"type": "object",
"properties": {
"need": {
"type": "string"
},
"workflow": {
"type": "object",
"description": "importable n8n workflow JSON"
},
"to_fill": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "blanks only the person can fill"
},
"accounts": {
"type": "array",
"items": {
"type": "string"
},
"description": "credentials to connect"
},
"problems": {
"type": "array",
"items": {
"type": "string"
},
"description": "shape-check findings (empty = clean)"
},
"approval": {
"type": "object",
"additionalProperties": true,
"description": "which steps got an Approve/Decline gate, through which app, and how to add one"
},
"steps": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true,
"description": "One step: text, kind (trigger/action), the chosen tool or a gap; reversibility = read-only (changes nothing) / reversible (undo by hand) / irreversible (sends, posts, deletes, pays — out in the world), and approval_gate (an Approve/Decline message runs first)."
},
"description": "one per step: tool, reversibility (read-only / reversible / irreversible), approval_gate"
},
"how_to_import": {
"type": "string"
},
"links": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"need"
],
"additionalProperties": true
}🟢inspect_workflow(workflow, add_gates, ask_via)
Read an existing n8n workflow JSON (a template from n8n.io, an export, anything) and say what it would do before it runs: every node's label (read-only / reversible / irreversible, computed from the node's own resource + operation), which irreversible steps (send, post, delete, pay) would run with nobody asked, which steps already have an approval in front of them, and which nodes have no account connected. With add_gates=true it returns a copy of the workflow with a one-tap Approve / Decline step (Slack, Telegram, Gmail…) wired in front of every such step. Nothing is run; the original is not modified.
Input Schema
{
"type": "object",
"properties": {
"workflow": {
"type": "object",
"description": "The n8n workflow JSON (nodes + connections), as exported or as a template's JSON.",
"additionalProperties": true
},
"add_gates": {
"type": "boolean",
"default": false,
"description": "Also return `gated_workflow`: a copy that asks before every irreversible step."
},
"ask_via": {
"type": "string",
"enum": [
"slack",
"telegram",
"gmail",
"discord",
"microsoftteams",
"whatsapp"
],
"default": "gmail",
"description": "Where the Approve / Decline message goes."
}
},
"required": [
"workflow"
]
}Output Schema
{
"type": "object",
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"verdict": {
"type": "string",
"description": "one line: what would run without asking"
},
"counts": {
"type": "object",
"additionalProperties": true,
"description": "nodes per label"
},
"risky": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "irreversible nodes with no approval in front"
},
"accounts_missing": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
}
},
"nodes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"description": "every node: app, label, why, gated, has_account"
},
"gated_workflow": {
"type": "object",
"additionalProperties": true,
"description": "only with add_gates: the workflow with Approve/Decline gates added"
},
"gated": {
"type": "array",
"items": {
"type": "string"
}
},
"to_fill": {
"type": "array",
"items": {
"type": "string"
}
},
"verified": {
"type": "object",
"additionalProperties": true
}
},
"required": [
"verdict"
],
"additionalProperties": true
}Community
Evidence