Home
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

### 書いたコード


  • アプリ パスワード発行
  • アプリパスワード設定する例です (下記の手順)
  • 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

### 関連


### 書いたコード


### API_KEY 等取得方法


  • 左のライブラリ、選択
  • 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  |
|:----:|
| 技術系ブログを書く|
| コーヒー購入|
| 散歩に行く|