AIUnlimited
🌳

AI基礎

🌱
AI Seeds(種)

ゼロから始める

🌿
AI Sprouts(芽)

基礎を築く

🌳
AI Branches(枝)

実践に活かす

🏕️
AI Canopy(樹冠)

深く学ぶ

🌲
AI Forest(森)

AIをマスターする

🔨

AIマスタリー

✏️
AI Sketch(スケッチ)

ゼロから始める

🪨
AI Chisel(鑿)

基礎を築く

⚒️
AI Craft(制作)

実践に活かす

💎
AI Polish(磨き上げ)

深く学ぶ

🏆
AI Masterpiece(傑作)

AIをマスターする

📘

AI実践

📖
オープンソースモデルを理解する

オープンソースモデルの基礎とリソース

🎯
問題からモデルタスクへ

ビジネス問題をモデルタスクに変換

⚡
最初のモデルを実行する

30分で最初の結果を見る

🔧
ファインチューニングと評価

モデルをファインチューニングし、パフォーマンスを評価

🚀
アプリケーションシステム

実際のAIアプリケーションを構築

🎨
生成AI

オープンソースAIGCモデルを探索

🤖
エージェント

エージェントフレームワークとMCPツールを学ぶ

📐
補足基礎

LLMの基礎と評価

🎓

Claude アカデミー

🤖
Claude 101

Learn AI basics with Claude

💻
Claude Code 101

Code with Claude as your pair programmer

🤝
Introduction to Claude Cowork

Collaborate with Claude on complex projects

⚙️
Claude Platform 101

Build apps with the Claude API

ラボ

7つの実験がロード済み
🧬ニューラルネットワークサンドボックス🤖AI か人間か?🥋プロンプトエンジニアリング道場🏁アルゴリズムレース🧠AIトリビアチャレンジ🏗️システム設計キャンバス
🎯模擬面接ラボへ入る→
🚀

キャリア発展

🚀
面接ローンチパッド

旅を始めよう

🌟
行動面接マスター

ソフトスキルをマスター

💻
技術面接

コーディング面接を突破

🤖
AI・ML面接

ML面接をマスター

🏆
オファーとその先

最高のオファーを獲得

始める
AIUnlimited

MITライセンス

沪ICP备18025655号-11

学ぶ

  • AI基礎
  • AI実践
  • Claude アカデミー
  • ラボ
  • キャリア発展

コミュニティ

  • 概要
  • よくある質問

サポート

  • footer.terms
  • footer.privacy
  • footer.contact
AI & エンジニアリング アカデミックス›🤖 エージェント›レッスン›MCP: Connecting Models to Tools
🔌
エージェント • 初級⏱️ 25 分で読める

MCP: Connecting Models to Tools

get_weatherは、MS-Agentがサーバー接続名とツール名を組み合わせた後に表示される識別子です。areaとtarget_dateは事前にハードコードされた呼び出しパラメータではなく、Qwen3-4Bが「杭州明日」に基づいて生成した構造化パラメータです。関連する登録結果は以下の図に示されています。

図解

ツール戻り値と最終回答の処理

天気MCPがパラメータを受信すると、「杭州」を「杭州、浙江、中国」として解析し、現地のタイムゾーンに基づいてtomorrowを2026年9月7日に変換し、以下を返します:

{
  "requested_area": "杭州",
  "resolved_area": "杭州,浙江,中国",
  "date": "2026-09-07",
  "timezone": "Asia/Shanghai",
  "weather_code": 51,
  "weather": "小毛毛雨",
  "temperature_max_c": 29.0,
  "temperature_min_c": 21.6,
  "precipitation_probability_max_percent": 31,
  "wind_speed_max_kmh": 13.0,
  "data_source": "Open-Meteo"
}

Qwen3-4Bはこの結果に基づいて自然言語の回答を生成し、実際に一致した地域、日付、気象状況、最高気温と最低気温、降水確率、最大風速を列挙します。これで「問題を理解する→ツールを選択する→パラメータを生成する→ツールを実行する→結果を処理する」の呼び出しチェーンが完了します。

図解

MCPプラザのfetchサービスの呼び出し

ホスティングと設定の後、まずサービスに直接接続し、ツールリストを確認します。以下のテスト例ではhttps://example.comを使用します。

async def direct_fetch_check():
    async with streamable_http_client(MCP_SERVER_URL) as streams:
        read_stream, write_stream, _ = streams
        async with ClientSession(read_stream, write_stream) as session:
            await session.initialize()
            tools = await session.list_tools()
            print("サーバーから返されたツール:", [tool.name for tool in tools.tools])
            result = await session.call_tool(
                "fetch",
                arguments={
                    "url": "https://example.com",
                    "max_length": 1000,
                    "start_index": 0,
                    "raw": False,
                },
            )
            if result.isError:
                raise RuntimeError(str(result.content)
            for block in result.content:
                if getattr(block, "type", None) == "text":
                    print(block.text)

await direct_fetch_check()

実際の実行では、サーバーはfetchツールを公開し、対象Webページの本文スニペットとリンクを返します。これにより、魔搭ホスティングサービス、Streamable HTTP接続、Webスクレイピングツール自体がすべて動作することが確認されます。

図解
レッスン 2 / 70%完了
←What is an Agent?

ディスカッション

ログイン ディスカッションに参加

直接呼び出しが成功した後、事前に設定したQwen3-4Bを再利用し、モデルにツールを選択させます。

MCP権限管理

MCPの権限管理は「このサーバーに接続できるかどうか」というレベルにとどまるべきではなく、現在のユーザーがどのリソースにアクセスできるか、モデルがどのツールを呼び出せるか、各呼び出しが外部システムにどのような影響を与えるかという3つの問題を明確にすることがより重要です。したがって、アクセス制御はHost、MCPサーバーからバックエンドビジネスシステムまで階層的に実装する必要があり、常に最小権限の原則に従うべきです。

MCPセキュリティリスク

MCPはモデルにコンテンツ生成だけでなく、ファイル読み取り、データベースクエリ、ネットワークサービス呼び出し、さらには外部システムの修正も可能にします。したがって、通常のチャットモデルよりも複雑なセキュリティリスクをもたらします。最も典型的なのはPromptインジェクションです:外部コンテンツに悪意のある指示が隠されており、モデルがファイル、ネットワーク、メッセージングツールを呼び続けさせ、危険なシステム間操作チェーンを形成します。

MCPに適したシナリオ

MCPは、外部ツールやデータソースが多数あり、これらの能力を異なるモデルやAgentで再利用したい場合、現在のタスクに基づいてモデルが動的にどのツールを呼び出すかを決定したい場合により適しています。

この章のすべての実験データとコードは以下で確認できます:

https://modelscope.cn/gallery/liucong/fae5791c-a024-412f-97c3-5fb93fee708e