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
SlackからMCPを経由して社内業務アプリを動かせるようにした話
Search
ise208
November 16, 2025
Technology
96
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
SlackからMCPを経由して社内業務アプリを動かせるようにした話
JJUG CCC 2025 Fall LT
ise208
November 16, 2025
Other Decks in Technology
See All in Technology
データ活用研修 データマネジメント【MIXI 26新卒技術研修】
mixi_engineers
PRO
4
460
AI研修(Day1)【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
1.3k
歴史から理解するクラウドインフラのしくみ
kizawa2020
0
170
AIとハーネスで育てるトランスコンパイラ / 20260722 Yasushi Katayama
shift_evolve
PRO
3
970
Claude CodeとAmazon Bedrock AgentCoreでつくる、自分だけのAIアシスタント
ymae
0
110
現場との対話から始める “作る前に問い直す”業務改善
mochico50
2
310
AI時代の開発生産性を捉え直す — 経営と現場をつなぐ「開発組織のオブザーバビリティ」— / AI Dev Ex Conference 2026
tkyowa
1
1.7k
設計レビューとAIハーネスで向き合う AIが生み出した新しいボトルネックの対処法 / Design Reviews and AI Harnesses Against New Bottlenecks Created by AI
nstock
6
510
StepFunctionsとGraphRAGを活用した暗黙知活用のためのRAG基盤
yakumo
0
180
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
340
WEBフロントエンド研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
330
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
320
Featured
See All Featured
Building the Perfect Custom Keyboard
takai
2
820
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
510
Facilitating Awesome Meetings
lara
57
7k
Producing Creativity
orderedlist
PRO
348
40k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
410
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
200
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
320
Transcript
SlackからMCPを経由して 社内業務アプリを動かせるようにした話 JJUG CCC 2025 Fall LT
じこしょうかい ・名前: いわせ ・年齢: 28 ・所属: 決済代行会社のアプリ開発者 ・JJUG: 参加2回目 LT
初 ・X: @ise_208
結論 Spring AIでMCPサーバーが簡単に作れた アプリから AIエージェント (Claude Code)を呼べた
なぜ ・SlackでClaude Codeの操作をしたい ・MCPで社内アプリの操作をしたい ・BotもMCPもJavaで作りたい
ぜんたい ・SlackからBotを操作するBotアプリを呼び出す ・BotアプリからClaude Codeを呼び出しMCPを確認する ・MCP(stdio形式)から社内アプリ叩く MCP Slack Botアプリ Slack 社内アプリ
Claude code
やったこと(Bot側) ・SlackのリクエストからJavaでshellを叩く return new ProcessBuilder( "\\path\\to\\bash.exe", "-c", claudePath +" "+
prompt); ・shでClaude Codeを呼ぶ→ 結果を一時ファイルに書き込む→ Javaに返す $CLAUDE_PATH -p --dangerously-skip-permissions "$PROMPT" --mcp-config "$MCP_CONFIG" < /dev/null > "$TEMP_STDOUT" 2> "$TEMP_STDERR" ・ -p: 非対話モード ・ --dangerously-skip-permissions: 権限チェックをスキップ(対話的な確認を防ぐ) ・ mcp-config: mcp-config.jsonのpathを明示的に指定する "mcpServers": { "java-mcp": { "type": "stdio", "command": "java", "args": [ "-jar", "C:\\path\\to\\java-mcp-app-1.0.0-SNAPSHOT.jar" ]}}
やったこと(MCP側) ・Spring AIのmcp-serverライブラリ使用 ・@ToolでToolの定義 ・設定ファイルにプロトコル記載 <dependency> <groupId>org.springframework.ai </groupId> <artifactId> spring-ai-starter-mcp-server
</artifactId> </dependency> @Tool(description = "ユーザー情報のサマリーを取得 | 引数: UserNumber | 例userSummary('12345678')" ) public String userSummary (String userNumber) { return companyApiService .callPost("/api/user/search" , Map.of("userNumber" , userNumber)); } } spring: ai: mcp: server: name: java-mcp protocol: STDIO # 標準入出力モード
さいごに ・Claude CodeのためAPI的な使い方が難しい Anthropic API が使えれば... ・権限/セキュリティが怖い ・Slack便利 ・MCP楽しい
ありがとうございました