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:
    https://toolglue.dev/integrations/typingmind/toolglue.json
    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.
  • Mint an API key on the Keys page with the actions:run scope 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_tools to discover what exists, then toolglue_run_tool with 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.

Something went wrong on our side. Reload
Interactive features couldn't start. The realtime connection is being blocked. If this domain sits behind Cloudflare or a WAF, allow websockets to /_blazor. Retry