TypingMind + ToolGlue
TypingMind runs in the browser, so it cannot speak MCP directly; most MCP servers do
not allow a browser tab to connect to them. ToolGlue's /api surface is
plain bearer-only HTTP with CORS enabled, which is exactly the shape TypingMind's
plugins expect, so your whole workspace can be used there with no proxy in between.
The ToolGlue plugin: your whole workspace, one import
Import one plugin and TypingMind behaves like an MCP client: it can list your workspace's live tools (saved actions, Smart Tools, and hosted external MCP tools) and run any of them by name. Because the tool list is fetched live on demand, a tool you build tomorrow is callable in TypingMind tomorrow, with nothing to re-import. The plugin document itself contains no secret and no workspace data; the API key you paste into its settings decides which workspace it sees.
Setup takes three steps:
-
In TypingMind, open Plugins, choose Import plugins, and paste
this deployment's plugin URL:
The same URL (with copy and download buttons) is on the Keys page. On a self-hosted TypingMind that prefers files, download the JSON there and use Import plugin from JSON instead.https://toolglue.dev/integrations/typingmind/toolglue.json -
Mint an API key on the Keys page with the
actions:runscope and paste it into the plugin's settings. TypingMind keeps it in your browser. -
Enable the plugin in a chat and ask for anything your tools can do. The model calls
toolglue_list_toolsto discover what exists, thentoolglue_run_toolwith the tool's name and input. Every run is billed and recorded exactly like a run from any other agent, read-only/destructive markers ride along, and revoking the key cuts access within seconds.
One plugin per bundle: hand a chat exactly the tools it needs
Every tool bundle also serves its own locked-down plugin at
/integrations/typingmind/b/{slug}.json. It works exactly like
the workspace plugin, but its list and run functions only ever see the bundle's
assigned tools, and its function names carry the bundle's slug, so you can import
the workspace plugin and several bundle plugins side by side and give each chat a
different, deliberately narrow surface. Find the import URL (with copy and download
buttons) on the bundle's page. The same API key rules apply; the bundle only narrows
what is listed and runnable through that plugin.
Let agents build tools from TypingMind
While your workspace's tool window is open (Settings, Agent tool changes),
the workspace plugin also lists the builder tools: create_action,
update_action, create_smart_tool,
generate_connector, fix_connector, and friends. The pasted
key must carry the matching scope (actions:build for builds,
connections:write for connector edits), and everything is audited and
billed exactly like the same request from an MCP agent. Close the window (or let it
expire) and the builder tools disappear from the list and refuse to run. Deleting a
tool this way is a soft delete: it vanishes from agents immediately and stays
restorable from the tool's page in the portal.
Import a single Smart Tool as a plugin
Prefer a strongly typed plugin for exactly one tool (its inputs become the plugin function's own parameters, no listing step)? Turn on HTTP endpoint on a Smart Tool's editor page, and a "Use in TypingMind" block appears with a per-tool import URL:
https://toolglue.dev/integrations/typingmind/YOUR-TOOL-ID.json
In TypingMind, open Plugins and choose Import Plugin from URL, then paste the link.
The imported plugin asks for one setting: a ToolGlue API key. Mint a key on the
Keys page scoped to only smart_tools:run, so the key sitting in
TypingMind's browser storage can do exactly one thing: run this tool. The plugin
calls POST /api/tools/{key} with your input and the key as an
Authorization header; ToolGlue never sees or stores the key anywhere but as the
credential you minted.
Dynamic Context via API
TypingMind's Dynamic Context feature calls a URL with a header and injects the response straight into an agent's system prompt, on a client-side cache schedule you control. Any HTTP-enabled Smart Tool's GET endpoint is exactly that shape:
curl -H "Authorization: Bearer tg_YOUR_KEY" https://toolglue.dev/api/tools/your-tool-key
Query parameters bind to the tool's input schema, so a tool like "summarize the open pipeline" can brief an agent before every chat. Set TypingMind's cache duration to match how often the underlying data actually changes; ToolGlue's per-key rate limit and the workspace's spend limits already bound the recurring cost of a context call that fires on every new chat.
Works today: the private MCP connector
Before importing anything, TypingMind can already reach a whole ToolGlue workspace
through a private MCP connector pointed at the workspace's MCP URL (or a bundle URL
for a narrower tool set), the same way any other MCP client connects. That one
connector config replaces one-per-integration setup: every connector and Smart Tool
already wired up in the workspace shows up as tools TypingMind can call. See
Connect your agent for the URL and the
mcp.json snippet.