back
MCP作成、メール ファイル書込など
id: 185, 2025-05-22
### 音声概要
・AIで生成された 音声概要になります。
### 概要
- MCP 作例メモになります。
- LLMは、Gemini, Ollama等を使用予定。
- MCP Client, Serverは自作、OSS参考予定してます。
[ 公開 2025/05/03 ]
### 外部API連携 DB書込み、メール送信
- 前回同様、Vercel AI SDK の例になります。
- LLM = Gemini の構成になります。
- nodemailerの gmailサービスを使用し。メール配信
### 構成
- d1 + CF workers
- Vercel AI SDK
- LLM: gemini
- node20
- nodemailer
### 書いたコード
https://github.com/kuc-arc-f/mcp_client_1ex/tree/main/mcp-cli-3
gmail経由する為、googleアカウント、アプリ パスワード必要です。
- アプリ パスワード発行
- アプリパスワード設定する例です (下記の手順)
- Googleアカウントの画面を開く
- セキュリティ>2 段階認証プロセス をクリックする。
- 下方向の、アプリ パスワードのリンクおす。
- アプリ名を追加。パスワード発行される(16桁)
- プロンプト参考
- 購入品の登録後、メール配信する処理
addItemMail を使って、 バス代 , 210 JPY を送信して欲しい。
- .env
- API_URL: 外部連携API
- GOOGLE_MAIL_USER: メール送信元
- GOOGLE_MAIL_PASSWORD:アプリ パスワード
- GOOGLE_MAIL_SENDTO: 送信先
GOOGLE_GENERATIVE_AI_API_KEY="key"
API_URL="https://hoge"
#MAIl
GOOGLE_MAIL_USER="taro@gmail.com"
GOOGLE_MAIL_PASSWORD=""
GOOGLE_MAIL_SENDTO="hoge@example.com"
- tool
- mcp-cli-3/src/tools/addItemMail.ts
https://github.com/kuc-arc-f/mcp_client_1ex/blob/main/mcp-cli-3/src/tools/addItemMail.ts
- CLI-log
>yarn dev
yarn run v1.22.22
$ tsx src
input:addItemMail を使って、 バス代 , 210 JPY を送信して欲しい。
input= addItemMail を使って、 バス代 , 210 JPY を送信して欲しい。
Email sent: 250 2.0.0 OK 1746242106 d9443c01a7336-22e151e079fsm15407775ad.4 - gsmtp
artifact:
OK。送信しました。
Done in 6.16s.
### 外部API連携 DB書込み、CSVファイル出力
- 前回同様、Vercel AI SDK の例になります。
- LLM = Gemini の構成になります。
### 構成
- d1 + CF workers
- Vercel AI SDK
- LLM: gemini
- node20
### 書いたコード
- プロンプト参考
- 購入品の登録後、CSV 出力 ローカル
addItemCsv を使って、 コーヒー , 110 JPY を送信して欲しい。
- tool
- mcp-cli-3/src/tools/addItemCsv.ts
- csv-writer を使用
- 外部APIから、配列データを CSV出力する。
https://github.com/kuc-arc-f/mcp_client_1ex/blob/main/mcp-cli-3/src/tools/addItemCsv.ts
- CLI-log
$yarn dev
yarn run v1.22.22
$ tsx src
input:addItemCsv を使って、 弁当代 , 400 JPY を送信して欲しい。
input= addItemCsv を使って、 弁当代 , 400 JPY を送信して欲しい。
artifact:
弁当代 , 400 JPY を送信しました。
### MCPで、Googleスプレッドシートのデータ表示
- 前回同様、Vercel AI SDK の例になります。
- LLM = Gemini の構成になります。
### 構成
- Googleスプレッドシート
- Vercel AI SDK
- LLM: gemini
- node20
### 関連
- https://developers.google.com/workspace/sheets/api/quickstart/nodejs?hl=ja
- https://developers.google.com/workspace/sheets/api/samples/reading?hl=ja
- https://qiita.com/tatsuya1970/items/25005befab6d7ba9805e
### 書いたコード
### API_KEY 等取得方法
- google Cloud 開く。
- https://console.cloud.google.com/apis/dashboard
- 左のライブラリ、選択
- google sheets api で、検索
- 有効にします。
左の、認証情報おす。
上の、認証情報を作成 押す
API_KEY を、メモします。
- Google Drive 開き
- スプレッドシート作成
- 右プルダウン> 共有おす
- 一般的なアクセス> リンクを知っている全員 に変更する。
- SPREADSHEET_ID
- スプレッドシート を開いているパス内に、SPREADSHEET_ID あり。
https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit?gid=0#gid=0
- GET 通信で、取得
- SPREADSHEET_ID で、置き換える
- key= の後に、上記のAPI_KEY を追加
- curl の参考は、下記
curl https://sheets.googleapis.com/v4/spreadsheets/SPREADSHEET_ID/values/シート1!A1:B100?key=api-akey
- プロンプト参考
getSpreadSheet を使って、TODOリストを、markdown記法の表形式で表示して欲しい
.env
SPREADSHEET_ID , GOOGLE_AUTH_API_KEY: 認証情報 > API_KEY
GOOGLE_GENERATIVE_AI_API_KEY="api-key"
#Google-Drive
SPREADSHEET_ID=""
GOOGLE_AUTH_API_KEY=""
- tool
- mcp-cli-3/src/tools/getSpreadSheet.ts
https://github.com/kuc-arc-f/mcp_client_7ex/blob/main/mcp-cli-3/src/tools/getSpreadSheet.ts
- CLI-log
>yarn dev
yarn run v1.22.22
$ tsx src
input:getSpreadSheet を使って、スプレッドシートのTODOリストを、markdown記法の表形式で表示して欲しい
input= getSpreadSheet を使って、スプレッドシートのTODOリストを、markdown記法の表形式で表示して欲しい
| TODO |
|:----:|
| 技術系ブログを書く|
| コーヒー購入|
| 散歩に行く|
artifact:
スプレッドシートのTODOリストは以下の通りです。
| TODO |
|:----:|
| 技術系ブログを書く|
| コーヒー購入|
| 散歩に行く|