---
# System prepended metadata

title: n8nxMCP 協力工作坊
tags: [GDG]

---

# n8nxMCP 協力工作坊
[課程簡報](https://www.canva.com/design/DAGzldqVkts/VGMwUHXnIVgyn08xGP2U5A/view?utm_content=DAGzldqVkts&utm_campaign=designshare&utm_medium=link2&utm_source=uniquelinks&utlId=hbec9fea23a)
## Step 1 用Docker 部屬n8n服務
1. 下載Docker
> [Docker 官網連結](https://www.docker.com/)

2. 到Docker hub 找n8nio/n8n image 下載
3. create 一個 volume
4. run n8nio/n8n image，開一個container

command line的做法：
1. 下載n8n 的 image
```
docker pull n8nio/n8n:latest
```
2. 建立volume
```
docker volume create n8n_data
```
3. 把container跑起來
```
docker run -it -p 5678:5678  -v n8n_data:/home/node/.n8n --name n8n n8nio/n8n:latest
```

> container path：``` /home/node/.n8n```

![image](https://hackmd.io/_uploads/ByZz1Epsge.png)

5. 輸入網址測試可不可以打開
``` url 
http://localhost:5678/
```
## Step 2 註冊之後就可以開始玩n8n囉
[n8n 節點官方文件](https://docs.n8n.io/integrations/)

::: spoiler 甚麼是MCP

:::
### 1. 建立MCP Server
>這裡示範2個功能：GitHub Create issue, Watch Repository Status ,Reply Gmail
1. 建立MCP  Server Trigger
![image](https://hackmd.io/_uploads/SkPoTEpogg.png)
2. 建立Github credential
![image](https://hackmd.io/_uploads/SJsSfvpjxx.png)
3. 製作 access token 
setting -> Devloper setting -> Tokens(classic) -> Generate New personal access token (classic)
![image](https://hackmd.io/_uploads/SyObnw6sle.png)
4. 開始製作節點
::: info
#### Task 1：Github Create issue
* create issue 
* Repository Owner："user name"
* Repository Name：AI
* Title：AI
* Body：AI

#### Task 2：Github Watch Repository Status
* Repository Operation 
* Repository Owner："user name"
* Repository Name：AI
    
#### Task 3：Send Email
* Send Message
* To:AI
* Subject:AI
* Email type:Text
* Message:AI
::: spoiler 建立Google credential
1. 建立GCP Project ，選取專案，建立Gmail API
![image](https://hackmd.io/_uploads/HJn1Tvaixe.png)
2. 點選API 及服務->OAuth 同意頁面-> 點擊開始
![image](https://hackmd.io/_uploads/SJ8IpPajex.png)
![image](https://hackmd.io/_uploads/rki2TPTsxl.png)
3. 設定 目標用戶(測試使用者)、客戶端、資料存取範圍
![image](https://hackmd.io/_uploads/SJ98MOTixe.png)
![image](https://hackmd.io/_uploads/Hy5XzOTsgg.png)
![image](https://hackmd.io/_uploads/r19nbuTogg.png)
4.把資料都貼上去，Sign in Google 成功就完成囉 ~
![image](https://hackmd.io/_uploads/rk977Opilx.png)
:::



### 2. 建立MCP Client
1. 開一個新的workflow
2. 建立chat trigger節點
![image](https://hackmd.io/_uploads/HyiEwu6ile.png)
3. 建立AI Agent，opetion選擇System message，下prompt
> 執行使用者的任務

![image](https://hackmd.io/_uploads/SkY3P_6sgg.png)
4. 串聯Chat Model(這裡示範Gemini)
::: spoiler how to get gemini api key
[google ai studio](https://aistudio.google.com/prompts/new_chat)
1. get api key
![image](https://hackmd.io/_uploads/SJEOduTsll.png)
2. create api key(這裡比較麻煩是需要選擇project，所以上一不一定要先用好，不然又要回到GCP去開project)
![image](https://hackmd.io/_uploads/SJI3Odpixg.png)
![image](https://hackmd.io/_uploads/HyrEt_psxg.png)
:::

![image](https://hackmd.io/_uploads/BkVnKdpixx.png)
2. 建立Gemini credential
3. 在tool，建立MCP Client Tool節點
4. 編輯MCP Client Tool，在Endpoint url 輸入剛剛MCP Server 的url
![image](https://hackmd.io/_uploads/rk7Svtaoxx.png)
5. MCP Client tool 的Endpoint url ，localhost要改成 host.docker.internal
``` bash 
host.docker.internal
```
![image](https://hackmd.io/_uploads/ryK7dtaixl.png)

::: success
# 大功告成，可以測試啦！
:::
## 設定ngrok代理服務
![image](https://hackmd.io/_uploads/S1C2GVTsxg.png)
1. 下載 ngrok
[ngrok 官網 下載連結](https://ngrok.com/downloads/windows?tab=download)

2. 設定ngrok token
``` bash
ngrok config add-authtoken <token>
```
![image](https://hackmd.io/_uploads/r1Ru84piex.png)

3. 代理 port 5678，你將會獲得一段外部代理網址，可以拿來使用
```
ngrok http 5678
```
![image](https://hackmd.io/_uploads/SyVID4Togl.png)

4. 重新run n8n image，並在底下的Environment variables，設定代理網址

![image](https://hackmd.io/_uploads/B1Z6uNpsel.png)

> ## 參考資料
> * [科技宅阿高官網](https://geekaz.net/tag/automation-workflow/)
> * [科技宅阿高脆文-常用資料處理的節點](https://www.threads.com/@geekaz/post/DOQsbpLESU6?xmt=AQF0SqgAvI2cVW1eBPmR_XBfGWsE49Q1QIFeLPEsbSM9RA&slof=1)
> * [陶渊小明](https://www.youtube.com/@a--yuan)
> * [[EP-16] n8n 上的各種 AI 節點功能介紹
](https://newsletters.raven.tw/p/ep-16-n8n-ai)