Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300Β΅s in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.
MCP server for org-mode notes and tasks
This repo connects agent tools to org-mode files through MCP. It exposes resources for files, outlines, headings, IDs, and agenda views, and tools for search, capture, and TODO updates. The workspace also ships a CLI for scripting and testing, plus plugin and instruction files for Claude Code, Codex, Cursor, and OpenCode.
Builders who keep an org-mode knowledge base and want an agent to search, read, capture, and update it.
You can manage org-mode notes and tasks from your agent instead of switching back to Emacs or editing files by hand.
What it does
Org-mode MCP resources
Provides `org://`, `org-outline://`, `org-heading://`, `org-id://`, and `org-agenda://` resources for listing files, reading content, and browsing structure.
Search and agenda tools
Includes `org-search` for fuzzy full-text search and `org-agenda` for filtering tasks by date, state, tags, and priority.
Capture and update commands
Adds `org-capture` to append headings with planning data and properties, and `org-update-todo` to change TODO state, title, body, timestamps, and properties in place.
Agent skills and plugin packs
Ships skills for Claude Code, Codex, Cursor, and OpenCode so agents know how to use the server for agenda, search, capture, and TODO updates.
CLI for scripting and testing
Includes `org-cli`, which mirrors the server features for shell use, config inspection, search, agenda queries, capture, and updates.
How to get it
- 1Download the latest pre-built binaries from GitHub Releases
curl -LO https://github.com/szaffarano/org-mcp-server/releases/latest/download/org-mcp-server-x86_64-unknown-linux-gnu.tar.gz tar xzf org-mcp-server-x86_64-unknown-linux-gnu.tar.gz sudo mv org-mcp-server /usr/local/bin/
- 2Run
cargo install org-mcp-server --locked cargo install org-cli --locked
- 3Run
nix run github:szaffarano/org-mcp-server # run directly nix profile install github:szaffarano/org-mcp-server # install to profile nix develop github:szaffarano/org-mcp-server # development shell
- 4Run
git clone https://github.com/szaffarano/org-mcp-server cd org-mcp-server cargo build --release
README
org-mcp-server
π§ Work in Progress: This project is under active development.
A Model Context Protocol (MCP) server for org-mode knowledge management. Provides search, content access, and note linking capabilities for your org-mode files through the MCP protocol.
Features
MCP Resources
org://β List all org-mode files in configured directoriesorg://{file}β Access raw content of{file}org-outline://{file}β Get hierarchical structure of{file}as JSONorg-heading://{file}#{heading}β Access specific headings by pathorg-id://{id}β Find content by org-mode ID propertiesorg-agenda://β List all agenda items and tasksorg-agenda://todayβ Today's scheduled agenda itemsorg-agenda://weekβ This week's scheduled agenda itemsorg-agenda://day/{YYYY-MM-DD}β Agenda for a specific dayorg-agenda://week/{N}β Agenda for week number Norg-agenda://month/{N}β Agenda for month number Norg-agenda://query/from/{YYYY-MM-DD}/to/{YYYY-MM-DD}β Custom date range
MCP Tools
org-file-listβ List all org files in configured directoriesorg-searchβ Full-text fuzzy search across all org filesorg-agendaβ Query agenda items with filtering by dates, states, tags, and prioritiesorg-captureβ Append a heading to an org file. Supports TODO state, priority, tags, body, SCHEDULED/DEADLINE/CLOSED timestamps (with repeater and warning suffixes), property drawer entries, and datetree expansion.org-update-todoβ Update an existing heading in place. Set or clear todo_state, priority, tags, planning timestamps, heading title, body text, and property drawer entries (per-key upsert/remove).
Agent Skills Plugin
This repository ships skills for Claude Code, Codex, Cursor, and OpenCode that guide agents to use the MCP server effectively.
| Skill | Purpose |
|---|---|
org-agenda | Query agenda items by date, state, priority, and tags |
org-search | Search and browse org files and headings |
org-capture | Create new headings, tasks, and journal entries |
org-update-todo | Update TODO state, title, body, properties, and timestamps |
Claude Code
claude plugin install github:szaffarano/org-mcp-server
Or add to .claude/settings.json:
{ "plugins": ["github:szaffarano/org-mcp-server"] }
Codex / Cursor
Add to your plugin configuration using .codex-plugin/plugin.json or
.cursor-plugin/plugin.json from this repository.
OpenCode
{ "plugin": ["org-mcp-server@git+https://github.com/szaffarano/org-mcp-server.git"] }
See .opencode/INSTALL.md for full setup instructions.
Setup
Pre-built Binaries
Download the latest pre-built binaries from GitHub Releases:
curl -LO https://github.com/szaffarano/org-mcp-server/releases/latest/download/org-mcp-server-x86_64-unknown-linux-gnu.tar.gz
tar xzf org-mcp-server-x86_64-unknown-linux-gnu.tar.gz
sudo mv org-mcp-server /usr/local/bin/
Binaries are available for Linux, macOS, and Windows. Check the releases page for all targets.
Cargo
cargo install org-mcp-server --locked
cargo install org-cli --locked
Nix
nix run github:szaffarano/org-mcp-server # run directly
nix profile install github:szaffarano/org-mcp-server # install to profile
nix develop github:szaffarano/org-mcp-server # development shell
From Source
git clone https://github.com/szaffarano/org-mcp-server
cd org-mcp-server
cargo build --release
MCP Server Integration
Add to your AI agent configuration (e.g., ~/.claude.json, opencode.json):
{
"mcpServers": {
"org-mode": {
"command": "/path/to/org-mcp-server",
"args": [],
"env": {
"ORG_ORG__ORG_DIRECTORY": "/path/to/your/org/files"
}
}
}
}
Or via Nix:
{
"mcpServers": {
"org-mode": {
"command": "nix",
"args": ["run", "github:szaffarano/org-mcp-server"]
}
}
}
Configuration
Config file: ~/.config/org-mcp/config.toml (or $XDG_CONFIG_HOME/org-mcp/config.toml).
[org]
org_directory = "~/org/"
org_default_notes_file = "notes.org"
org_agenda_files = ["agenda.org", "projects.org"]
org_todo_keywords = ["TODO", "|", "DONE"]
# Auto-prepend :CREATED: property on capture (default: true)
org_auto_created_property = true
# Auto-stamp CLOSED on done transitions (default: true)
org_auto_closed_timestamp = true
[logging]
level = "info"
file = "~/.local/share/org-mcp-server/logs/server.log"
[cli]
default_format = "plain" # plain | json
Configuration is resolved in order: CLI flags β environment variables (ORG_ prefix,
__ separator, e.g. ORG_ORG__ORG_DIRECTORY) β config file β defaults.
org-cli config init # create default config file
org-cli config show # display current resolved config
org-cli config path # show config file location
CLI Tool
org-cli mirrors the MCP server's capabilities for scripting and testing.
Run org-cli --help or org-cli <subcommand> --help for full usage.
Quick examples:
# Search across all org files
org-cli search "project planning"
# Agenda
org-cli agenda today
org-cli agenda list --states TODO,IN_PROGRESS --tags work
# Capture a TODO with planning
org-cli capture "Fix login bug" --todo-state TODO --priority A \
--scheduled "2026-05-15" --deadline "2026-05-20 -3d"
# Capture under a datetree
org-cli capture "Standup notes" --file journal.org --target-heading Logs --datetree
# Update an existing heading
org-cli update-todo --id abc123 --todo-state DONE
org-cli update-todo --file projects.org --heading-path "Work/Task" \
--title "Renamed task" --property "EFFORT=2h"
Timestamp grammar for --scheduled, --deadline, --closed:
YYYY-MM-DD [HH:MM] [+N{h|d|w|m|y} | ++N{u} | .+N{u}] [-N{u}]
Architecture
Multi-crate Rust workspace:
- org-core β Business logic and org-mode parsing
- org-mcp-server β MCP protocol implementation
- org-cli β CLI interface for testing and direct usage
Built with orgize (org-mode parsing), rmcp (MCP protocol), tokio (async runtime), and nucleo-matcher (fuzzy search).
Development
cargo test # run all tests
cargo test -p org-core # test specific crate
cargo fmt && cargo clippy --all-targets --all-features # format and lint
cargo run --bin org-cli -- --help # run CLI
Roadmap
Phase 1: Core Functionality β
- File discovery and listing
- Basic content access via MCP resources
- Org-mode parsing with orgize
- ID-based element lookup
- CLI tool for testing
- Full-text search across org files
Phase 2: Advanced Features π§
- Configuration file support with TOML format
- Environment variable configuration
- Unified CLI interface with global configuration
- Tag-based filtering and querying
- Agenda-related Functionality
- Link following and backlink discovery (org-roam support)
- Metadata caching for performance
Phase 3: Extended Capabilities π§
- Content creation via
org-capture(heading + planning + properties + datetree) - Content modification: TODO state, priority, tags, and planning updates via
org-update-todo/org-cli update-todo - Content modification: property drawer updates (upsert/remove individual keys)
- Content modification: CLOCK / LOGBOOK entries
-
org-promote/org-demoteβ relative heading level change -
org-clockβ clock in / clock out / cancel clock -
org-refileβ move heading to different file or location -
org-archiveβ archive heading to archive file or toggle ARCHIVE tag - Media file reference handling
- Integration with org-roam databases
- Real-time file watching and updates
- Advanced query language
License
MIT License - see LICENSE file for details.
Files in the repo
- .claude-plugin
- .codex-plugin
- .cursor-plugin
- .github
- .opencode
- org-cli
- org-core
- org-mcp-server
- skills
- test-utils
- .envrc
- .gitignore
- .release-plz.toml
- Cargo.lock
- Cargo.toml
- CLAUDE.md
- codecov.yml
- flake.lock
- flake.nix
- justfile
- LICENSE
- package.json
- README.md
- renovate.json
Discussion (0)
Ask about usage, or say what you built with itSign in to join the discussion.
No comments yet. Be the first to say what this is good for.
More connectors

Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
BankMCPβ’: your AI can now read your bank. Self-hosted, read-only MCP server for your own bank accounts via open banking (Enable Banking). Standard MCP; tested with Claude and Ollama.

Minimal Coding Agent Harness on MCP for ChatGPT, Claude, Hermes, Grok Bot, OpenClaw

Fast and Accurate Code Search for Agents. Uses 99% fewer tokens than grep+read
A memory plugin for AI coding that turns engineering experience, repository knowledge, and your way of working into memory that remains useful in future tasks.