jarvis-mcp-server
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-mcp-serverfind notes about project alpha"
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-server
A personal MCP server for your Obsidian vault, SQLite database, and filesystem — accessible from any Claude client, anywhere.
What it does
Runs on your home server and exposes a set of tools to Claude via the Model Context Protocol. Claude on any device — mobile, web, desktop — can read and write your Obsidian vault, query a local SQLite database, and manage files, all authenticated via OAuth 2.1 over Tailscale.
Related MCP server: Obsidian MCP Server
Architecture
Claude (any device)
│
│ HTTPS + OAuth 2.1
▼
Tailscale Funnel ──► jarvis-mcp-server :3701
│
┌────────────┼────────────┐
▼ ▼ ▼
Obsidian REST SQLite DB Filesystem
:27123 data/jarvis (allowlist)Tools
📓 Obsidian Vault
Tool | Description |
| Read a note's full content |
| Create or overwrite a note |
| Append content to an existing note |
| List files in a vault folder |
| Full-text search across the vault |
🤖 Jarvis Workflows
Tool | Description |
| Save a conversation distillation to the vault |
🗄️ SQLite Database
Tool | Description |
| Run a SELECT query |
| Run INSERT / UPDATE / DELETE |
| List all tables |
| Show columns and types for a table |
📁 Filesystem
Tool | Description |
| Read a file (with optional line limit) |
| Write / overwrite a file |
| Append to a file |
| List directory contents (optionally recursive) |
| Move or rename a file/folder |
| Delete a file or folder (requires |
Security: All filesystem operations are restricted to directories listed in
FS_ALLOWED_PATHSinsrc/constants.ts. Paths outside this allowlist are rejected before any I/O runs.
Requirements
Node.js ≥ 18
Obsidian with the Local REST API plugin installed
Tailscale with Funnel enabled
A machine that stays on (home server, mini PC, etc.)
Setup
1. Install
git clone https://github.com/your-username/jarvis-mcp-server.git
cd jarvis-mcp-server
npm install
cp .env.example .env2. Configure .env
Variable | Where to get it |
| Obsidian → Settings → Local REST API → copy key |
| Your Tailscale machine URL, no trailing slash |
| Generate: |
| Generate: |
3. Set allowed filesystem paths
Edit src/constants.ts and update FS_ALLOWED_PATHS to the directories
you want Claude to have access to.
4. Build
npm run build5. Expose via Tailscale Funnel
tailscale funnel --bg 37016. Run (production)
npm install -g pm2
pm2 start dist/index.js --name jarvis-mcp
pm2 savePM2 is a process manager for Node.js. It keeps your server
running in the background without a terminal window open, automatically restarts it if it
crashes, and lets you check its status at any time with pm2 status.
Why not just
npm start? Runningnpm startdirectly ties the server to your terminal session — close the window and the server dies. PM2 runs it as a background daemon that survives terminal closures.
⚙️ Optional: Auto-start on Windows boot
By default PM2 itself doesn't survive a reboot on Windows. To fix that, this repo includes
pm2-start.bat — a one-line script that tells PM2 to restore your saved process list:
pm2 resurrectTo make the server start automatically every time Windows boots:
Press
Win + R, typetaskschd.msc, press EnterClick Create Basic Task
Name:
jarvis-mcp-server(or anything you like)Trigger: When the computer starts
Action: Start a program → browse to
pm2-start.batin this repoFinish
Now the server comes back online automatically after every reboot — no manual intervention needed.
7. Connect Claude
Settings → Connectors → Add connector → enter your Tailscale URL + /mcp
Use OAUTH_CLIENT_ID and OAUTH_CLIENT_SECRET from your .env when prompted.
Connector icon: Claude uses Google's favicon service to display connector icons. Since this server runs on a Tailscale domain (
*.ts.net) that Google can't reach, the connector will show a generic placeholder icon. This is cosmetic only — everything works normally. A custom icon would require pointing a public domain at your server.
Development
npm run dev # watch mode — recompiles on save
npm run build # production build
npm run clean # remove dist/Adding tools
Each domain has its own file:
src/
├── schemas/ ← Zod input schemas (entrance guards)
├── services/ ← Workers (ObsidianClient, SQLite connection)
├── tools/ ← Tool registrations (vault, sqlite, filesystem, jarvis)
└── utils/ ← Shared helpers (path safety)To add a new tool: define its schema in schemas/, implement it in tools/,
register it in buildServer() in index.ts.
Version history
Version | Notes |
1.0.0 | Initial release — Obsidian vault, SQLite, filesystem, OAuth 2.1 over Tailscale |
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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/Gallucky/jarvis-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server