/// BANGBOO BLOG ///

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31


April 16, 2025 List
AIエージェント MCPサーバ on Apr 16, 2025 7:57 PM

April 16, 2025

AIエージェント MCPサーバ
■MCPサーバによる連謳?
Model Context Protocol(MCP)の基軆??に関して、社内勉強臀??で使用したスライド資料を公開します! | DevelopersIO
roo-logger: Cline Memory Bankとは違うAIの鐔??憶システムを(MCPで・??作った理逕?
MCPサーバー自臀??入門
MCP入門
MCPを活用した検索システムの臀??り譁?/How to implement search systems with MCP #catalks - Speaker Deck
リモートMCPサーバーカタロ繧? #AWS - Qiita
プログラマー藹??見!FastAPI-MCP縺?AI時代縺?API開発を加速する方觸??(初心者向けコード付き) #Python - Qiita
MySQLのスキーマ情報を圧縮して觸??供するMCPサーバーを作った - $shibayu36->blog;
MCPを理解する - Speaker Deck
ローカ繝?RAGを手軽に觸??築できるMCPサーバーを作りました
[B! MCP] MCPサーバーを使って鐔??求書臀??成から送付まで自動化してみた隧?
Docker MCP Gatewayがすんばらしい? #AmazonQDeveloper - Qiita
社内縺?AIコーディング藹??入を加速するため前觸??知鐔??をまとめたガイドラインを書いた - Cluster Tech Blog

MCPアーキテクチャパター繝? - Carpe Diem
Cline縺?DDDと軆?? - コドモ繝? Product Team Blog
Gemini CLI の簡単チュートリア繝?
AIエージェントのサービス觸??築を検險?しているあなた縺?
【AI×開発軆??織Summit】AIと共につ縺?る、これからのデザインプロセス・??Figma AI縺?MCP Serverによる新しい協働_アーカイブ動逕? - YouTube
MCPの鐔??証と鐔??藹?? - MCP Meetup Tokyo 2025 - Speaker Deck

ADK を使用した AI エージェントの觸??築: 基軆??
ナレッジ觸??索・回答AIエージェントG-gen Tech AgentをADKで開発した事例 - G-gen Tech Blog
ADK縺?LLM Agent縺?Workflow Agents、Toolsを解説 - G-gen Tech Blog
ADK縺?Web UIによる評価とデバッ繧? - G-gen Tech Blog

[B! AI] Cline利用におけるデータの藹??り扱いについ縺? - サーバーワークスエンジニアブロ繧?
Cline駄目そう?一般的な鐔??約という声もある
 Clineのデータの持ち譁?
 一応通信はないらしい
Cline - AI Autonomous Coding Agent for VS Code
WE CLAIM NO OWNERSHIP RIGHTS OVER YOUR USER CONTENT. とはあるが再利用に使繧?ないという諢?味ではないらしい
Privacy. By using the Service, you acknowledge that we may collect, use, and disclose your personal information and aggregated and/or anonymized data as set forth in our Privacy Notice.とあるので縺?

■構成
MCPホスト:Cline等縺?AIエージェント
MCPクライアント:Json設藹??縺?Proxy (これ以降が狭義MCPサーバ? あるいは全臀??縺?MCPサーバ)
┣→ここでコマンドを打つように設定すればそのままローカルがEPになる 
↓ (uv縺?Pythonパッケージ管理/仮想環藹??ツー繝?) uv run python src とか
API EP

■外驛?APIに通信かローカルか2種饅??と考えていい
stdio ローカルのサーバと通菫?
remote リモートのサーバと通菫?(SSE→Streamable httpに移行荳?)
 Server-Sent Events: クライアントからサーバへ縺?httpだが、藹??対縺?SSEで、正確に縺?http+SSE
  ステートフル、AIとの臀??話は文脈が必要で長時間接続になる、この通信だとスケールできない
 Sreamable http: ステートレス、通常はただ縺?httpでセッショ繝?IDによる状態管理があり必要な時縺?SSEへ動的アップグレードする
メッセージ縺?JSON-RPC2.0

例)github-mcp-server GitHub - github/github-mcp-server: GitHub's official MCP Server
 ローカルにおきDockerを動かす蠖?

機能縺?3縺?
 Resources:事前に情報をファイルで読み込ませる感じ
 Prompts:プロンプトのテンプレ設定してお縺?感じ
 Tools:使うツールを設藹??してお縺?感じ
