second-brain-mcp

second-brain-mcp

Enables AI assistants to capture, search, update, and delete notes in a local Markdown vault with automatic categorization and tagging, making knowledge management seamless.

Category
Visit Server

README

Second Brain MCP

English version

Một MCP server giúp AI ghi chú giùm bạn — vào một thư mục Markdown bình thường, kiểu Obsidian đọc được.

Bạn cứ trò chuyện với AI như thường. Khi có gì đáng lưu, bảo nó lưu lại: nó tự chọn category, tự gắn tag, tự ghi thành file .md. Lần sau muốn tìm lại thì hỏi nó. Ghi chú vẫn là của bạn — file thường nằm trên ổ cứng, không cần công cụ này cũng đọc được.


Cài đặt

Bước 1 — Chuẩn bị

Bạn cần:

  • Node.js phiên bản 20 trở lên. Kiểm tra bằng cách mở Terminal (macOS) hoặc Command Prompt (Windows) rồi gõ node --version. Nếu báo lỗi hoặc số nhỏ hơn 20, tải tại nodejs.org.
  • Một AI client hỗ trợ MCP — Claude Desktop, Antigravity, Cursor, hoặc tương tự.

Bước 2 — Chọn nơi lưu ghi chú

Quyết định thư mục sẽ chứa ghi chú, ví dụ /Users/ban/Documents/Notes. Thư mục chưa tồn tại cũng được, nó sẽ tự tạo.

Nếu bạn đã dùng Obsidian, có thể trỏ thẳng vào vault sẵn có.

Bước 3 — Thêm vào cấu hình AI client

Mở file cấu hình MCP của client bạn dùng, thêm đoạn này:

{
  "mcpServers": {
    "second-brain": {
      "command": "npx",
      "args": ["-y", "@pthieenlong/second-brain-mcp"],
      "env": {
        "VAULT_PATH": "/Users/ban/Documents/Notes"
      }
    }
  }
}

Nhớ thay /Users/ban/Documents/Notes bằng đường dẫn thật của bạn. Đường dẫn phải đầy đủ từ gốc, không dùng ~.

Nếu file cấu hình đã có sẵn mcpServers với server khác, chỉ cần thêm "second-brain": {...} vào bên trong, đừng ghi đè cả khối.

Chỗ đặt file cấu hình tùy client — tìm trong tài liệu của client mục "MCP servers".

Bước 4 — Khởi động lại client

Đóng hẳn và mở lại AI client. Lần đầu chạy hơi chậm vì npx tải package về, những lần sau dùng bản đã cache nên nhanh.

Bước 5 — Thử

Nhắn với AI: "Lưu note này vào second brain: hôm nay học được cách dùng React hooks"

Nếu thành công, nó sẽ báo đã lưu và bạn thấy file .md mới trong thư mục vừa chọn.


AI làm được gì

Công cụ Chức năng
capture_note Lưu ghi chú mới. AI tự phân loại category và tag.
search_notes Tìm theo từ khóa tiêu đề, category, hoặc tag.
get_note Đọc toàn bộ nội dung một ghi chú.
update_note Sửa ghi chú. Đổi tiêu đề hoặc category thì file tự chuyển sang chỗ mới.
delete_note Xóa ghi chú khỏi cả thư mục lẫn chỉ mục.
reindex_vault Quét lại thư mục và dựng lại chỉ mục tìm kiếm từ đầu.

Bạn không cần gọi tên các công cụ này. Cứ nói bình thường — "tìm giúp tôi mấy note về React" — AI tự biết dùng cái nào.


Ghi chú được lưu thế nào

File .md nằm trong VAULT_PATH/<category>/, có phần thông tin ở đầu:

---
date: 2026-07-20
category: 01-Fundamentals
tags:
  - react
  - hooks
source: chat-capture
---
# React hooks

Nội dung ghi chú...

Đây là bản gốc, là nguồn sự thật. Mở bằng Obsidian, tìm bằng grep, đồng bộ, sao lưu — tùy bạn. Công cụ này không giữ khóa gì trên chúng.

