Skip to main content

Overview

FOKS provides MCP servers that expose KV store and team operations to LLM tools like Claude Code. MCP servers run over stdio, so they can be plugged into any MCP-compatible client. There are currently two MCP servers:
ServerCommandDescription
foks-kvfoks mcp kvEncrypted key-value store operations
foks-teamfoks mcp teamTeam listing and membership queries

Setup

Claude Code

Add the servers to your ~/.claude.json:
{
  "mcpServers": {
    "foks-kv": {
      "command": "foks",
      "args": ["mcp", "kv"]
    },
    "foks-team": {
      "command": "foks",
      "args": ["mcp", "team"]
    }
  }
}
Then restart Claude Code or run /mcp to pick up the new servers.

Other MCP Clients

Any MCP client that supports stdio transports can use these servers. Point it at the foks binary with the appropriate mcp subcommand.

foks mcp kv

Exposes the FOKS encrypted key-value store. All operations accept an optional team parameter to act on behalf of a team instead of the personal store.

Tools

ToolDescription
listList contents of a directory
getRead file contents
putWrite file contents
mkdirCreate a directory
rmRemove a file or directory
mvMove or rename an entry
statGet metadata for an entry
usageShow storage usage

Examples

Once configured, an LLM can interact with your encrypted store directly:
> List what's in my KV store
(calls list with path "/")

> Store this API key for me
(calls put with path "/secrets/api-key" and content)

> What's in the team's shared config?
(calls get with path "/configs/app.json" and team "engineering")
The team parameter works on all tools, allowing the LLM to read and write team-scoped data:
> Put this deploy config in the devops team store
(calls put with path "/deploy/config.yml", content, and team "devops")

foks mcp team

Exposes team listing and membership queries.

Tools

ToolDescription
listList the members of a team (requires team name)
list-membershipsList all teams the current user is a member of

Examples

> What teams am I on?
(calls list-memberships)

> Who's in the engineering team?
(calls list with team "engineering")

Output Format

list returns tab-separated rows: name, host, src-role, dst-role, added-time. list-memberships returns tab-separated rows: team, src-role, dst-role, via, index-range.