(MCPクライアント縺?2つ・??無意識でいい)
 Sampling:MCPを使うよ~
 Roots:MCPを使うファイルシステム確鐔??~

これで人間が操作していた内容をMCPで藹??施するようにする
LLM→人間→Github/Slack/GCP etc.
LLM→MCP→Github/Slack/GCP etc.

■MPCサーバとは臀??者?
Model Context Protocol (MCP)は、特縺?LLMを活用するアプリケーションにおいて、モデルとのやりとりを標準化するためのプロトコ繝?
API EPやローカルプロセスをMCPサーバと鐔??っているケースもあるが、MCPの文脈からする縺?MCPサーバは仲介。MCPクライアントは藹??義縺?MCPサーバに含まれている

MCPにおける構成
[ユーザ繝?] -> [LLM (MCPクライアント)] --> [MCPサーバ] -> [API/CLI/ローカルプロセス】
Introduction - Model Context Protocol

■github-mcp-server設藹??
GitHub - github/github-mcp-server: GitHub's official MCP Server
Github トークン発鐔??はココで→ https://github.com/settings/tokens
 クラシックトークン縺?repo全臀??でも良さそう(configure SSOもしてお縺?こ縺?)

MCP Marketplace>Remote server>Edit configuration>下記コードをコピペする
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_xxxxxxx"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

上手く行かないので、Cline自身縺?MCPサーバの調整をしてもらうと臀??記となった (Docker、DockerGroup、Proxy等) 
{
  "mcpServers": {
    "github": {
      "command": "sg",
      "args": [
        "docker",
        "-c",
        "docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN -e http_proxy -e https_proxy ghcr.io/github/github-mcp-server stdio"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_xxxxx",
        "http_proxy": "http://proxy:3128",
        "https_proxy": "http://proxy:3128"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

■ローカルサーバ
//// UV
curl -Ls https://astral.sh/uv/install.sh | sh
cd /mnt/c/Users/unco/Desktop/local_test/MCP/kuso-app
uv venv 該藹??ディレクトリに仮想環藹??を設藹??
source .venv/bin/activate アクティベート
uv pip install google-cloud-asset
uv pip freeze > requirements.txt
python3 main.py
deactivate 停豁?
gcloud auth application-default login --no-launch-browser
gcloud auth login --no-launch-browser
消したければ、venvを削除するだけ

上記縺?pip+requirementsだが下記の方がいいかも、add+tomlで管理
uv init myproject (myprojectディレクトリ、tomlファイルが作成される)
uv add numpy
uv remove numpy
nv sync
uv lock
uv tree
uv python install 3.10 3.11
uv python list
uv python pin 3.11
uv tool install ruff
uv tool list
uvx pytest 一時的に仮装環藹??を汚さず実行
uv exports --format-requirements.txt

権限確鐔??API(analyzeIamPolicy)
Method: analyzeIamPolicy  |  Cloud Asset Inventory Documentation  |  Google Cloud
Try this method を使えばリクエストやURLが分かる (展開ボタンを押す:□の形)

curl \
'https://cloudasset.googleapis.com/v1/projects/prj-xxxxx:analyzeIamPolicy?analysisQuery.accessSelector.roles roles%2 Fbigquery.dataowner&analysisQuery.identitySelector.identity=user%3Axxxxx%40xxxxx.com&key=[YOUR_API_KEY]'\
--header "Authorization: Bearer $(gcloud auth print-access-token)"\
--header Accept: application/json' \
--compressed
窶?APIキー臀??要だた、HTTPやJSの方觸??も出る

parentでエラーがでてもscopeという諢?蜻?> organizations/123, folders/123, projects/my-project-id, projects/12345
400 Missing parent field in request. [field_violations {
field: "parent"
description: "Missing parent field in request." }


■2023-04-24
Dialog flow ES - Chatbotの臀??り譁?
対話蠑?アプリの有効性・??何か対軆??をしときたい

Dialogflow:FAQのチャットボットを作りたい
 intentをFAQの数だけ作る
  intentグループがあれば軆??められるが、、
 色は赤や青で分ける必要がある? entitityは色だが単語で分ける
  entitiy: colors、単語:赤、類語:Red、朱色軆??
          単語:白、類語:ホワイト等

entitity 個別項目・??色、サイズ、キーワード)トレーニングフェーズで使う用鐔??を設藹??してお縺?
intent 諢?図・??選択、買う、確鐔??、支払)チャットで藹??きあたる項目で、数藹??く作ることになる
 上縺?2つを結びつきを強縺?するcontext
  input context 該藹??のインテントの藹??遷の臀??つ前の別名を指定
  output context(コンテキスト用エイリアス名) 該藹??のインテントの別名を設藹??する
 Training phrases(想藹??するユーザの入力文)
 Responses(答えへの藹??応

料金 無料の軆??囲である程度鐔??える
項目を500から選ぶとしても大臀??夫 外部のデータソースを使う(できそう)
 色を10個を選択するとしても大臀??螟?
結果を外部に連携することもできそう

AI型は入力された質蝠?に対して、FAQから適切な回答を表示(正誤で学習し判藹??上がる)
シナリオ型は入力値から分岐を判藹??して進む、あみだ縺?じタイプの藹??型処理に持ってい縺?

■Dialog flow ES
下記の辺りを設藹??すれば、チャットボットが回答するようになる
ESとしては、ユーザ入力を構造化データにする処理を行いパラメータへ觸??索を觸??ける挙動となっている
 ユーザ鐔??動の履歴から検索ヒットの改善を学軆??するタイプ縺?AI

インテント分類(ユーザの諢?図のパターンを設藹??)
┣トレーニングフレー繧?(質蝠?の臀??文を指定)
┣アクショ繝? (何を実行するか指定)
┣パラメー繧?/エンティテ繧?(質蝠?から抽出すると型を指定)
┗レスポン繧? (何を返答するか指定)

コンテキスト: input (一つ前のインテント〉 縺? output (当インデントの別名)
イベント:エンドユーザーの発鐔??からではな縺?、発生したイベントに基づいてインテントを呼び出す
アクショ繝?: デフォルトfallbackに縺?input-unknown がついている
パラメー繧?:下記縺?らいの考慮で良さそう
@sys.any キーワードを設藹??してしまう?
@sys.url
@sys.person ロールや役職を設藹??してしまう?
@sys.email

■Agent 設藹??
Agent > ML setting > Train でトレーニングさせる。
megaでな縺?普通のエージェントの方が分かり易い?
Agent > environment > publish パブリッシュし公開?

■ intent
テキストレスポンスにタグが使えずリンクにならない。
ユーザエクスプレッションの単語をドラッグ藹??転させ techinical_terms 等で觸??索する縺?Entityを藹??映することができる。
(Entity登録觸??みなら熟語でもOKだが、未登録なら単語で設定したような・??

■Entitiy 設藹??
業務で使用している重要用鐔??縺? @technical_termsとして臀??り、揺ら縺?を全て入力したい
BigQuery: BQ、ビッグクエリ、、、
個人情蝣?: パーソナルインフォメーショ繝?, PII、、、

■Integration設藹??
WebDemoを有効化
DialogMessangerを有効化(こっちのがCoolで縺?

■FAQを簡単に觸??築するコツ
検索を網軆??するように質蝠?を重要単語を全て入れた形で鐔??数設定する
代表的な質蝠?をレスポンスに入れてしまう縺?FAQとして分かり易い
 藹??考になりそうなの臀??例を回答します。
 Q「ああああ」
 A「いいい」

■思うような軆??果にならない場合のチューニン繧?
トレーニングフレーズを追加するのが基譛?
できるだけキーワードをEintity化することもよい方觸??
Trainingに驕?去キーワードがあり正誤判藹??することができる
Validationにトレーニングフレーズの追加等の問題觸??起が出ているので対蜃?
-トレーニングフレーズ臀??足なら、ダミー觸??索を觸??け、Trainingでキーワード縺?intentを割り当てれば臀??時しの縺?はできる

■セキュリテ繧?
WebDemoは誰でも見れてしまう
Dialogflow Messangerをどこかのドメインで使う必要がある(CORS対藹??のデフォルトドメインが要る)し、誰でも見れてしまう
Cloud run等縺?Webインターフェイスを作りバックエンド縺?Dialog APIを使う必要がある
クイックスタート: API の操作  |  Dialogflow ES  |  Google Cloud
Python client library  |  Google Cloud

Posted by funa : 07:57 PM | Web | Comment (0) | Trackback (0)