起手式: 請先安裝 Cluade Desktop / 更新到最新版
設定方式基本無異: 到設定 -> developer -> mcp server
注意, 剛加完 mcp server to config 之後需要重啟 claude desktop 才會生效
今天先來講一下我的血淚史, 明天再補充完整的 mcp server 創建方式,
原本我用 inspector 檢查都沒問題, 但是放到 claude 上就會掛掉, cursor 執行沒問題
cursor config 如下:
{
"mcpServers": {
"journal-mcp-server": {
"command": "node",
"args": ["/Users/maomao/Desktop/journal-mcp-server/build/index.js"]
}
}
}
claude log 錯誤:
2025-09-24T14:15:15.368Z [info] [journal-mcp-server] Message from client: {"jsonrpc":"2.0","method":"notifications/cancelled","params":{"requestId":0,"reason":"McpError: MCP error -32001: Request timed out"}}
後來發現是因為 claude 讀不到正確的 node,
因為 claude 似乎不會繼承我們 shell 的環境變量, 所以他找不到正確的path, 他預設從 bin 找, 這和 nvm 的處理原理不同,
因此我們在 claude mcp server config 上需要用 command 的方式去指定正確路徑:
{
"mcpServers": {
"journal-mcp-server": {
"command": "/Users/maomao/.nvm/versions/node/v22.12.0/bin/node",
"args": ["/Users/maomao/Desktop/journal-mcp-server/build/index.js"]
}
}
}
接著就可以開始哭了, 成功了:
log:
2025-09-24T14:42:42.907Z [info] [journal-mcp-server] Message from client: {"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}
==> /Users/maomao/Library/Logs/Claude/mcp-server-journal-mcp-server.log <==
Journal MCP Server running on stdio
2025-09-24T14:42:43.113Z [journal-mcp-server] [info] Message from server: {"jsonrpc":"2.0","id":0,"result":{"protocolVersion":"2025-06-18","capabilities":{"tools":{}},"serverInfo":{"name":"journal-mcp-server","version":"1.0.0"}}} { metadata: undefined }
Note: 眼尖的同學會發現我切回 typescript 了, 完整的重設會於明天介紹, 這也是我看了開源的 code 才發現的寫法