Skip to main content
Glama
dhaseeb-proj

Obsidian Second Brain MCP

by dhaseeb-proj
README.md
# Obsidian Second Brain MCP and Skill

Local MCP server and Codex skill for Obsidian-backed project memory.

This project turns an Obsidian vault into durable project context for AI coding agents. It is meant to complement tools like CodeGraph:

- CodeGraph answers: "How does this code work?"
- Obsidian Second Brain MCP answers: "What do we know about this project, bug, feature, decision, session, release, and next action?"

The server is local-first. It reads and appends Markdown files in your Obsidian vault. It does not require a cloud service, API key, or hosted database.

## What It Provides

MCP tools:

- `project_memory_start` - load a compact project context pack before meaningful work.
- `project_memory_status` - check repo-to-Obsidian linkage.
- `project_memory_log_bug` - record bug reports, investigation, fixes, verification, and next actions.
- `project_memory_log_feature` - record feature intent, implementation, verification, and follow-up.
- `project_memory_record_decision` - record durable choices and rationale.
- `project_memory_close_session` - write a session closeout with outcome, changed files, verification, open questions, next actions, and deployment status.

CLI commands:

- `obsidian-second-brain-mcp serve`
- `obsidian-second-brain-mcp init`
- `obsidian-second-brain-mcp status`
- `obsidian-second-brain-mcp agents-snippet`

Codex skill:

- `skills/obsidian-second-brain-mcp/SKILL.md`

## Requirements

- Node.js 20 or newer.
- An Obsidian vault stored on the local filesystem.
- An AI agent that supports MCP over stdio, such as Codex CLI.

## Install From Source

```bash
git clone https://github.com/YOUR-USERNAME/obsidian-second-brain-mcp-and-skill.git
cd obsidian-second-brain-mcp-and-skill
npm install
npm run build
npm link
```

Confirm the CLI is available:

```bash
obsidian-second-brain-mcp --help
```

## Configure Codex MCP

Add this MCP server to your Codex config. The exact config file location may vary by Codex version, but a common location is:

```text
~/.codex/config.toml
```

Example:

```toml
[mcp_servers.obsidian_second_brain]
command = "obsidian-second-brain-mcp"
args = ["serve"]
```

Restart Codex after editing MCP config.

## Link A Repo To An Obsidian Project

From the repo you want to document:

```bash
obsidian-second-brain-mcp init \
  --project "Example Project" \
  --vault "/absolute/path/to/your/Obsidian Vault" \
  --obsidian-project "01_Projects/Example Project" \
  --write-agents
```

This creates:

```text
.obsidian-second-brain.json
AGENTS.md
```

It also creates missing starter notes inside the configured Obsidian project folder:

```text
Project Brief.md
Bugs.md
Decisions.md
Runbook.md
Next Actions.md
Activity Log.md
Changelog.md
Releases.md
Open Questions.md
Session Log.md
```

Check the link:

```bash
obsidian-second-brain-mcp status
```

## Repo Config

Each linked repo has a `.obsidian-second-brain.json` file:

```json
{
  "projectName": "Example Project",
  "projectCode": "EP",
  "vaultPath": "/absolute/path/to/your/Obsidian Vault",
  "obsidianProjectPath": "01_Projects/Example Project",
  "hubNote": "EP_ExampleProject_Home.md"
}
```

If you do not want to store `vaultPath` in each repo, omit it and set:

```bash
export OBSIDIAN_VAULT_PATH="/absolute/path/to/your/Obsidian Vault"
```

Do not commit `.obsidian-second-brain.json` if it contains private local paths. Use `examples/project-config.example.json` as the public template.

## Install The Codex Skill

Copy the skill folder into your Codex skills directory:

```bash
mkdir -p ~/.codex/skills
cp -R skills/obsidian-second-brain-mcp ~/.codex/skills/
```

Restart Codex. The skill tells Codex when to use the MCP tools during project work.

## Intended Agent Workflow

When you start work in a linked repo, the agent should:

1. Call `project_memory_start` with the repo path.
2. Use the returned project notes as durable context.
3. For bugs, call `project_memory_log_bug` during investigation and again when fixed or verified.
4. For features, call `project_memory_log_feature` when scope or implementation becomes clear.
5. Use `project_memory_record_decision` for durable choices.
6. Before final response, call `project_memory_close_session` if meaningful work happened.
7. Ask whether to deploy or release when deployment status is relevant but not known.

## Privacy

This repo contains no personal vault paths, project names, API keys, or private notes.

The MCP server runs locally and only reads/writes files in the vault path you configure. It does not send your notes anywhere.

You should still avoid committing:

- `.obsidian-second-brain.json` files with private paths.
- Obsidian notes copied from a private vault.
- Secrets or API keys in project notes.

## Development

```bash
npm install
npm run typecheck
npm run build
```

Run the server manually:

```bash
obsidian-second-brain-mcp serve
```

## License

MIT

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a distinct purpose: starting/ending sessions, logging bugs/features, recording decisions, and checking status. Descriptions clearly differentiate them, leaving no ambiguity.

Naming Consistency4/5

All tools share the 'project_memory_' prefix with verb_noun for most (close_session, log_bug, etc.). 'start' and 'status' deviate slightly (verb only and noun only), but the pattern remains highly predictable.

Tool Count5/5

Six tools cover the essential operations for a project memory system without excess. Each tool serves a clear, non-redundant purpose.

Completeness5/5

The tool set covers the full lifecycle of project memory: start, log (bugs, features, decisions), close, and status check. No obvious gaps for the intended domain.

Maintenance

ActivityInactive
ResponsivenessNo issues