A local MCP server for Claude Desktop with persistent task management, file operations, document generation, and PDF indexing.
- SQLite persistence for tasks — tasks now survive server restarts and recompiles
- Zero native dependencies — uses
sql.js(SQLite as WebAssembly), installs on Windows/macOS/Linux without build tools - Two new task tools —
delete-taskandsearch-tasks - Weekly review tool —
tasks-completed-this-weekfor standups
- Node.js 18+
- npm
- Claude Desktop
git clone <your-repo-url>
cd mcp-server
npm installNo build tools required — sql.js is pure WebAssembly.
npm run build
npm startExpected output:
Task database created at: C:\Users\<you>\mcp-tasks.db
MCP Server v2.0.0 running on stdio
Task database: C:\Users\<you>\mcp-tasks.db
Edit your Claude config:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"local-dev": {
"command": "node",
"args": ["C:\\Projects\\mcp-server\\dist\\index.js"]
}
}
}Restart Claude Desktop after saving.
npm run watchnpm run build
# restart Claude DesktopTasks are stored in a SQLite database at:
- Windows:
C:\Users\<you>\mcp-tasks.db - macOS/Linux:
~/mcp-tasks.db
The database is created automatically on first run. The server loads it into memory on startup and saves it to disk after every write. You can open it with any SQLite viewer (e.g. DB Browser for SQLite).
Try these prompts in Claude Desktop after connecting:
| What you want | What to say to Claude |
|---|---|
| Add a task | "Create a task: review the API docs, high priority" |
| See all tasks | "List all my tasks" |
| Filter by status | "Show me all in-progress tasks" |
| Move a task forward | "Mark task-1 as done" |
| Find a task | "Search tasks for 'authentication'" |
| Weekly review | "What tasks did I complete this week?" |
| Clean up | "Delete task-3" |
| Tool | Description |
|---|---|
read-file |
Read any file from disk |
write-file |
Write/create a file |
list-directory |
List folder contents |
| Tool | Description |
|---|---|
create-task |
Create a task (saved to DB immediately) |
list-tasks |
List tasks, filterable by status |
update-task-status |
Move task to todo / in-progress / done |
delete-task |
Permanently delete a task |
search-tasks |
Search tasks by keyword |
tasks-completed-this-week |
Show tasks done in the last 7 days |
| Tool | Description |
|---|---|
generate-markdown-doc |
Generate a structured .md file |
generate-readme |
Scaffold a README.md template |
| Tool | Description |
|---|---|
read-pdf |
Extract text from a PDF |
index-documents |
Bulk-index PDFs in a folder |
search-documents |
Keyword search across indexed PDFs |
list-indexes |
Show all active indexes |
npm run build # Compile TypeScript to dist/
npm run dev # Run from source once (tsx)
npm start # Run compiled server (dist/index.js)
npm run watch # Run from source with auto-restart- QUICKSTART.md — setup and first run
- TUTORIAL.md — add your own tool
- TROUBLESHOOTING.md — common fixes
- API_REFERENCE.md — technical reference
- DOCUMENTATION.md — architecture overview