Commit 9057fea
authored
Feat/node butterbase (#1069)
* feat(node): add Butterbase MCP client node (#1042)
Clone of tool_mcp_client hardcoded to Butterbase's Streamable HTTP MCP
server (https://api.butterbase.ai/mcp, Bearer auth). Discovers and exposes
Butterbase's backend tools (init_app, schema, auth, storage, functions,
RAG) to agents as butterbase.<tool>. Includes example pipe and unit tests
(namespacing, tool cache, dispatch).
* feat(example): butterbase agent pipe — Anthropic LLM + tool_butterbase
RocketRide Wave agent wired to tool_butterbase (and the required
memory_internal), using Claude (claude-sonnet-4-6). Both keys use
ROCKETRIDE_-prefixed env vars so pipeline substitution resolves them:
ROCKETRIDE_ANTHROPIC_KEY and ROCKETRIDE_BUTTERBASE_API_KEY.
* feat(node): butterbase — use Smithery icon URL for the node icon
Butterbase publishes no vector logo, so point the icon field at the
official Smithery server icon URL. Icon.tsx renders http(s) icon values
via <img>, so a remote PNG works without bundling a local SVG.
* chore(node): butterbase — drop unused placeholder icon (icon is the Smithery URL)
* feat(node): butterbase — rename to 'Butterbase MCP Client', drop experimental flag
Display title (node + default profile + shape) is now 'Butterbase MCP
Client'; removed the 'experimental' capability so the card shows no
EXPERIMENTAL badge. Internal ids (tool_butterbase, prefix, protocol) unchanged.
* docs(node): butterbase — add explanatory comments to services.json (match llm_anthropic style)
* docs(node): butterbase — document Developer Mode prerequisite
The Butterbase app must have Developer Mode enabled for the agent to
create/modify resources (writes are rejected otherwise). Added to the
README (Prerequisite section) and the node description shown in the builder.
* Working example
* refactor(node): butterbase — API key dashboard link + extract magic constants
- API Key field help now links to the Butterbase dashboard (dashboard.butterbase.ai
→ API Keys), matching the xTrace pattern.
- Extract transport defaults to named constants (_MCP_PROTOCOL_VERSION, _CLIENT_NAME,
_CLIENT_VERSION, _DEFAULT_TIMEOUT_S) to avoid magic values in the client signature.
* test(node): butterbase — add tool_butterbase to skip_nodes (needs live API key)
Its dynamic test would connect to the Butterbase MCP server and requires a
live bb_sk_ key, so exclude it from the default CI run (opt-in via
ROCKETRIDE_INCLUDE_SKIP). Mocked unit tests still cover the logic.
* docs(example): butterbase pipe — agent calls butterbase_docs(overview) first to verify connectivity
* refactor(node): butterbase as a branded service*.json variant of tool_mcp_client
Per review: the cloned tool_butterbase node was byte-identical to tool_mcp_client
(transport + IInstance), so drop it and add a branded manifest
(tool_mcp_client/services.butterbase.json) that reuses the same implementation
via path=nodes.tool_mcp_client — same pattern as response/*. Keeps the
'Butterbase MCP Client' title + logo + Butterbase Streamable-HTTP preset, with
zero duplicated code. Removes the standalone node, its test, and the conftest
skip entry; example pipe updated to the mcp_client config shape (transport+bearer).
* docs(example): butterbase pipe — encode the gotchas we learned fixing the forum
Enrich the agent instructions with the practical lessons from repairing a real
Butterbase app: enable Developer Mode for writes; keep schema/frontend field
names consistent (body vs content); use the absolute data API base and the
separate /auth/<app_id> base; set is_published for anon reads; auto-login after
signup (no email verification needed); ensure the frontend deployment reaches READY.
* fix(example,node): address PR #1069 review — Anthropic LLM, namespaced docs tool, commented manifest
- Example pipe: switch LLM to llm_anthropic (claude-sonnet-4-6,
ROCKETRIDE_ANTHROPIC_KEY) to match the Wave+Anthropic+Butterbase intent.
- Example pipe: the agent calls the runtime-namespaced tool
'butterbase.butterbase_docs' (serverName.tool), not the flat name.
- services.butterbase.json: add the // Required/Optional comment blocks
(matching llm_anthropic style) and ensure a trailing newline.
* feat(node): butterbase — vendor the icon locally instead of the Smithery URL
Download the Butterbase mark, downscale to 96px, embed as a data-URI in a local
butterbase.svg (next to mcp.svg) and point the manifest icon at it. Removes the
runtime dependency on the external Smithery URL (which could disappear).1 parent d34d7fc commit 9057fea
3 files changed
Lines changed: 280 additions & 0 deletions
File tree
- examples
- nodes/src/nodes/tool_mcp_client
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
0 commit comments