Littlebird Obsidian MCP

Littlebird Obsidian MCP

A local-first MCP server that routes Littlebird daily context into structured Obsidian notes, connecting daily work to a durable knowledge base.

Category
访问服务器

README

Littlebird Obsidian MCP

A local-first MCP server and Codex skill pack for turning daily work context into routed Obsidian knowledge.

Modern work leaves context scattered across meeting notes, browser research, email, chat, task systems, and AI conversations. Littlebird can summarize a day, but a daily summary sitting in a Gmail draft is not a durable knowledge base. Obsidian can be that knowledge base, but only if the information is routed into the right notes instead of dumped into one giant raw log.

This project connects those pieces. It gives Codex a safe local MCP server for one Obsidian vault, plus skills for importing Littlebird daily context and searching the vault later as "global knowledge."

The intended workflow is:

Littlebird captures and drafts daily context
  -> Codex imports the draft
  -> known projects/people/tasks/decisions route into Obsidian notes
  -> unknown projects go to routing review
  -> later, Codex can search Obsidian for project memory

The goal is not to preserve raw activity dumps. The goal is to preserve useful working memory in the right places: daily notes, project notes, people notes, decisions, tasks, and open loops.

What It Does

  • Connects an MCP client to one configured Obsidian vault.
  • Imports Littlebird daily-context drafts from Gmail through a Codex skill.
  • Routes known projects and companies into configured Obsidian notes.
  • Sends unknown projects to routing review instead of creating random files.
  • Keeps a small ingest ledger for duplicate protection.
  • Discards raw Littlebird draft bodies by default after routing.
  • Adds a reverse lookup skill so Codex can search Obsidian as "global knowledge."

How It Works

Littlebird Gmail draft
  -> Codex skill
  -> littlebird-obsidian-mcp
  -> routed Obsidian notes
  -> Gmail draft deleted only after successful write

Reverse lookup:

User asks "check global knowledge"
  -> Codex skill
  -> search/read Obsidian through MCP
  -> answer with note sources

Requirements

  • macOS, Linux, or Windows with Node.js 20+
  • An Obsidian vault stored on the local filesystem
  • Codex with MCP support
  • Gmail connector access if using the Littlebird Gmail draft workflow

Obsidian does not need to be open for filesystem writes, but you should use an existing vault path.

node_modules/ is not part of the repo. Dependencies are declared in package.json and installed locally with npm install or npm run setup:codex.

Quick Start For Codex

git clone <repo-url>
cd littlebird-obsidian-mcp
npm run setup:codex

The setup script:

  • asks for your Obsidian vault path
  • installs dependencies
  • builds the MCP server
  • creates local config/routing.json from config/routing.example.json
  • registers the MCP server in ~/.codex/config.toml
  • installs the included Codex skills into ~/.codex/skills

Restart Codex after setup.

Manual Setup

Install and build:

npm install
npm run build

Configure your MCP client with:

[mcp_servers.littlebird_obsidian]
command = "node"
args = ["/absolute/path/to/littlebird-obsidian-mcp/dist/index.js"]
startup_timeout_sec = 30

[mcp_servers.littlebird_obsidian.env]
OBSIDIAN_VAULT_PATH = "/absolute/path/to/your/Obsidian/Vault"
OBSIDIAN_WRITE_MODE = "create-append"
RAW_CAPTURE_RETENTION = "discard"
LITTLEBIRD_ROUTING_CONFIG_PATH = "/absolute/path/to/littlebird-obsidian-mcp/config/routing.json"

Install skills:

ln -s "/absolute/path/to/littlebird-obsidian-mcp/skills/littlebird-gmail-to-obsidian" "$HOME/.codex/skills/littlebird-gmail-to-obsidian"
ln -s "/absolute/path/to/littlebird-obsidian-mcp/skills/obsidian-global-knowledge" "$HOME/.codex/skills/obsidian-global-knowledge"

Restart Codex after changing MCP config or installing skills.

Configure Routing

Copy the example routing file:

cp config/routing.example.json config/routing.json

Edit config/routing.json:

{
  "projectRoutes": [
    {
      "aliases": ["Example Project", "Example App"],
      "path": "Projects/Example Project.md"
    },
    {
      "aliases": ["Example Company", "Example Co"],
      "path": "Companies/Example Company.md"
    }
  ],
  "peopleRoutes": [
    {
      "aliases": ["Example Person"],
      "path": "People/Example Person.md"
    }
  ]
}

Known aliases route into configured notes. Unknown project/company items are written to:

00_Inbox/Routing Review/

The skill should ask where those unknowns belong before deleting the source draft.

Included Skills

Littlebird Gmail To Obsidian

Prompt:

Use $littlebird-gmail-to-obsidian to find my Littlebird Gmail drafts and write them to Obsidian.

Behavior:

  • searches Gmail drafts for Littlebird daily context
  • processes all matching drafts oldest first
  • writes routed knowledge through the MCP server
  • falls back to old Obsidian triage notes if no Gmail draft exists
  • deletes Gmail drafts only after successful routing and no unresolved review

Obsidian Global Knowledge

Prompt:

Use $obsidian-global-knowledge to check my global directory for Example Project context.

Behavior:

  • searches relevant Obsidian notes
  • reads the highest-signal matches
  • answers with a concise synthesis
  • cites vault-relative note paths

MCP Tools

  • list_vault_folder
  • search_notes
  • read_note
  • create_note
  • append_to_note
  • append_daily_note
  • create_triage_entry
  • ingest_littlebird_context
  • process_littlebird_triage_note

Safety Model

The server:

  • restricts all file access to one configured vault path
  • rejects absolute tool-input paths
  • rejects path traversal outside the vault
  • does not expose general delete or move tools
  • never overwrites existing notes with create_note
  • keeps raw Littlebird drafts out of the vault by default
  • keeps a small ingest ledger for auditability and duplicate detection
  • only deletes stale triage notes through process_littlebird_triage_note

Gmail draft deletion is handled by the Codex skill, not the MCP server. The skill should delete a draft only when the ingest result succeeded and no routing review is needed.

Verify

Temp-vault smoke test:

npm run smoke:cli

Configured-vault MCP smoke test:

OBSIDIAN_VAULT_PATH="/absolute/path/to/your/Obsidian/Vault" npm run smoke

Tests:

npm run typecheck
npm test

Local Files And Privacy

Commit:

  • .env.example
  • config/routing.example.json
  • src/**
  • skills/**
  • docs/**

Do not commit:

  • .env
  • config/routing.json
  • Obsidian vault contents
  • Gmail draft ids
  • personal MCP client config
  • generated build/test output

See docs/env-and-local-files.md and docs/permissions.md.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选