Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Search, read, create, edit and sync Joplin notes and notebooks via a headless Joplin sidecar.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
JOPLIN_TOKEN, JOPLIN_HOST, JOPLIN_PORT, JOPLIN_PROFILE, JOPLIN_CLI, JOPLIN_SYNC_TARGET, JOPLIN_SYNC_PATH, JOPLIN_SYNC_USERNAME, JOPLIN_SYNC_PASSWORD, JOPLIN_SYNC_REGION, JOPLIN_SYNC_ENDPOINT, JOPLIN_SYNC_FORCE_PATH_STYLE, LOG_LEVELค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"joplin": {
"command": "npx",
"args": [
"-y",
"joplin-mcp-server"
],
"env": {
"JOPLIN_TOKEN": "ใส่ค่าของคุณ",
"JOPLIN_HOST": "ใส่ค่าของคุณ",
"JOPLIN_PORT": "ใส่ค่าของคุณ",
"JOPLIN_PROFILE": "ใส่ค่าของคุณ",
"JOPLIN_CLI": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_TARGET": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_PATH": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_USERNAME": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_PASSWORD": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_REGION": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_ENDPOINT": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_FORCE_PATH_STYLE": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add joplin --env JOPLIN_TOKEN='ใส่ค่าของคุณ' --env JOPLIN_HOST='ใส่ค่าของคุณ' --env JOPLIN_PORT='ใส่ค่าของคุณ' --env JOPLIN_PROFILE='ใส่ค่าของคุณ' --env JOPLIN_CLI='ใส่ค่าของคุณ' --env JOPLIN_SYNC_TARGET='ใส่ค่าของคุณ' --env JOPLIN_SYNC_PATH='ใส่ค่าของคุณ' --env JOPLIN_SYNC_USERNAME='ใส่ค่าของคุณ' --env JOPLIN_SYNC_PASSWORD='ใส่ค่าของคุณ' --env JOPLIN_SYNC_REGION='ใส่ค่าของคุณ' --env JOPLIN_SYNC_ENDPOINT='ใส่ค่าของคุณ' --env JOPLIN_SYNC_FORCE_PATH_STYLE='ใส่ค่าของคุณ' --env LOG_LEVEL='ใส่ค่าของคุณ' -- npx -y joplin-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"joplin": {
"command": "npx",
"args": [
"-y",
"joplin-mcp-server"
],
"env": {
"JOPLIN_TOKEN": "ใส่ค่าของคุณ",
"JOPLIN_HOST": "ใส่ค่าของคุณ",
"JOPLIN_PORT": "ใส่ค่าของคุณ",
"JOPLIN_PROFILE": "ใส่ค่าของคุณ",
"JOPLIN_CLI": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_TARGET": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_PATH": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_USERNAME": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_PASSWORD": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_REGION": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_ENDPOINT": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_FORCE_PATH_STYLE": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"joplin": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"joplin-mcp-server"
],
"env": {
"JOPLIN_TOKEN": "ใส่ค่าของคุณ",
"JOPLIN_HOST": "ใส่ค่าของคุณ",
"JOPLIN_PORT": "ใส่ค่าของคุณ",
"JOPLIN_PROFILE": "ใส่ค่าของคุณ",
"JOPLIN_CLI": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_TARGET": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_PATH": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_USERNAME": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_PASSWORD": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_REGION": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_ENDPOINT": "ใส่ค่าของคุณ",
"JOPLIN_SYNC_FORCE_PATH_STYLE": "ใส่ค่าของคุณ",
"LOG_LEVEL": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
JOPLIN_HOST envJOPLIN_PORT envJOPLIN_PROFILE envJOPLIN_CLI envJOPLIN_SYNC_TARGET envJOPLIN_SYNC_PATH envJOPLIN_SYNC_USERNAME envJOPLIN_SYNC_REGION envJOPLIN_SYNC_ENDPOINT envJOPLIN_SYNC_FORCE_PATH_STYLE envLOG_LEVEL envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub jordanburke ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: JOPLIN_TOKEN, JOPLIN_SYNC_PASSWORD
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (2.3.3) เข้า registry 2 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว 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 รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A self-contained MCP (Model Context Protocol) server for Joplin. Bundles the Joplin Terminal CLI as a dependency — no desktop app, no global installs, no external processes to manage. Coexists with Joplin Desktop via automatic port negotiation.
npx joplin-mcp-server --token your_joplin_token
That's it. The server spawns its own Joplin Terminal instance (sidecar mode), syncs to your configured backend, and exposes your notes via MCP.
The server bundles joplin as an npm dependency and manages its own Joplin Terminal process. No Joplin desktop app needed — the sidecar handles everything: data storage, sync, and the REST API.
If Joplin Desktop is already running, the sidecar automatically finds a free port (scanning 41184-41193) and runs alongside it. Both instances stay in sync if configured with the same sync target.
# Basic usage — sidecar starts automatically
npx joplin-mcp-server --token your_token
npx joplin-mcp-server --token your_token \ --sync-target joplin-cloud \ --sync-username user@example.com --sync-password pass
npx joplin-mcp-server --token your_token \ --sync-target filesystem \ --sync-path /mnt/c/Users/you/OneDrive/Joplin
The Joplin CLI is resolved in this order: JOPLIN_CLI env var > node_modules/.bin/joplin (bundled) > global install > npx fallback.
Data is stored in ~/.config/joplin-mcp by default (separate from any desktop Joplin install).
Connects to an existing Joplin instance instead of spawning a sidecar. Activated by setting JOPLIN_HOST or JOPLIN_PORT.
# Connect to Joplin desktop on another machine or Windows host
JOPLIN_HOST=192.168.0.40 JOPLIN_PORT=41184 npx joplin-mcp-server --token your_token
| Variable | Description | Default |
|---|---|---|
JOPLIN_TOKEN | API token (required) | -- |
JOPLIN_HOST | Connect to existing Joplin at this host (skips sidecar) | -- |
JOPLIN_PORT | Connect to existing Joplin on this port (skips sidecar) | -- |
JOPLIN_CLI | Path to joplin CLI binary (overrides auto-detection) | -- |
JOPLIN_PROFILE | Joplin data directory for sidecar mode | ~/.config/joplin-mcp |
JOPLIN_SYNC_TARGET | Sync target type | none |
JOPLIN_SYNC_PATH | Sync target URL/path | -- |
JOPLIN_SYNC_USERNAME | Sync username/email | -- |
JOPLIN_SYNC_PASSWORD | Sync password | -- |
JOPLIN_SYNC_REGION | S3 region | us-east-1 |
JOPLIN_SYNC_ENDPOINT | S3 endpoint URL (for non-AWS providers) | AWS S3 |
JOPLIN_SYNC_FORCE_PATH_STYLE | Use path-style S3 URLs (true/false) | false |
LOG_LEVEL | Log level: debug, info, warn, error | info |
OPTIONS:
--env-file Load environment variables from file --token Joplin API token --transport Transport type: stdio (default) or http --http-port HTTP server port (default: 3000, only with --transport http) --profile Joplin data directory (default: ~/.config/joplin-mcp) --sync-target Sync target: none, filesystem, webdav, nextcloud, joplin-cloud, joplin-server, s3, dropbox, onedrive --sync-path URL or path for sync target --sync-username Username/email for sync --sync-password Password for sync --help, -h Show help message
The --profile option and the --sync-path of a filesystem sync target support ~ and environment variable expansion for cross-platform compatibility. Other targets take a URL or bucket name in --sync-path, so it is passed through untouched:
# Tilde expands to home directory (Linux, macOS, Windows)
--sync-path ~/OneDrive/Apps/Joplin
--sync-path ${HOME}/OneDrive/Apps/Joplin --sync-path $HOME/OneDrive/Apps/Joplin
--sync-path ${USERPROFILE}/OneDrive/Apps/Joplin
This works in MCP client configs (.mcp.json, Claude Desktop) where shell expansion isn't available.
WSL auto-detection: On WSL, if a ~/ path is empty or missing, the server automatically checks the corresponding Windows path at /mnt/c/Users/ /.... This means --sync-path ~/OneDrive/Apps/Joplin just works on WSL without needing the full /mnt/c/... path.
| Target | Required Options |
|---|---|
none | (default, no sync) |
filesystem | --sync-path /path/to/dir |
webdav | --sync-path --sync-username --sync-password |
nextcloud | --sync-path --sync-username --sync-password |
joplin-cloud | --sync-username --sync-password |
joplin-server | --sync-path --sync-username --sync-password |
s3 | --sync-path --sync-username --sync-password |
dropbox | (OAuth flow) |
onedrive | (OAuth flow) |
The s3 target defaults to AWS (https://s3.amazonaws.com/, region us-east-1). Point it at any S3-compatible provider with --sync-region and --sync-endpoint:
# Backblaze B2
joplin-mcp-server --token my_token \ --sync-target s3 --sync-path my-bucket \ --sync-region us-west-004 \ --sync-endpoint https://s3.us-west-004.backblazeb2.com \ --sync-username --sync-password
joplin-mcp-server --token my_token \ --sync-target s3 --sync-path my-bucket \ --sync-endpoint https://minio.example.com \ --sync-force-path-style true \ --sync-username --sync-password
Cloudflare R2 and Wasabi work the same way — set --sync-endpoint to the provider's S3 endpoint.
The repository includes a .mcp.json that works with Claude Code's env var expansion:
{
"mcpServers": { "joplin": { "command": "node", "args": ["dist/bin.js"], "env": { "JOPLIN_TOKEN": "${JOPLIN_TOKEN}" } } } }
Set JOPLIN_TOKEN in your shell (add to ~/.bashrc or ~/.zshrc):
export JOPLIN_TOKEN="your_actual_token_here"
Claude Desktop does not support ${VAR} expansion. Provide values directly:
{
"mcpServers": { "joplin": { "command": "npx", "args": ["joplin-mcp-server", "--token", "your_actual_token_here"] } } }
{
"mcpServers": { "joplin": { "command": "npx", "args": [ "joplin-mcp-server", "--token", "your_token", "--sync-target", "filesystem", "--sync-path", "/path/to/sync/dir" ] } } }
{
"mcpServers": { "joplin": { "command": "npx", "args": ["joplin-mcp-server"], "env": { "JOPLIN_TOKEN": "your_actual_token_here", "JOPLIN_HOST": "192.168.0.40", "JOPLIN_PORT": "41184" } } } }
docker build -t joplin-mcp .
docker run -e JOPLIN_TOKEN=your_token -p 3000:3000 joplin-mcp
Running in WSL? The sidecar architecture makes this straightforward — no Windows port forwarding needed. The server auto-detects WSL and handles path resolution between Linux and Windows filesystems.
Both your Windows Joplin desktop and the WSL sidecar sync to the same OneDrive folder. They see the same notes without needing to talk to each other directly.
# Uses ~/OneDrive — automatically resolves to /mnt/c/Users/YourName/OneDrive on WSL
npx joplin-mcp-server --token your_token \ --sync-target filesystem \ --sync-path ~/OneDrive/Apps/Joplin
npx joplin-mcp-server --token your_token \ --sync-target filesystem \ --sync-path /mnt/c/Users/YourName/OneDrive/Apps/Joplin
In your Joplin desktop app, configure sync to the same OneDrive folder: Tools > Options > Synchronisation > File system > /Users/YourName/OneDrive/Apps/Joplin
Joplin Desktop coexistence: If Desktop is running on port 41184, the sidecar automatically uses the next available port. A warning is logged at startup reminding you that both instances use separate databases and need the same sync target to stay in sync.
Alternatively, both instances can sync to Joplin Cloud or any other cloud backend:
npx joplin-mcp-server --token your_token \
--sync-target joplin-cloud \ --sync-username user@example.com --sync-password pass
If you prefer to connect directly to Windows Joplin instead of running a sidecar:
On Windows (PowerShell as Administrator):
netsh interface portproxy add v4tov4 listenport=41184 listenaddress=0.0.0.0 connectport=41184 connectaddress=127.0.0.1
In WSL:
JOPLIN_HOST=192.168.0.40 JOPLIN_PORT=41184 npx joplin-mcp-server --token your_token
Find your Windows IP with ipconfig on Windows or cat /etc/resolv.conf | grep nameserver from WSL.
| Tool | Description |
|---|---|
list_notebooks | Retrieve the complete notebook hierarchy |
search_notes | Search for notes by query string |
read_notebook | Read contents of a specific notebook |
read_note | Read full content of a specific note |
read_multinote | Read multiple notes at once |
create_note | Create a new note |
create_folder | Create a new notebook |
| edit_note | Edit an existing note
ตัดมาแค่ช่วงต้น อ่านต่อใน repo