Repository navigation
Feature request - Add MCP support (with authorization using API keys) #1611
Replies: 2 comments 1 reply
|
Thanks for the suggestion, and no worries about the number of requests. Just to be sure I understand it correctly: Poznote already ships an MCP server, so what you are asking for is the other direction, the built-in AI assistant acting as an MCP client so it can call external tools such as a web search before writing a note. Is that right? I have not decided anything yet, I am only thinking out loud here. If I were to do it, a generic approach would probably make more sense than a fixed list of providers: a remote MCP server added in the settings with its URL and an API key, and a choice of which of its tools the assistant may use. Servers that only run locally over stdio (started with npx for example) and OAuth would most likely be out of scope. There are also a few things that make me cautious. Web content is untrusted, and the assistant can edit your notes, so this is not a small change from a security point of view. The assistant also already exposes around 25 tools of its own, and adding more on top works well with large hosted models but can be unreliable with small local ones. That is why I have a question before going any further: which AI provider and model do you use with the assistant in Poznote? It would help me judge whether this would actually work well in practice. |
|
I went ahead and implemented it, it will be in the next version. Since you offered to test it, here is how it works. It is off by default. An administrator turns it on in Settings > Admin Tools > AI Assistant, in a new "External tools" section, and adds servers there: a name, the URL of the MCP endpoint, an optional API key sent as a Bearer token, and optional custom headers for servers that take their key another way. A second switch lets every user add their own servers in Settings > My AI Assistant. As discussed, only remote servers over HTTP are supported, no stdio and no OAuth. When you add a server, Poznote reads the tools it offers and lists them with a checkbox each, so you choose which ones the assistant may call. The list is only read again when you click "Check and refresh tools", so a server cannot add or change a tool behind your back. I tested it with https://mcp.exa.ai/mcp: the assistant searched the web, read a page and then created a note from what it found. Your idea of enabling and disabling tools is in as well, and it also covers the assistant's own tools: in Settings > My AI Assistant you can untick any of them, and unticking the "Changing your notes" list leaves the assistant able to read your notes and search the web but not to modify anything. That is the setup I would recommend if you are worried about what a web page could make the model do. In the chat, a globe button next to the input turns external tools on and off, and every external call is shown in the conversation with the server, the tool and what was sent to it. While I was in there I added two other things to the chat. Each question and answer now has a small button to copy it, the answer being copied as Markdown so it pastes cleanly into a note. And there is now a "+" button to start a new conversation and a history button that lists your last ten conversations per workspace, so you can pick one up again or delete it. The history is stored on the server, not in the browser, so it follows you from one device to another. I could not test with DeepSeek or MiMo, so I would be glad to know how it behaves with those, and with the other search servers you mentioned. |
Uh oh!
There was an error while loading. Please reload this page.
I know it could become over-engineered with all these features we requested here, but... Here I will post a new one.
As a user, I want to have the ability to add a custom MCP server (for example, I will use Exa MCP and Keenable MCP) to search the web before asking a model to write a note for me.
Or, maybe it could be possible to add only a set of MCP servers like Tavily, Exa, Keenable, and Brave Search.
All reactions