Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Read and search a folder of Markdown notes: search, backlinks, tags, tasks, outlines, git history.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ลิงก์ไปที่ไฟล์ของผู้ทำเอง เราไม่ได้เก็บหรือแพ็กใหม่ เปิดไฟล์แล้ว Claude Desktop จะติดตั้งให้
พิมพ์คำสั่งนี้ใน Terminal
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub zhitongblog ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (4.14.11) เข้า registry 30 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี MCPB ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
Agent-Native Google Calendar - manage events, sync, and public booking
ให้ AI สร้างและแก้ไฟล์ Excel ได้เอง ทั้งสูตร กราฟ และ PivotTable โดยไม่ต้องมีโปรแกรม Excel ในเครื่อง
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
solomd-mcp lets Claude Code, Codex CLI, Cursor, Continue, and any other MCP client read (and optionally edit) a SoloMD Markdown notes folder. Your vault becomes a first-class tool the assistant can call.
It is a standalone Rust binary. The desktop app bundles a copy (on macOS: /Applications/SoloMD.app/Contents/MacOS/solomd-mcp) but never runs it itself; it only runs when an MCP client starts it. It reports the same version as the app (solomd-mcp --version).
solomd-mcp --workspace /Users/me/Documents/Notes
Pass --workspace once per vault. Each value is either a bare path (alias defaults to the path's last component) or = :
solomd-mcp \
--workspace work=/Users/me/Documents/Work \ --workspace home=/Users/me/Documents/Home
The first workspace is the default — tool calls without an explicit workspace argument resolve to it. Existing single---workspace clients keep working unchanged. Tools that *want* to target a non-default workspace pass an extra workspace argument:
// Default (first registered) workspace:
{ "name": "list_notes", "arguments": {} }
// Explicit alias: { "name": "list_notes", "arguments": { "workspace": "home" } }
// Or by absolute path (must match a registered workspace): { "name": "list_notes", "arguments": { "workspace": "/Users/me/Documents/Home" } }
Each workspace's AutoGit history (autogit_log, autogit_diff, autogit_rollback) is independent — the per-workspace .git repo is opened on demand for each call.
| Tool | Description | Gating |
|---|---|---|
list_notes | Walk the vault and return metadata (path, name, title, mtime, size, summary). Defaults to 100 notes, sorted newest-first. | always |
read_note | Full content of one note, plus parsed front matter, headings, tags, and outbound [[wikilinks]]. | always |
search | Substring or regex search. Uses ripgrep when on PATH, otherwise a Rust regex walk. Caps at 200 hits with 3-line context. | always |
get_backlinks | Every place that wikilinks the named note (case-insensitive on the file stem). | always |
list_tags | Aggregated tag counts across the vault — body #tag plus front-matter tags:. | always |
get_outline | Heading outline of a single note (level 1-6, text, line). | always |
list_tasks | Every - [ ] / - [x] checkbox in the vault, with file, line and done state; done filters. | always |
autogit_log | Commit history of one note from the AutoGit repo, newest first. | always |
autogit_diff | Unified diff of one note between two AutoGit commits. | always |
sync_status | GitHub-sync state from .solomd/sync.json (remote, branch, encryption). | always |
share_url | Public solomd.app/share URL for a note in a linked repo. | always |
read_agent_trace | Steps of one agent run from .solomd/agent-runs/ /trace.jsonl; an unknown run id is an error. | always |
write_note | Create a .md / .markdown / .txt note (missing folders inside the workspace are created). Replaces an existing note only with allow_overwrite: true. | --allow-write |
append_to_note | Append text to an existing note (newline-safe). | --allow-write |
autogit_rollback | Restore a note's content from an AutoGit commit. | --allow-write |
export_note | Export a note to html / md / txt / docx. output_path may be outside the workspace (its folder must exist); an existing file is replaced only with overwrite: true. | --allow-write, and listed only when the Node backend is found (below) |
That is 16 tools. Read-only by default. Write tools are also offered through the MCP tools/list response so clients can show them, but invocations fail with a clear "restart with --allow-write" message until you opt in.
Every line number (get_outline, get_backlinks, read_note headings and wikilinks, list_tasks, search) is a 1-based line in the file as it sits on disk, front matter included, so the tools agree with each other and with an editor. search columns count characters, not bytes.
`export_note` needs Node.js and a SoloMD source checkout. It runs app/scripts/solomd-export.mjs (the same engine as solomd export) with the app's node_modules. The installed app ships neither, so the tool is only listed when node is on PATH and the script is found: via SOLOMD_EXPORT_SCRIPT=/path/to/solomd/app/scripts/solomd-export.mjs, or automatically when the binary or the working directory is inside a checkout where pnpm install has been run in app/.
curl -fsSL https://raw.githubusercontent.com/zhitongblog/solomd/main/scripts/install-mcp.sh | bash
This downloads the right binary for your platform from the latest GitHub release and drops it into /usr/local/bin/solomd-mcp (falling back to ~/.local/bin/solomd-mcp if the system path is not writable).
cargo install --git https://github.com/zhitongblog/solomd solomd-mcp
Grab the right archive from github.com/zhitongblog/solomd/releases, extract solomd-mcp, and put it on your PATH.
Easiest route is the CLI — it writes the user-scope config (~/.claude.json) for you:
claude mcp add --scope user solomd-vault -- \
solomd-mcp --workspace /Users/me/Documents/Notes
To scope the server to one project instead, drop an .mcp.json in the project root:
{
"mcpServers": { "solomd-vault": { "command": "solomd-mcp", "args": ["--workspace", "/Users/me/Documents/Notes"] } } }
Multi-workspace profile (one MCP server, several vaults):
{
"mcpServers": { "solomd-vaults": { "command": "solomd-mcp", "args": [ "--workspace", "work=/Users/me/Documents/Work", "--workspace", "home=/Users/me/Documents/Home" ] } } }
To enable writes:
{
"mcpServers": { "solomd-vault": { "command": "solomd-mcp", "args": ["--workspace", "/Users/me/Documents/Notes", "--allow-write"] } } }
~/.codex/config.toml:
[mcp_servers.solomd-vault]
command = "solomd-mcp" args = ["--workspace", "/Users/me/Documents/Notes"]
Anything that speaks MCP over stdio works. Point its command at solomd-mcp and pass --workspace . The solomd CLI (scripts/install-cli.sh) can do this for you: solomd mcp install writes the entry into every AI client it finds, solomd mcp-config prints it.
For clients that can't spawn a local binary (Smithery, Claude.ai remote MCP, ChatGPT connectors), run the HTTP transport:
solomd-mcp --workspace /Users/me/Documents/Notes \
--transport http --bind 127.0.0.1:8765 --auth-token "$TOKEN"
It binds to loopback by default, so nothing outside the machine can reach it until you change --bind. With --auth-token (or SOLOMD_MCP_TOKEN) every request must send Authorization: Bearer ; without one the endpoint is open to anything that can reach the address.
solomd-mcp [OPTIONS] --workspace <ALIAS=DIR | DIR>...
--workspace Path to a notes folder. Required. Canonicalised. Repeat for multi-workspace mode. Form: = or just (alias defaults to the path's last component). The first workspace is the default — tool calls without an explicit workspace argument resolve to it (back-compat for single-workspace clients). --allow-write Enable write_note + append_to_note + autogit_rollback
Set SOLOMD_MCP_LOG=trace (or any tracing-subscriber filter expression) for finer-grained control.
.. segments and absolute paths outside the workspace are rejected. The one tool that may write outside the workspace is export_note, and only with --allow-write; it never creates folders there and never replaces an existing file unless the call passes overwrite: true.list_notes reads only an 8 KB prefix of each file (enough for title + summary), so even a vault with thousands of large notes is cheap to enumerate. Full file content only loads on read_note.# Roundtrip handshake: initialize → tools/list.
{ printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"smoketest","version":"0"}}}' printf '%s\n' '{"jsonrpc":"2.0","method":"notifications/initialized"}' printf '%s\n' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' sleep 1 } | solomd-mcp --workspace ~/Documents/Notes
You should see 16 tools listed (15 if export_note's Node backend isn't available).
MIT — same as SoloMD.