Bên cạnh đó có file <VAULT_PATH>/.second-brain/index.db — một file SQLite nhỏ lưu thông tin tóm tắt để tìm kiếm nhanh, khỏi phải đọc từng file. Nó là dữ liệu phái sinh: xóa đi thì tự tạo lại (nhưng sẽ rỗng — xem phần Hạn chế).


Đổi danh sách category

Mặc định có 7 nhóm:

01-Fundamentals  02-Work  03-Product-Thinking  04-Learning
05-Career        06-Personal  07-Projects

Muốn dùng nhóm của riêng bạn, thêm NOTE_CATEGORIES vào phần env trong cấu hình client:

"env": {
  "VAULT_PATH": "/Users/ban/Documents/Notes",
  "NOTE_CATEGORIES": "Nau-an,Du-lich,Cong-viec,Y-tuong"
}

Ngăn cách bằng dấu phẩy, không có khoảng trắng thừa. Sau đó khởi động lại client.

Nếu AI chọn nhầm nhóm không có trong danh sách, ghi chú sẽ rơi vào 00-Inbox chứ không bị từ chối — bạn sắp xếp lại sau, không mất gì.


Khi gặp trục trặc

AI không thấy công cụ nào Kiểm tra JSON có đúng cú pháp không (thiếu dấu phẩy, thừa dấu ngoặc là hỏng). Rồi khởi động lại client.

Báo lỗi liên quan VAULT_PATH Đường dẫn phải đầy đủ từ gốc: /Users/ban/Documents/Notes, không phải ~/Documents/Notes hay ./Notes.

Lần đầu chạy rất lâu Bình thường — npx đang tải package về. Những lần sau nhanh hơn nhiều.

Ghi chú lưu rồi nhưng tìm không ra Có thể chỉ mục bị lệch với thư mục. Xem phần dưới.


Hạn chế hiện tại

Nói thẳng để bạn biết trước:

Chỉ mục có thể lệch với thư mục. Ghi chú được ghi ra file trước, rồi mới đưa vào chỉ mục. Nếu bước sau lỗi, file vẫn có nhưng tìm không thấy. Sửa hoặc thêm note trực tiếp trong Obsidian cũng không tự cập nhật chỉ mục. Khi nghi ngờ lệch, bảo AI "reindex vault giúp tôi" — nó quét lại toàn bộ thư mục và dựng chỉ mục từ đầu.

Chỉ tìm được tiêu đề, chưa tìm trong nội dung. search_notes khớp theo tiêu đề, category và tag. Chưa tìm được chữ nằm trong thân ghi chú.

Chữ có dấu phân biệt hoa thường. Tìm tiêu đề tiếng Anh không phân biệt hoa thường, nhưng tiếng Việt có dấu thì có — hạn chế của SQLite.

Windows chạy chip ARM không dùng được. Thư viện SQLite không có bản cho nền tảng đó. macOS (cả Intel lẫn Apple Silicon), Windows x64 và Linux đều chạy bình thường.


Dành cho lập trình viên

Cần pnpm. Chép .env.example thành .env rồi điền VAULT_PATH.

pnpm install
pnpm run build
pnpm run test
pnpm run lint

npx prisma migrate dev    # sau khi sửa prisma/schema.prisma
npx prisma generate

Chạy tay để thử — server nói chuyện bằng JSON-RPC qua stdin/stdout:

echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
  | VAULT_PATH=/tmp/test-vault node dist/src/main.js

Một nguyên tắc bắt buộc khi sửa code: không được ghi gì ra stdout. Luồng đó dành riêng cho giao thức; một dòng console.log lạc là hỏng kết nối. Cần log thì dùng console.error (ghi ra stderr).


Đóng góp

Rất hoan nghênh issue và pull request. Những việc thực sự cần:

  • Tìm kiếm toàn văn trong nội dung note
  • Tự động cập nhật chỉ mục khi file trong vault thay đổi (thay vì phải reindex tay)
  • Viết test — tầng service hiện chưa có test nào

Giấy phép

MIT — xem LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured