mirror of
https://github.com/open-webui/open-webui.git
synced 2026-05-07 03:18:23 -05:00
[GH-ISSUE #21902] feat: Per User - Encrypted Key/Value secrets vault #58275
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @icsy7867 on GitHub (Feb 26, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/21902
Check Existing Issues
Verify Feature Scope
Problem Description
I have been starting to explore making and using MCP servers. However one of the biggest issues I am facing are poor, specific user requirements. Authentication being the largest, but there are other concerns and capabilities that would be useful as well.
I have been experimenting with fastmcp, and I have made a really neat, simple MCP server with some useful IT diagnostics. like HTTP/HTTPS curl checks on a URL (Like getting headers and HTTP status codes), CA Chain retrieval on a specific IP/DNS and port (Like if someone needed an LDAPS CA Chain for their LDAPS connection), NMAP queries, TCP/UDP port checking. However all of these things are easy because anyone can do these things from pretty much anywhere.
Someone recently sent me this:
https://github.com/rhel-lightspeed/linux-mcp-server
Which looks really helpful and neat, but I would like to avoid manually managing permissions, and linking admin/root credentials for the entire MCP server. I would prefer to be able to track who does what and when as an IT Admin.
So I was thinking, what if there was a way that individuals could reference secret keys in the chat or per MCP server similarly to how kubernetes handles these:
These functonality is very helpful, as I can store deployments in gitlab/github, pull them with fleet, or share them without fear of sharing and revealing some sensitive password or string.
Desired Solution you'd like
Using the linux management MCP server as a hypothetical example... what if...
User John Smith could:
${{{MY_SECRET}}}) or click the little+symbol, and click a vault section, and being able to manually select a KEY to use.${{{MY_SECRET}}}would display in the chat as${{{MY_SECRET}}}, and when sharing the chats, other users, or even admins would only see ${{{MY_SECRET}}}Other considerations:
I.E
You may have a secret key called ${{{MY_SECRET_SSH_KEY}}} with an ssh key as the value. When talking to a specific MCP tool or service, I might want to tell the LLM that
MY SSH Key ${{{MY_SECRET_SSH_KEY}}}, so the "KEY" for that specific MCP server would be "My SSH Key", which should make more sense to the LLM when doing a function/tool call vsMY_SECRET_SSH_KEY ${{{MY_SECRET_SSH_KEY}}}(Though the LLM would probably understand this...)This could work for anything, but especially could be beneficial for OAUTH tokens, passwords, ssh or PKI certs, access tokens, etc...
Alternatives Considered
I couldnt find any alternatives.
Additional Context
No response