Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
MCP で「こいつ動くぞ」
Search
kanayannet
September 20, 2025
Programming
130
0
Share
MCP で「こいつ動くぞ」
kanayannet
September 20, 2025
More Decks by kanayannet
See All by kanayannet
厳密な定義
kanayannet
0
90
Mcp Training
kanayannet
0
160
無関心の谷
kanayannet
0
1.1k
生成AIの使いどころ
kanayannet
0
240
github copilot と 心理的安全性
kanayannet
0
270
FW と ライブラリ の考え方
kanayannet
0
270
TDDと今まで
kanayannet
0
650
個人開発 稼げなくてもいいアプリ
kanayannet
0
590
システムの堅牢性
kanayannet
0
340
Other Decks in Programming
See All in Programming
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.5k
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
570
10年分の技術的負債、完済へ ― Claude Code主導のAI駆動開発でスポーツブルを丸ごとリプレイスした話
takuya_houshima
0
2.6k
Agentic Elixir
whatyouhide
0
380
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
150
Going Multiplatform with Your Android App (Android Makers 2026)
zsmb
2
450
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.4k
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
3k
How Swift's Type System Guides AI Agents
koher
0
290
GitHubCopilotCLIをはじめよう.pdf
htkym
0
210
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
110
forteeの改修から振り返るPHPerKaigi 2026
muno92
PRO
3
290
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.6k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
110
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
770
Documentation Writing (for coders)
carmenintech
77
5.3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
340
Ruling the World: When Life Gets Gamed
codingconduct
0
210
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.2k
Become a Pro
speakerdeck
PRO
31
5.9k
Transcript
MCP で「こいつ動くぞ」 Gunma.web #57
MCP? Model Context Protocol AIモデル(LLM)と外部ツールやデータソースをつなぐオープンな標準プロトコル
まるで AI の「USB-C」 by chatGPT
なぜ?やるのか? 注目されてる SoftwareDesign にも取り上げられた 新しいものが好き やってみないと...感覚で理解できないものがありそう。
重要 「やってみた」だけだと自己満足で終わりそう 動くところまで見せる 価値あるものに見せる <- これだ
まずは基本を理解 MCP クライアント:AI 側(例:Claude Desktop や他の AI アプリ)が外部サーバと通 信する MCP
サーバ:外部インターネットやデータへの接続を提供するコンポーネント 通信仕様:JSON-RPC 2.0
各個撃破 MCP クライアンド: Claude Desktop で行けそう MCP サーバ:python でやってみっか クライアント機能の有効化
を忘れずに
やり方は claude に聞く
python3.12 -m venv mcp-env source mcp-env/bin/activate pip3.12 install mcp python
で環境構築
simple_mcp_server.py https://github.com/kanayannet/practice-mcp-servers
外部連携用のjsonを編集する 設定 -> 開発者 -> 設定を編集
{ "mcpServers": { "simple-python-server": { "command": "/path/to/your/project/mcp-env/bin/python3.12", "args": ["/path/to/your/project/simple_mcp_server.py"] }
} } claude_desktop_config.json
claude を再起動 うまくいくと...python で定義したメニューが出てくる calculator: 数学計算 text_analyzer: テキスト分析 reverse_text: テキストの逆順変換
初回実行時だけ表示されます。
どんな感じか?見せます。 デモ
calculator を使って 1 + 15 - 31 の合計値の絶対値を出して text_analyzer を使って「本日は晴れなり」を分析して
reverse_text をつかってさっきの文章を逆順にして
こいつ動くぞ!
少しコードの解説をします。 vim simple_mcp_server.py
ここまでだと... 普通に「claude使えばええやん!」となるので...
NEXT!
端末を操作したい!
mcp>=0.1.0 requests>=2.31.0 pathlib script組む advanced_mcp_server.py requirements.txt pip3.12 install -r requirements.txt
{ "mcpServers": { "simple-python-server": { "command": "/path/to/your_project/mcp-env/bin/python3.12", "args": ["/path/to/your_project/simple_mcp_server.py"] },
"advanced-python-server": { "command": "/path/to/your_project/mcp-env/bin/python3.12", "args": ["/path/to/your_project/advanced_mcp_server.py"] } } } 再度設定ファイルを編集 claude_desktop_config.json
TODO 作って file_operations を使って todo.txt というファイルに今日のタスクを書き込んでください
順々にやってみよう note_manager を使って '会議メモ' というタイトルでノートを作成してください
sqlite3 mcp_workspace/notes.db .tables select * from notes;
system_info を使って現在のディスク使用量を確認してください
web_request を使って httpbin.org/ip 自分のグローバルIPを取得してください
如何でした? 自分の端末から命令可能でしたよね?
But...
最悪のパターンは 自分の端末の中にアクセス可能 自分の端末からのインターネットアクセスも... ノラの信用ならない MCP と繋いだ場合は...
セキュリティ意識重要
余談: 実は...
今回ほとんどAIに書いてもらった
が...
悪戦苦闘の足跡 venv 使って構築したのに実行path が間違えて起動しない
アクセス権がないディレクトリを平気で指定されていたり...
単純にpython SQlite のコードを間違えたり... conn じゃなくて execute の返却値を使ってよ(汗)
人が調整する必要あります(笑)
まとめ 自分で書いた処理をAIに実行してもらう事が可能 AI がある程度要約してくれるので楽ちん 命令の際に作法だったものを気にしないで良い コードを書かせる際は、AIのミスリードはあるので、それも考慮しながら...
悪用 => 今まで以上に大変(汗) AI を駆使したウィルスが流行りそうな嫌な予感 他社サービスとの連携はまた今度...
ご清聴ありがとうございました!