Plugins
Give the agent tools such as web search, site readers and your own MCP servers
A plugin gives the agent tools it can use in an Agentic chat. Each plugin is an MCP server: a service that offers a set of tools, such as "search Google" or "read this page". You connect it once, choose what each tool may do, and the agent calls those tools when your question needs them.
Plugins work in Agentic chats only. In a Basic (Q&A) chat, the Plugins menu is greyed out with the hint "Plugins work in Agentic chats".
There are three kinds:
- By SurfSense. SurfSense's own plugins, such as Google Search, Web Crawl and YouTube. They need a SurfSense license.
- Third-party. Plugins from other publishers, listed in Browse once you allow them.
- Custom. Any remote MCP server you add by its URL.
SurfSense plugins
Google Search, Web Crawl, YouTube, Reddit and the other built-in plugins
Third-party and custom plugins
Other publishers' plugins, and any MCP server by URL
Settings › Plugins
Open Settings › Plugins. It has two tabs, Browse and Yours, and an Add custom plugin button beside them. It opens on Yours when you have a plugin connected, and on Browse otherwise.
- Browse lists what you can connect. By SurfSense comes first, each plugin with its logo, a short description and "License required". Third-party follows, with the Allow third-party plugins switch in its header.
- Yours is a table of the plugins you added, with Plugin, Type and Status columns. Type is By SurfSense, Third-party or Custom. Click a row to open the plugin's details.
- Search plugins, beside the tabs, searches both lists at once by name, description, author or tool name. Results show Yours first, then Available.
Click a plugin in Browse to open its page. It shows About, the plugin's Tools, and Details: Publisher, Authentication, Connects to, Added, and links to its homepage and privacy policy. You can read all of this before you connect anything.
Connect a plugin
Open Settings › Plugins › Browse.
Click Connect on the plugin you want.
If SurfSense asks Allow connecting to …?, naming the plugin's server, allow it. SurfSense contacts no plugin server until you do. You can change this later in Settings › Network.
Give what the plugin needs, if anything: nothing, a key, a sign-in with your account in the browser, or your SurfSense license, which SurfSense sends for you.
A toast says "Reddit connected", for example, or "Couldn’t connect Reddit" with the reason and Report issue. The plugin then appears in Yours with the status On.
From the chat, + › Plugins › Add plugin takes you to Browse plugins or Add custom plugin, and Manage plugins opens Settings › Plugins.
Statuses in Yours
| Status | What it means |
|---|---|
| On | Ready for the agent. A New tools badge means a tool is new or changed and waits for you. |
| Off | You switched it off. Its key and tool settings are kept. |
| Connect | Not connected yet, or disconnected. A grey note says what Connect will ask: "Needs an OAuth app", "Needs more access", "Sign-in expired" or "Key refused". |
| Couldn’t connect | The server didn't answer. Open the plugin and use Refresh tools once it's back. |
| Needs a license, License expired, License revoked, License not recognized | A SurfSense plugin your license doesn't unlock. See License. |
| Third-party plugins are off | A third-party or custom plugin while Allow third-party plugins is off. |
| No longer listed | The publisher's plugin was removed from the list. It is no longer used. |
| SSE not supported | A plugin added over the older SSE transport in an earlier version. Remove it and add its Streamable HTTP address, which often ends in /mcp. |
A plugin's details
Click a plugin in Yours to open its details. At the top is one action, Connect or Disconnect, and a menu with more:
- Refresh tools asks the server for its tools again.
- Edit connection or Edit headers changes the keys you gave it.
- Change OAuth app, when you signed in with your own app.
- License settings, when your license was refused.
- Submit to the registry, on a custom plugin.
- Remove deletes the plugin, its key and its tool settings.
Disconnect drops the key or sign-in but keeps the plugin and its tool settings in Yours, so you can connect it again later.
Tool permissions
A plugin's details list its tools in two groups, Read-only and Can make changes. Each tool has three icons:
| Icon | What it does |
|---|---|
| Always allowed | The agent uses it without asking. |
| Needs approval | The agent asks before each use. |
| Blocked | The agent can't see or use it. |
Each group has its own menu, Always allow, Needs approval or Blocked, to set every tool in it at once. It shows Custom when the tools differ.
Some choices are closed, and the icon's tooltip says why:
- SurfSense's read-only tools never ask. "Needs approval" is dimmed on them: "Not needed: this tool only reads". Every tool of SurfSense's own plugins only reads.
- A tool that doesn't say it's safe always asks. If the server doesn't mark a tool as read-only or harmless, "Always allowed" is dimmed: "Not available: the server doesn’t say this tool is safe".
- Other tools ask by default. A tool from a third-party or custom plugin asks before each use until you set it to Always allowed.
New and changed tools
Every tool a plugin offers when you connect it starts on. After that, SurfSense checks the plugin's tools before chats. A tool the server adds later starts off and is marked New. A tool whose description changes, or that becomes less safe, is switched off and marked Changed. The plugin's details say "Some tools are new or changed. They stay off until you allow them." Pick a permission for the tool to allow it.
The check covers a tool's description and how safe its server says it is. A server can still change what a tool does without changing either, so allow tools only from servers you trust.
Use plugins in a chat
Plugins work in Agentic chats. The agent picks the right tool from your question, so most of the time you just ask.
- Mention a plugin. Type
@in the composer and pick a plugin, such as@youtube. The agent then uses that plugin for this message. - Switch plugins on and off. + › Plugins lists your connected plugins, each with a switch. The switch "Applies to all Agentic chats", not only this one.
- Approve a step. When a tool needs approval, the chat shows "Allow this step to run?" with what the agent wants to send. Click Allow once or Deny. Chats waiting on you are marked "Waiting for your approval".
- Read a step. Each plugin call shows as a step named after the plugin and tool. Open it to see the whole result.
- Save to Sources. On a finished plugin step, Save to Sources keeps its result as a note in your Sources, so later chats can cite it. Saving the same step again updates that note.
When a plugin can't be used, the reply says so above its steps and carries on without it: for example "Couldn’t reach Notion", "Sign in to Notion again", "Notion needs more access" or "Amazon needs a SurfSense license".
If @ shows nothing, it says why: "No plugins connected", "Your plugins are off. Turn one on from + › Plugins.", "Allow third-party plugins in Settings › Plugins to use them here." or "Your SurfSense license doesn’t unlock these plugins. Check Settings › License."
Plugins and Add from the web
+ › Add from the web… in Sources uses SurfSense's own plugins to search the web and pull links into your Sources, with no chat needed. You don't have to connect the plugins in Settings › Plugins for this. It needs a SurfSense license and plugins.surfsense.com allowed in Settings › Network. See Sources, and each SurfSense plugin page for which links it handles.
What a plugin can see
A plugin's server gets what the agent sends its tools, the keys, headers or sign-in you saved for that plugin, and your IP address. It can't open your files or Sources, but the agent may put text from the sources ticked for a chat into what it sends, such as a search query. Nothing a plugin returns goes into your Sources unless you save it.
Your keys, headers and sign-ins are stored encrypted on your computer. SurfSense adds them to each request itself, so the agent and the model aren't given them. A plugin's reply goes to the agent as it is, though, so if a server echoes a key back, such as in an error, the model and the chat see it.
Last updated on November 2, 2026