mcp-agent : 概要

mcp-agent は、単純な構成可能なパターンを使用して Model Context Protocol による効果的なエージェントを構築できます。

mcp-agent : 概要

作成 : クラスキャット・セールスインフォメーション
作成日時 : 05/13/2025

* 本記事は github: lastmile-ai/mcp-agent の以下のページを独自に翻訳した上でまとめ直し、補足説明を加えています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス ⭐️ リニューアルしました 😉

クラスキャット は人工知能に関する各種サービスを提供しています。お気軽にご相談ください :

  • 人工知能導入個別相談会(無償)実施中! [詳細]

  • 人工知能研究開発支援 [詳細]
    1. 自社特有情報を含むチャットボット構築支援
    2. 画像認識 (医療系含む) / 画像生成

  • PoC(概念実証)を失敗させないための支援 [詳細]

お問合せ : 下記までお願いします。

  • クラスキャット セールス・インフォメーション
  • sales-info@classcat.com
  • ClassCatJP

 

 

mcp-agent : 概要

単純な、構成可能なパターンを使用して Model Context Protocol による効果的なエージェントを構築します。

 

概要

mcp-agent は、Model Context Protocol を使用してエージェントを構築するための単純で、構成可能なフレームワークです。

インスピレーション: Anthropic は AI アプリケーション開発者のための 2 つの基礎的なアップデートを発表しました :

  1. Model Context Protocol – MCP サーバを通して任意のソフトウェアが AI アシスタントにアクセス可能にする標準化されたインターフェイス。

  2. Building Effective Agents (効果的なエージェントの構築) – production-ready な AI エージェントを構築するための単純で、構成可能なパターンについての先駆的な論説 (seminal writeup)。

 
mcp-agent はこれら 2 つの基本的なピースを AI アプリケーション・フレームワークに組み込みました :

  1. MCP サーバ接続のライフサイクル管理という厄介な作業を処理しますので、開発者がそれを行なう必要はありません。

  2. “Building Effective Agents” で説明されているすべてのパターンを実装し、構成可能な方法でそれを行なっており、これらのパターンを連鎖することが可能です。

  3. Bonus : マルチエージェント・オーケストレーション用の OpenAI の Swarm のパターンを、モデル非依存な方法で実装しています。

全体として、これは堅牢なエージェント・アプリケーションを構築するための最も単純で簡単な方法です。MCP と全く同様に、このプロジェクトは開発の初期段階にあります。We welcome all kinds of contributions, feedback and your help in growing this to become a new standard.

 

Get Started

We recommend using uv to manage your Python projects:

uv add "mcp-agent"

Alternatively:

pip install mcp-agent

 

クイックスタート

Tip

examples ディレクトリはすぐに始められる幾つかのサンプルアプリケーションを含みます。サンプルを実行するには、このレポジトリを複製してから :

cd examples/basic/mcp_basic_agent # Or any other example
cp mcp_agent.secrets.yaml.example mcp_agent.secrets.yaml # Update API keys
uv run main.py

 
データ取得 (fetch) サーバとファイルシステム・サーバを使用して、ファイルを検索し、ブログを読み取り、ツイートを書き込む、基本的な “finder” エージェントがここにあります。サンプルリンク :

finder_agent.py

import asyncio
import os

from mcp_agent.app import MCPApp
from mcp_agent.agents.agent import Agent
from mcp_agent.workflows.llm.augmented_llm_openai import OpenAIAugmentedLLM

app = MCPApp(name="hello_world_agent")

async def example_usage():
    async with app.run() as mcp_agent_app:
        logger = mcp_agent_app.logger
        # This agent can read the filesystem or fetch URLs
        finder_agent = Agent(
            name="finder",
            instruction="""You can read local files or fetch URLs.
                Return the requested information when asked.""",
            server_names=["fetch", "filesystem"], # MCP servers this Agent can use
        )

        async with finder_agent:
            # Automatically initializes the MCP servers and adds their tools for LLM use
            tools = await finder_agent.list_tools()
            logger.info(f"Tools available:", data=tools)

            # Attach an OpenAI LLM to the agent (defaults to GPT-4o)
            llm = await finder_agent.attach_llm(OpenAIAugmentedLLM)

            # This will perform a file lookup and read using the filesystem server
            result = await llm.generate_str(
                message="Show me what's in README.md verbatim"
            )
            logger.info(f"README.md contents: {result}")

            # Uses the fetch server to fetch the content from URL
            result = await llm.generate_str(
                message="Print the first two paragraphs from https://www.anthropic.com/research/building-effective-agents"
            )
            logger.info(f"Blog intro: {result}")

            # Multi-turn interactions by default
            result = await llm.generate_str("Summarize that in a 128-char tweet")
            logger.info(f"Tweet: {result}")

if __name__ == "__main__":
    asyncio.run(example_usage())

mcp_agent.config.yaml

execution_engine: asyncio
logger:
  transports: [console] # You can use [file, console] for both
  level: debug
  path: "logs/mcp-agent.jsonl" # Used for file transport
  # For dynamic log filenames:
  # path_settings:
  #   path_pattern: "logs/mcp-agent-{unique_id}.jsonl"
  #   unique_id: "timestamp"  # Or "session_id"
  #   timestamp_format: "%Y%m%d_%H%M%S"

mcp:
  servers:
    fetch:
      command: "uvx"
      args: ["mcp-server-fetch"]
    filesystem:
      command: "npx"
      args:
        [
          "-y",
          "@modelcontextprotocol/server-filesystem",
          "",
        ]

openai:
  # Secrets (API keys, etc.) are stored in an mcp_agent.secrets.yaml file which can be gitignored
  default_model: gpt-4o

Agent 出力

 

以上