# 使用 MacOS 建立 MCP 連線
如果使用的是 macOS 系統, 一樣能建立 MCP 連線
## 12-2 讓 Claude Desktop 透過 MCP 伺服器管理電腦桌面的檔案 `p12-7`
### 安裝可執行 MCP 伺服器 – filesystem 的環境
filesystem 這個 MCP 伺服器是以 Node.js 所撰寫, 要執行 filesystem 需要先安裝 Node.js 執行環境, 請依照以下步驟安裝:
#### 1.開啟電腦上的終端機 Terminal 指令介面:

1.在電腦搜尋輸入 "Terminal"
2.按此開啟
#### 2.複製以下指令, 貼上 Terminal 並按 Enter 執行安裝 Homebrew:
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
:::info
Tip:Homebrew 是 macOS 上的套件管理工具, 能夠快速安裝與管理各種開發工具, 詳細安裝步驟與內容請至 Homebrew 網站 (https://brew.sh/) 查詢
:::
:::info
安裝完成後,可能需要將 Homebrew 加入到 PATH 中:
```
# 對於 Apple Silicon Mac (M1/M2/M3)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
# 對於 Intel Mac
echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/usr/local/bin/brew shellenv)"
```
:::
#### 3.請先關閉並重新開啟 Terminal, 再使用 Homebrew 安裝 Node.js:
```
brew install node
```
#### 4.安裝完成 Node.js 環境後, 就可以測試 filesystem 能不能順利運作, 指令最後是要讓 filesystem 操控的資料夾路徑, 本例是使用者的桌面:
```
npx -y @modelcontextprotocol/server-filesystem "/Users/使用者名稱/Desktop"
```
執行後會看到出現以下訊息:
```
>> Secure MCP Filesystem Server running on stdio
```
這表示 fiesystem 可以正常啟動, 請按下 Ctrl+C 結束運行
:::info
Tip:只要在 Terminal 想結束指令的運行, 都可以按 Ctrl+C 或是關閉 PowerShell 視窗, 即可結束執行, 後續將不再示範
:::
### 讓 Claude Desktop 透過 filesystem 查看桌面檔案
現在我們的 MCP伺服器已經準備就緒, 想要讓 Claude Desktop 與 filesystem 透過 MCP 連線, 就需要修改 Claude Desktop 的設定檔, 請跟著以下步驟完成設定:
#### 1.回到 Claude Desktop 進行設定:

1.在左下角點開列表/Setting 進入設定

2.切換到 Developer 頁次
3.按 Edit Config 會跳轉到設定檔所在的 Claude 資料夾
#### 2.請用文字編輯開啟設定檔 claude_desktop_config.json, 貼上以下的 json 內容:
```
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y"
"@modelcontextprotocol/server-filesystem",
"/Users/使用者名稱/Desktop"
]
}
}
}
```
完成後畫面如下:

1.將內容改成剛剛複製的 json 內容
2.填入你的使用者名稱
這個設定的意思是提供一個名稱為 "filesystem" 的 MCP 伺服器, 若需要它提供的工具, 可以執行 "command" 欄位和 "args" 欄位設定的 MCP 伺服器程式, 本例就是剛剛測試的指令。Claude Desktop 會在需要使用 filesystem 時主動執行這個程式, 並與該程式透過 MCP 協議溝通, 取得工具清單, 並依據需要指揮該程式執行特定工具後將工具執行結果送回。
:::info
Tip:因為本章只會管理電腦桌面, 只選擇桌面資料夾, 如果你想讓 Claude Desktop 存取不同的資料夾, 可以自行更變。
:::
#### 3.儲存更變後, 要重新啟動 Claude Desktop 套用更變:

1.在 Claude Desktop 圖示上按右鍵
2.按結束關閉
:::info
Tip:單純關閉 Claude Desktop 視窗並不會真的關閉應用程式, 要到圖示上按右鍵才能關閉。
:::
:::warning
請回到書中 p12-12 繼續閱讀
:::
## 12-3 讓 Claude使用 make.com 的工具 `p12-18`
### 使用 mcp-proxy 讓 Claude 能使用 make.com 的工具
#### 1.由於 mcp-proxy 是使用 Python 開發, 因此需先安裝 Python 的管理工具 uv, 請開啟 Terminal, 使用 Homebrew 安裝 uv:
```
brew install uv
```
:::info
Tip:uv是由 Astral 開發的 Python 套件管理器, 詳細請至 Astral 的 uv 網站 (https://docs.astral.sh/uv/) 查詢
::::
#### 2.檢查 mcp-proxy 是否可用:
```
uvx mcp-proxy –-version
>> mcp-proxy 0.9.0
```
#### 3.確認 mcp-proxy 可以順利執行後, 複製以下的json內容, 修改 claude_desktop_config.json設定檔 :
```
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/Users/使用者名稱/Desktop"
]
},
"make": {
"command": "uvx",
"args": [
"mcp-proxy",
"https://eu2.make.com/mcp/api/v1/u/你的MCP Token/sse"
]
}
}
}
```

1.加入另一個 MCP 伺服器, 命名為 "make"
2.使用的執行指令是 uvx
3.填入 mcp-proxy
4.填入剛剛保存的 MCP Token, 也就是 make.com 提供的 MCP 伺服器網址
:::warning
請回到書中 p12-20 繼續閱讀
:::
## 12-4 讓 Make AI Agent 能夠存取電腦上的檔案 `p12-27`
### 使用 mcp-proxy 發布 filesystem 到電腦的指定連接埠
#### 開啟 Terminal 視窗, 啟動 mcp-proxy 來連接 MCP 伺服器 filesystem, 並發佈到連接埠 3001:
```
uvx mcp-proxy --port=3001 npx @modelcontextprotocol/server-filesystem /Users/使用者名稱/Desktop
…(略)
>> [32mINFO[0m: Application startup complete.
[32mINFO[0m: Uvicorn running on [1mhttp://127.0.0.1:3001[0m (Press CTRL+C to quit)
```
現在只要透過 SSE 連接 http://127.0.0.1:3001, 就能呼叫 filesystem 伺服器的工具了。不過這個網址並不是公開的網址, 所以位在網路遠端的 make.com 並不能連接, 我們需要再使用另一個工具 ngrok, 它能將 http://127.0.0.1:3001 透過轉址的方式, 真正的發佈到網路上。
### 安裝ngrok並將 filesystem MCP伺服器發佈到網路上
只要將 MCP 伺服器發佈到網路上, 不只是 make.com, 只要是有支援SSE 傳輸的 MCP 主控端, 都能連接使用, 請跟著以下步驟將剛剛發布的 MCP 伺服器轉接到網路上:
#### 1.先到ngrok網站 https://ngrok.com/ 進行註冊:

1.按此開始註冊

2.自行選擇註冊方式, 本例使用 Google 註冊

3.註冊的過程中會看到這個頁面, 請按此跳過

4.註冊完成後, 在左邊欄按此切換頁面

5.往下捲找到 Connect 段落
6.按此複製, 這是後面要認證所使用的指令, 請保存好
#### 2.接著要使用 Terminal 安裝並執行 ngrok, 因為 mcp-proxy 要保持連線狀態, 請開啟另一個 Terminal:

1.點一下 Terminal 視窗
2.點左上角的Shell/新增視窗/新增套用…
#### 3.使用 Homebrew 安裝 ngrok:
```
brew install ngrok/ngrok/ngrok
…(略)
==> Installing Cask ngrok
==> Linking Binary 'ngrok' to '/opt/homebrew/bin/ngrok'
🍺 ngrok was successfully installed!
```
:::info
為甚麼下載 ngrok 需要 ngrok/ngrok/ngrok, 這是因為 Homebrew 的 tap 機制 (格式:使用者名稱/倉庫名稱/軟體名稱), 因為 ngrok 不在 Homebrew 的核心倉庫中, 而是由 ngrok 自行維護。如果想了解更多 tap 的細節, 請參考:https://docs.brew.sh/Taps。
:::
#### 4.貼上剛剛在ngrok網站複製的指令, 設定ngrok認證:
```
ngrok config add-authtoken 30rLGmB1QR8uYsTbn8f2BH3qpco_88wu6tLpSyYj63ye7kcb9
>> Authtoken saved to configuration file: /Users/flag/Library/Application Support/ngrok/ngrok.yml
```
#### 5.執行 ngrok 將 MCP 伺服器發布在網路上:
```
ngrok http 3001
```
按下 Enter 執行後, 會直接建立一個轉接回電腦 3001 連接埠的網址:
```
ngrok (Ctrl+C to quit)
Create instant endpoints for local containers within Docker Desktop →→ https://ngrok.com/r/docker
Session Status online
Account oscarflagwork@gmail.com (Plan: Free)
Version 3.26.0
Region Japan (jp)
Latency 36ms
Web Interface http://127.0.0.1:4040
Forwarding https://d85dd1d81862.ngrok-free.app -> http://localhost:3001
Connections ttl opn rt1 rt5 p50 p90 0 0 0.00 0.00 0.00 0.00
```
只要透過這個 https://************.ngrok-free.app 網址, ngrok 會幫你轉接回到你電腦上的 3001 連接埠, 就能存取電腦上的檔案, 請在電腦上複製這段網址
:::info
Tip:任何人都能透過這個網址來使用 filesystem 操作你的桌面檔案, 請小心保管。
:::
#### 6.為了測試是不是真的能透過這段網址使用 filesystem, 請修改 Claude Desktop 設定檔, 並在 Claude Desktop 進行測試:

1.改用執行 mcp-proxy 的 uvx
2.使用 mcp-proxy 的方式來呼叫 filesystem 的工具
3.貼上 ngrok 連線的網址, 記得加上 "/sse"
:::warning
請回到書中 p12-31 繼續閱讀
:::