PythonではじめるMCP開発入門
https://www.kodansha.co.jp/book/products/0000419324
dockerでAnacondaからはじめてみる。
「PythonではじめるMCP開発入門」の前に with ChatGPT
https://qiita.com/kaizen_nagoya/items/263ac2f93519e9e000c3
PythonではじめるMCP開発入門
https://www.kodansha.co.jp/book/products/0000419324
購入して、読み始めた。対象者はもっと広くていいと思った。
自分の整理を書いてから、ChatGPTに質問してみた。
そんなにずれてない。好プレーということで。
環境構築の手順
前提:Python 3.12以上の環境
$ docker run -it continuumio/anaconda3 /bin/bash
# apt update; apt -y upgrade
# python --version
Python 3.12.7
1. uvのインストール
# curl -LsSf https://astral.sh/uv/install.sh | sh
downloading uv 0.9.2 aarch64-unknown-linux-gnu
no checksums to verify
installing to /root/.local/bin
uv
uvx
everything's installed!
To add $HOME/.local/bin to your PATH, either restart your shell or run:
source $HOME/.local/bin/env (sh, bash, zsh)
source $HOME/.local/bin/env.fish (fish)
2. Google APIの設定
1 Google Cloud Consoleにアクセスし、プロジェクトを作成または選択
book-codeというプロジェクトを作成。book_codeは使える文字ではなく作れない。
https://console.cloud.google.com/welcome?project=book-code-474911
2「APIとサービス」→「ライブラリ」から「Custom Search API」を有効化
「APIとサービス」→「ライブラリ」の「その他」の「Custom Search API」を有効化
https://console.cloud.google.com/apis/library/customsearch.googleapis.com?project=book-code-474911
3 「APIとサービス」→「認証情報」→「認証情報を作成」→「APIキー」でAPIキーを作成(これがGOOGLE_CSE_API_KEY)
どういう名前のAPIキーを作ればいいのかわからず。
アプリケーションの制限
APIの制限
を何を作ればいいのかわからず。
ひとまず、なんでもいいから適当に作ればいいんだろうなとは思う。
4 Programmable Search Engineにアクセスし、検索エンジンを作成
Programmable Search Engine
https://programmablesearchengine.google.com/about/
たぶん「使ってみる」を押すしか選択肢がみあたらない。
5 検索エンジンの設定ページから検索エンジンID(cx値)をコピー(これがGOOGLE_CSE_ID)
検索エンジン名は、どういう名前がよいか思い当たらず。
※ Google APIは1日100クエリまで無料、それ以上は1,000リクエストあたり5ドルの料金がかかります(1日最大10,000リクエストまで)
3. OpenAI APIキーの取得
OpenAIのウェブサイトでアカウントを作成
https://platform.openai.com/docs/overview
APIキーを発行(有料サービスなので注意)
4. 環境変数の設定
プロジェクトのルートディレクトリに.env.sampleファイルを参考に.envファイルを作成し、以下の内容を設定します:
OPENAI_API_KEY=あなたのOpenAI APIキー
GOOGLE_CSE_API_KEY=あなたのGoogle APIキー
GOOGLE_CSE_ID=あなたの検索エンジンID
MCPサーバーの設定
エージェントファイル内では、MCPサーバーの設定が以下のように定義されています:
RAW_CONFIG: Dict[str, dict] = {
"fetch": {"command": "uvx", "args": ["mcp-server-fetch"]},
"google_search": {
"command": "uv",
"args": ["--directory", "/path/to/your/project/servers/src", "run", "server_google_search.py"],
},
}
注意: 実際に使用する際は、/path/to/your/project/servers/srcの部分を、あなたの環境に合わせたパスに変更する必要があります。
実行方法
MCPホストのコード実行
プロジェクトのルートディレクトリで以下のコマンドを実行します:
Google検索チャットボットの実行
uv --directory "/path/to/your/project/host/src" run agent_chat_with_google_search.py
重要: 上記のコマンドを実行する前に、エージェントファイル内のMCPサーバー設定パス(RAW_CONFIG内の--directory引数)を、あなたの環境に合わせて修正してください。
docker hubへの保存
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d63ff7c3ca9a continuumio/anaconda3 "/bin/bash" 4 hours ago Up 4 hours keen_brattain
$ docker commit d63ff7c3ca9a kaizenjapan/python-mcp
sha256:2801073cf16ba0570aa9782f38f61feb0e51fa479131895e005ca7f2f1dca67e
$ docker push kaizenjapan/python-mcp
Using default tag: latest
The push refers to repository [docker.io/kaizenjapan/python-mcp]
ec4deb89436b: Pushed
2eec7551b0c9: Mounted from kaizenjapan/qiitatag
f0f039847c08: Mounted from kaizenjapan/qiitatag
latest: digest: sha256:b6ebd0a6b2db8b9112309944cd8e768b085ca79efb727c753bf8c9148922e34b size: 956
続きは、shellで
$ docker run -it kaizenjapan/python-mcp /bin/bash
で作業できまるはず。(arm系)
Ref.
大規模言語モデル講座 基礎編 2025 Autumn 敗因を勝因に
https://qiita.com/kaizen_nagoya/items/34ffd2b0c47a5f3665d9
MCP入門 〜面倒なことはAIエージェントにやらせよう〜 by からあげ を聞きながら
https://qiita.com/kaizen_nagoya/items/54b648c838fae8d57e38
MCP入門 〜面倒なことはAIエージェントにやらせよう〜 by からあげ を聞きながら、補足と反論 by ChatGPT
https://qiita.com/kaizen_nagoya/items/0939d58d31666562090c
MCP論文 @arXiv with ChatGPT
https://qiita.com/kaizen_nagoya/items/8ba05d667673ff98af28
C言語(C++)が必要な人と必要ない人
https://qiita.com/kaizen_nagoya/items/2afe9e846b55b24cb6f1
C言語(C++)が必要な人、必要ない人 with ChatGPT
https://qiita.com/kaizen_nagoya/items/a074cb8cd292d8d94bd4
C言語を習得する3つの方法
https://qiita.com/kaizen_nagoya/items/84cab0888c193bba429b
C言語を習得する3つの方法 with ChatGPT
https://qiita.com/kaizen_nagoya/items/4a3518a18fa49f46787f
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on my individual experience. It has nothing to do with the organization or business to which I currently belong.
Este artículo es una impresión personal basada en mi experiencia personal. No tiene nada que ver con la organización o empresa a la que pertenezco actualmente.
文書履歴(document history)
ver. 0.01 初稿 20251012
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.
Muchas gracias por leer hasta la última oración.
Por favor, haz clic en el ícono Me gusta 💚 y sígueme para tener una vida feliz.


