Secrets for AI agents that never see them — the CLI and MCP server of JFSecure
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/theone55/jfs{
"mcpServers": {
"jfs": {
"command": "jfs"
}
}
}Resumen de MCP Servers
# jfs — secrets for AI agents that never see them
`jfs` is the command line and **MCP server** of [JFSecure](https://secure.jfolio.org/), an offline password and
snippet manager. It lets Claude Code, Cursor or any MCP agent **use** a secret without ever **getting** it — and you
approve every use in the app.
This repository is the source of `jfs` itself, so you can read exactly what an agent talks to. It is a thin client:
it sends one JSON request over a local pipe to the **running, unlocked JFSecure app** and prints the answer. It never
opens vault files, never sees the vault password and has no crypto. (The app is a separate download; `jfs` ships with it.)

## MCP tools
| Tool | What it does | What the agent gets back |
|---|---|---|
| `list_secrets` | Lists secret and key names, with the environment variable each key becomes | Names only |
| `run_with_secrets` | Runs a command with a secret's keys as environment variables (all, some, or one on stdin) | Exit code and output, every value masked as `[JFSecure: NAME]` |
| `render_template` | Fills `{{Secret:key}}` in a template and writes the file (e.g. `.env`) | Which names were filled in |
There is no "get" tool, on purpose. Every use opens an approval window in JFSecure that shows the program, the
**exact command** and the secret: allow once, allow 15 minutes, or deny. For Claude Code a 15-minute approval covers
only that command and that secret.
```
# the agent called run_with_secrets(secret: "github", command: …)
exit code 0
variables set: TOKEN
--- stdout ---
token is [JFSecure: TOKEN]
{"login": "octocat", "plan": {"name": "pro"}}
```
## Set up
1. Install JFSecure and open your vault: `brew install theone55/jfsecure/jfsecure` (macOS),
`scoop bucket add jfsecure https://github.com/theone55/scoop-jfsecure; scoop install jfsecure/jfsecure` (Windows),
or [the installer](https://secure.jfolio.org/download) (Windows, macOS, Linux). `jfs` comes with it: on Windows the
app puts it on PATH at its first start (open a new terminal afterwards); on macOS (.dmg) and the Linux AppImage use
Settings → *Install the jfs command*; Homebrew and the .deb install it for you.
2. Add the MCP server:
```sh
claude mcp add --scope user jfsecure -- jfs mcp
```
Cursor (`~/.cursor/mcp.json`), Claude Desktop, Windsurf, VS Code — any stdio MCP client:
```json
{ "mcpServers": { "jfsecure": { "command": "jfs", "args": ["mcp"] } } }
```
More: https://secure.jfolio.org/agents
Also as an MCP bundle (`.mcpb`, Windows / macOS / Linux) on the [releases](https://github.com/theone55/jfs/releases) page, and in the official MCP Registry as `io.github.theone55/jfs`.
## Command line
```
jfs status is the app running and unlocked
jfs ls [secret|folder] names only, no approval needed
jfs get github/token print a value (approved in the app)
jfs copy github/token to the clipboard, nothing printed
jfs run github -- gh api user run with the secret's keys as env vars ($token → TOKEN); output masked when piped
jfs render .env.tpl -o .env fill {{Secret:key}} into a file
git config --global credential.helper "!jfs git-credential"
```
Full guide: https://secure.jfolio.org/cli
## What it protects — and what it doesn't
- The model never receives a value, so it can't end up in a transcript or a log.
- A prompt-injected agent can only ask; you see the exact command.
- The pipe is your OS user's only, and the app identifies the caller through the OS, not by what it says.
- **Masking is a seatbelt, not a wall:** a command you approve can still send a value away. Read the command.
## Build
```sh
cargo build --release # Rust stable; Windows, macOS, Linux
cargo test
```
The copy here follows each JFSecure release (`version` in Cargo.toml = the app's version it shipped with).
Issues and questions are welcome here.
MIT License.
Lo que la gente pregunta sobre jfs
¿Qué es theone55/jfs?
+
theone55/jfs es mcp servers para el ecosistema de Claude AI. Secrets for AI agents that never see them — the CLI and MCP server of JFSecure Tiene 0 estrellas en GitHub y su última actualización registrada es del 2026-10-11.
¿Cómo se instala jfs?
+
Puedes instalar jfs clonando el repositorio (https://github.com/theone55/jfs) o siguiendo las instrucciones del README en GitHub. ClaudeWave también te ofrece bloques de instalación rápida en esta misma página.
¿Es seguro usar theone55/jfs?
+
Nuestro agente de seguridad ha analizado theone55/jfs y le ha asignado un Trust Score de 95/100 (tier: Verified). Revisa el desglose completo de comprobaciones superadas y flags en esta página.
¿Quién mantiene theone55/jfs?
+
theone55/jfs es mantenido por theone55. La última actividad registrada en GitHub es del 2026-10-11, con 0 issues abiertos.
¿Hay alternativas a jfs?
+
Sí. En ClaudeWave puedes explorar mcp servers similares en /categories/mcp, ordenados por popularidad o actividad reciente.
Despliega jfs en tu cloud
Lleva este repo a producción en minutos. Cada plataforma genera su propio entorno con variables de entorno editables.
¿Mantienes este repo? Añade un badge a tu README
Pega el badge en tu README de GitHub para mostrar que está auditado por ClaudeWave. Cada badge enlaza de vuelta a esta página y muestra el Trust Score actual.
Más MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
Reverse engineer anything with agents, from app behavior down to native binaries.
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev