Closed3
miseを使用している際のMCPの設定

課題
miseでnodeなどを入れている環境の際に、MCPの設定で通常通りnpx
などのcommandを指定すると
[error] spawn npx ENOENT
や
env: node: No such file or directory
などでパスを認識してくれない。
brewなどでnodeをグローバルに入れると解決するのだがせっかくmiseで管理している意味がなくなってくるのでやりたくない。

解決策1
miseは動的に環境変数を書き換えているとのことで、mise activate zsh
などが実行されないとnodeやnpxのパスが未定義になる。
※ 詳細は把握できてないがこちらを参考にさせて頂いた。
また、こちらの記事やclineのMCPのissueなどを見る限り、フルパスの指定が必要なようだ。
つまり解決策としては
- miseのshimsを有効にする
- mcpの設定時にフルパスを記載する
となる。
echo 'export PATH="$HOME/.local/share/mise/shims:$PATH"' >> ~/.zprofile
which npx
> /Users/[uname]/.local/share/mise/shims/npx
e.g.) sitemcpの場合
mcp.json
{
"mcpServers": {
"daisy-ui": {
"command": "/Users/[uname]/.local/share/mise/shims/npx",
"args": [
"-y",
"sitemcp",
"https://daisyui.com",
"-m",
"'/components/**'"
]
}
}
}

解決策2
解決策1で動作は確認できたが、なんとなくフルパスを指定するのも気分が晴れない。
miseにはNeither shims nor PATH
で実行するmise exec
がある。
これはshimsもPATHも無しでmiseから各環境を"正確に"呼べるものらしい。
設定 (e.g. sitemcp)
mcp.json
{
"mcpServers": {
"daisy-ui": {
"command": "mise",
"args": [
"exec",
"node@22",
"--",
"npx",
"-y",
"sitemcp",
"https://daisyui.com",
"-m",
"'/components/**'"
]
}
}
}
こっちのほうが何も設定をしなくて良いしフルパスも必要ないので良い感じ。
少しコマンドが冗長だが、miseのdocsを読む限り短縮aliasが使えそうなのでもう少しスッキリできるかも。
このスクラップは5ヶ月前にクローズされました