Jarvis Markdown MCP
Jarvis Markdown MCP is a local-first memory and productivity server that helps AI coding agents manage work sessions, reminders, and durable knowledge through plain Markdown files stored on your computer.
Initialize the vault (
initialize_vault): Set up the required Jarvis folder structure (~/.jarvis/) if it doesn't already exist.Get current context (
get_current_context): Read your active work session (NOW.md), today's daily summaries, and the list of saved memories.Start a work session (
start_work): Begin a focused session by recording an objective, optional summary, and definition of done.Log progress (
log_progress): Append concise progress notes (with optional evidence references) to today's daily log during an active session.Finish a work session (
finish_work): Close the current session with a status ofcompleted,partial, orblocked, along with a summary and any remaining work notes.Add a reminder (
add_reminder): Create a task entry inREMINDERS.md, optionally scheduled with a specific due date and time.List reminders (
list_reminders): View all pending reminders, with an option to include completed ones.Complete a reminder (
complete_reminder): Mark a specific reminder as done by its ID.Save a memory (
save_memory): Persist a durable, explicitly saved memory as a titled Markdown file under~/.jarvis/memories/.Search memory (
search_memory): Full-text search acrossNOW.md, daily logs, and durable memory files, with a configurable result limit.Proactive check-ins (Linux only): Optional desktop notifications for morning planning, due tasks, stale work, and evening reviews.
All data is stored as ordinary Markdown files, ensuring human readability and direct access without a database.
Stores encrypted backups of the Markdown vault in a private GitHub repository for remote restoration.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jarvis Markdown MCPStart a work session for the UI redesign project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jarvis MCP
Jarvis MCP is a local-first memory and productivity server for AI coding agents. Codex or Claude supplies the reasoning, while durable memory remains ordinary Markdown on your computer.
It gives an MCP-compatible AI client a durable work context, reminders, searchable memories, and bounded proactive check-ins without a database, cloud account, or model lock-in.
Read VISION.md for the product direction: a proactive, explainable productivity assistant that can eventually be accessed securely from anywhere.
What It Does
Keeps the active work session in
~/.jarvis/NOW.md.Maintains
~/.jarvis/INDEX.mdas a compact map of all durable knowledge and includes it in every context bootstrap.Stores pending and completed tasks in
~/.jarvis/REMINDERS.md.Appends simple interaction summaries to
~/.jarvis/daily/YYYY-MM-DD.md.Saves durable memories under
~/.jarvis/memories/.Consolidates local Codex conversations every five hours into evidence-linked memory candidates.
Creates client-side encrypted daily backups and verifies remote restoration weekly.
Prevents exact duplicate reminders and can consolidate existing repeated tasks without deleting audit history.
Searches the Markdown vault without a database.
Exposes everything to MCP-compatible clients through a local STDIO server.
Optionally sends bounded morning, due-task, stale-work, and evening desktop check-ins on Linux.
It does not yet sync devices or provide voice and dedicated UI features.
Related MCP server: Codex Memory
Requirements
Node.js 20 or newer
git,gh,tar,zstd, andagefor encrypted backupsAn MCP client such as Codex CLI, Codex desktop, the Codex IDE extension, or Claude Code
For proactive Linux notifications: systemd and
notify-send
Install And Connect
Easiest setup with Codex
Your friend can install a new private Jarvis instance without copying your memories or editing configuration by hand:
git clone https://github.com/ash25082003/jarvis-mcp.git
cd jarvis-mcp
codexThen tell Codex:
Set up Jarvis for me.
The repository's AGENTS.md directs Codex to run the idempotent setup script. It installs exact dependencies, builds Jarvis, creates a new empty vault with governance and recovery documentation, adds global Jarvis guidance without replacing unrelated instructions, registers the local MCP server, and installs a jarvis launcher. Codex then offers consent-driven setup for five-hour dream consolidation, desktop check-ins, and a dedicated encrypted backup.
After setup finishes, restart Codex and run:
jarvisThe cloned repository must remain at the same path because the MCP configuration starts Jarvis from that installation. To check prerequisites without changing anything, run npm run setup:codex:check. To repair or rerun the installation directly, run npm run setup:codex.
See docs/CODEX_SETUP.md for the complete walkthrough and docs/CONFIGURATION.md for every path, variable, schedule, and privacy boundary.
Easiest setup with Claude Code
Your friend can install Jarvis without editing any configuration by hand:
git clone https://github.com/ash25082003/jarvis-mcp.git
cd jarvis-mcp
claudeThen tell Claude Code:
Set up Jarvis for me.
The repository's CLAUDE.md tells Claude to run the idempotent setup script. The script installs dependencies, builds Jarvis, creates a new empty vault for that user, registers Jarvis at Claude Code's user scope, and installs the conversation behavior for all of that user's Claude Code projects. It never copies another user's memories or credentials.
After setup finishes, exit and restart Claude Code. The cloned repository must remain at the same path because the local MCP configuration starts Jarvis from that installation.
To rerun or repair the setup directly:
npm run setup:claudeManual setup
Clone the repository and build the server:
git clone https://github.com/ash25082003/jarvis-mcp.git
cd jarvis-mcp
npm ci
npm run buildJarvis stores its vault in ~/.jarvis by default. To use another folder, replace the value of JARVIS_HOME in the commands below.
The MCP client starts the server when it needs it. You do not need to run npm start in a separate terminal.
Codex
The recommended installer performs all of these steps and preserves existing global guidance:
npm run setup:codexFor a manual connection from the project directory:
codex mcp add jarvis --env JARVIS_HOME="$HOME/.jarvis" -- node "$(pwd)/dist/src/index.js"On Windows PowerShell, use absolute paths for both values:
codex mcp add jarvis --env JARVIS_HOME="C:\Users\YOUR_NAME\.jarvis" -- node "C:\path\to\jarvis-mcp\dist\src\index.js"Verify the connection:
codex mcp get jarvisClaude Code
Connect Jarvis from the project directory:
claude mcp add --transport stdio --scope user jarvis --env JARVIS_HOME="$HOME/.jarvis" -- node "$(pwd)/dist/src/index.js"Verify the connection:
claude mcp listOn Windows, use absolute paths for JARVIS_HOME and dist/src/index.js.
After connecting, restart the client and verify that Jarvis appears in its MCP server list. In Claude Code, use /mcp to inspect the connection.
Conversation Style
Jarvis keeps its conversation behavior separate from the MCP server:
prompts/JARVIS.mdis the provider-independent conversation contract.prompts/CODEX.mdis the Codex adapter used by the personal launcher.prompts/CLAUDE.mdis the Claude Code adapter to add to the relevantCLAUDE.mdinstructions.
This separation matters: MCP supplies facts and actions, while the AI client is responsible for turning them into natural conversation. The contract tells Jarvis to keep internal terms such as MCP, tools, and raw Markdown paths out of ordinary replies.
First Conversation
Start Codex or Claude Code and say:
Use Jarvis. Show my current context, then help me choose one concrete work objective and start a work session. Ask me for a definition of done if it is unclear.
During work:
Log that I finished the first six evaluation tasks. Evidence:
results/.
At the end:
Finish this work session honestly as completed, partial, or blocked, and summarize what remains.
To save something durable:
Save this as a Jarvis memory: Markdown is the canonical source of truth, and model providers must remain replaceable.
To create a reminder:
Remind me to review the Jarvis roadmap at 11:00 tomorrow.
Proactive Check-ins
On Linux, install the optional user-level timers:
npm run checkins:installThe default schedule is:
Morning planning at 09:00.
Due-task and stale-work checks once per hour.
Evening review at 18:00.
Quiet hours from 20:00 through 08:00.
At most three notifications per day.
Settings live in ~/.config/jarvis/check-ins.env. After changing them, the next check uses the new values.
Preview a check-in without sending or recording it:
npm run check-in -- --kind morning --dry-runDisable the timers while keeping your settings:
npm run checkins:uninstallProactive Check-ins v1 uses deterministic local rules, not unattended model calls. This makes each notification explainable and avoids background token usage.
Dream Consolidation
Jarvis can run an optional five-hour “dream cycle” over local Codex transcripts. Each cycle:
Reads only user-originated CLI and VS Code threads from the completed five-hour window; internal subagent threads are excluded.
Redacts common credential formats, bounds large messages and tool output, and treats transcript content as untrusted data.
Uses an ephemeral, read-only Codex run with a strict JSON output schema.
Stores an immutable cycle report with session IDs, timestamps, and brief supporting quotes.
Automatically promotes only non-sensitive candidates with confidence of at least 0.90, importance of at least 3, and direct evidence.
Sends sensitive, conflicting, or uncertain candidates to a review queue. Detected tasks are surfaced but never become reminders automatically.
Install the exact five-hour user timer:
npm run dream:installPreview transcript coverage without calling the model or writing data:
npm run dream -- --dry-runRun the first cycle immediately, inspect status, and inspect logs:
npm run dream -- --force
npm run dream -- --status
systemctl --user status jarvis-dream-cycle.timer
journalctl --user -u jarvis-dream-cycle.serviceSettings live in ~/.config/jarvis/dream-cycle.env. The timer catches up bounded five-hour windows after downtime, uses a two-minute settlement delay to avoid partially written transcript records, and advances its checkpoint only after a complete successful cycle.
Disable background runs without deleting memories or reports:
npm run dream:uninstallThe MCP tools get_dream_status, list_dream_candidates, and review_dream_candidate expose the latest consolidation and let a user approve or reject queued candidates. Approval writes a canonical auto-*.md memory; original cycle evidence remains unchanged.
Encrypted Backups
Jarvis keeps the live Markdown vault readable locally and stores only client-side age ciphertext in the private backup repository. The remote contains a compressed encrypted snapshot, public recipient, and integrity manifest; it never receives plaintext vault files or the private identity.
The backup path performs these checks in order:
Verify the configured GitHub repository is private.
Scan every text file for common credentials without printing matched values.
Build a deterministic
tar.zstarchive and compare its plaintext hash with the last valid snapshot.Skip both encryption and commit creation when content is unchanged.
Encrypt changed content locally, commit only the ciphertext and manifest, and push non-interactively.
Once per week, clone the remote into a temporary directory, verify both checksums, decrypt and extract it, check required vault files, rerun the credential scan, record success, and delete the temporary restore.
Commands:
export JARVIS_BACKUP_REMOTE=https://github.com/YOUR_ACCOUNT/YOUR_PRIVATE_BACKUP.git
npm run backup:setup
npm run backup
npm run backup:verify
npm run backup:install
npm run backup:uninstallThe default timers run the backup daily around 03:15 and restoration verification every Sunday around 04:15, with a randomized delay. Settings and the private identity live under ~/.config/jarvis/; stable runtime copies live under ~/.local/lib/jarvis-backup/; the dedicated backup checkout and verification status live under ~/.local/share/jarvis/ and ~/.local/state/jarvis/.
The identity at ~/.config/jarvis/backup-age-key.txt must be copied to an offline password manager. Losing that identity makes remote snapshots unrecoverable.
Where Your Data Lives
~/.jarvis/
├── AGENTS.md # Vault governance and privacy rules
├── README.md # Structure, ownership, and recovery guidance
├── INDEX.md # Generated knowledge map included in every context bootstrap
├── NOW.md # Active work session
├── REMINDERS.md # Pending and completed reminders
├── daily/YYYY-MM-DD.md # Concise work and check-in history
├── memories/*.md # Explicit and approved/automatic durable memories
└── dreams/
├── LATEST.md # Latest cycle and review summary
├── state.json # Successful-window checkpoint
├── review-queue.json # Hybrid human review queue
└── cycles/ # Immutable JSON and Markdown cycle reportsThe index lists every durable memory by path and title, recent daily logs, and counts for immutable dream-cycle records. Jarvis regenerates it from the vault before composing current context, so the map cannot silently drift when files are added or removed. Detailed memory contents stay on disk until they are relevant and can be retrieved with search_memory, avoiding an ever-growing prompt.
These are ordinary Markdown files. You can open, edit, back up, or move them without Jarvis.
MCP Tools
initialize_vaultget_current_contextstart_worklog_progressfinish_workadd_reminderlist_reminderscomplete_reminderdeduplicate_reminderssave_memorysearch_memoryget_dream_statuslist_dream_candidatesreview_dream_candidate
Development
npm testThe next feature should be added only after using this basic work-session loop in real work.
How It Works
You -> Codex or Claude -> Jarvis MCP tools -> Markdown files on your computer
^
systemd timers -> relevance rules -> desktop notifications
local Codex transcripts -> dream consolidation -> evidence-backed memoriesThe model decides when to call a Jarvis tool. Jarvis only validates the request and reads or writes the Markdown vault. Your memory remains usable without Jarvis because the files are plain text.
Roadmap
Learn from real use of the work-session and proactive check-in loops.
Add a context composer, dialogue director, and response-quality evaluation layer.
Add reminder feedback, snooze controls, and configurable schedules.
Learn from dream-consolidation review decisions and improve candidate ranking.
Add authenticated remote access and multi-device use without giving up local ownership.
Adopt MCP Apps and Tasks after the
2026-07-28specification and target clients support them.
Privacy
Jarvis does not operate its own cloud service. Your MCP client or model provider may process text returned by tools. When dream consolidation is enabled, the relevant bounded transcript window and existing Jarvis context are sent through your authenticated Codex account for analysis. Raw source transcripts remain in Codex storage, and Jarvis stores only structured reports and brief evidence excerpts. Encrypted backups are protected before upload, but repository privacy and the offline encryption identity still matter. Protect ~/.codex, ~/.jarvis, and ~/.config/jarvis/backup-age-key.txt as sensitive data.
License
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityAmaintenanceA portable memory server for MCP that stores durable memories as markdown files, enabling AI agents to create, search, and organize persistent knowledge.Last updated117MIT
- AlicenseBqualityCmaintenanceLocal Markdown-backed memory tools for Codex and other MCP-capable agents. Exposes durable agent knowledge via CLI and MCP server.Last updated5MIT
- Alicense-qualityBmaintenancePersistent memory MCP server that stores and retrieves memories in Markdown files, enabling shared context across multiple AI agents with hybrid search and deduplication.Last updatedMIT
- Flicense-qualityFmaintenanceA local-first, team-ready MCP server providing durable memory for LLM-based coding workflows with multiple storage backends and fast search.Last updated4
Related MCP Connectors
User-owned memory for AI agents, Copilot, Claude, IDEs, CLIs, and chat apps over remote MCP.
Local-first RAG engine with MCP server for AI agent integration.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ash25082003/jarvis-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server