mcpField
G
Gemini Terminal Agent

Gemini Terminal Agent

ローカル
github.com/NghiauetAI・エージェント074 週間前に更新

Gemini Terminal Agent について

READMEでは、mcp-agentというMCP対応の軽量で構成可能なPythonフレームワークを紹介しています。MCPサーバー接続を管理し、複数エージェントのオーケストレーションを含むワークフローパターンを組み合わせられます。

主な機能

  1. 01MCPサーバー接続のライフサイクル管理
  2. 02ワークフローパターンによるエージェント構成
  3. 03並列・ルーター・評価最適化パターン
  4. 04モデル非依存のSwarmによる複数エージェント連携
  5. 05アプリケーションをMCPサーバーとして公開

活用シーン

  1. 01複数のMCPサーバーを使うエージェントの構築
  2. 02協調タスクでサブエージェントを連携
  3. 03エージェントアプリをMCPクライアントに公開

MCP 対応

MCPサーバーへの接続と管理を行い、そのツールをエージェントから利用できるようにします。また、エージェントアプリをMCPサーバーとしてラップし、クライアントから呼び出せます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

ロゴ

シンプルで組み合わせ可能なパターンを使い、Model Context Protocol で効果的なエージェントを構築しましょう。

サンプル | 効果的なエージェントの構築 | MCP

README の画像 README の画像 discord Pepy Total Downloads README の画像

概要

mcp-agent は、Model Context Protocol を使ってエージェントを構築するための、シンプルで組み合わせ可能なフレームワークです。

着想:Anthropic は、AI アプリケーション開発者向けに、基盤となる 2 つのアップデートを発表しました。

  1. Model Context Protocol — MCP サーバーを介して、あらゆるソフトウェアを AI アシスタントから利用できるようにする標準化されたインターフェースです。
  2. 効果的なエージェントの構築 — 本番環境に対応した AI エージェントを構築するための、シンプルで組み合わせ可能なパターンについての画期的な記事です。

mcp-agent は、この 2 つの基盤を AI アプリケーションフレームワークに取り入れています。

  1. MCP サーバー接続のライフサイクル管理という面倒な作業を引き受けるため、ご自身で対応する必要はありません。
  2. 「効果的なエージェントの構築」で説明されているすべてのパターンを実装し、それらを_組み合わせ可能な_形にすることで、パターンを連鎖させて利用できます。
  3. おまけ:マルチエージェントオーケストレーションのための OpenAI の Swarm パターンを、モデルに依存しない形で実装しています。

総じて、堅牢なエージェントアプリケーションを構築するための、最もシンプルで簡単な方法です。MCP と同様、このプロジェクトはまだ開発の初期段階にあります。 このプロジェクトを新たな標準へと成長させるため、あらゆる形での貢献、フィードバック、ご協力を歓迎します。

はじめに

Python プロジェクトの管理には、uv の使用をおすすめします。

uv add "mcp-agent"

または、次の方法もあります。

pip install mcp-agent
クイックスタート

ヒント

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 サーバーと filesystem サーバーを使ってファイルを探し、ブログを読み、ツイートを書く基本的な「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",
          "<add_your_directories>",
        ]

openai:
  # Secrets (API keys, etc.) are stored in an mcp_agent.secrets.yaml file which can be gitignored
  default_model: gpt-4o
エージェントの出力 画像
## 目次

mcp-agentを使う理由

AI フレームワークはすでに数多く存在しています。しかし、mcp-agentは共通プロトコルであるMCP向けに専用設計された唯一のものです。また、最も軽量で、フレームワークというよりエージェントパターンのライブラリに近い存在です。

より多くのサービスがMCPに対応するようになるにつれ、mcp-agentを使って、そうしたサービスをすぐに活用できる、堅牢で制御しやすいAI エージェントを構築できます。

例

mcp-agentのコアコンセプトに入る前に、これを使って構築できるものをご紹介します。

簡単に言えば、mcp-agentを使えば、マルチエージェントの協調ワークフロー、ヒューマン・イン・ザ・ループのワークフロー、RAG パイプラインなど、あらゆる種類のAIアプリケーションを構築できます。

Claude Desktop

mcp-agentアプリをClaude DesktopのようなMCPクライアントに統合できます。

mcp-agentサーバー

このアプリはmcp-agentアプリケーションをMCP サーバー内にラップし、そのサーバーをClaude Desktopに公開します。 アプリはエージェントとワークフローを公開し、Claude Desktopはユーザーのリクエストに応えるためにそれらを呼び出せます。

https://github.com/user-attachments/assets/7807cffd-dba7-4f0c-9c70-9482fd7e0699

このデモでは、各エージェントが入力された詩のさまざまな側面を評価し、 その後、アグリゲーターがそれぞれの結果を要約して最終回答を作成する、マルチエージェント評価タスクを紹介します。

詳細:テキストでのユーザーリクエストを受けて、アプリケーションは次の処理を行います。

  • タスクを実行するエージェントを動的に定義します
  • 適切なワークフローを使ってエージェントをオーケストレーションします(この場合は並列ワークフローです)

コードへのリンク:examples/basic/mcp_agent_server

メモ

この例を開発し、提供してくださったJerron Lim (@StreetLamb)に心より感謝します!

Streamlit

Streamlitを使ってmcp-agentアプリをデプロイできます。

Gmailエージェント

このアプリでは、テキストのプロンプトを使ってGmailの読み取りや書き込みを実行できます。たとえば、メールの閲覧、削除、送信、既読・未読の切り替えなどが可能です。 Gmail用のMCP サーバーを使用します。

https://github.com/user-attachments/assets/54899cac-de24-4102-bd7e-4b2022c956e3

コードへのリンク:gmail-mcp-server

メモ

この例を開発し、提供してくださったJason Summer (@jasonsum)に心より感謝します!

シンプルなRAGチャットボット

このアプリはQdrantベクトルデータベース(MCP サーバー経由)を使い、テキストコーパスについて質疑応答を行います。

https://github.com/user-attachments/assets/f4dcd227-cae9-4a59-aa9e-0eceeb4acaf4

コードへのリンク:examples/usecases/streamlit_mcp_rag_agent

メモ

この例を開発し、提供してくださったJerron Lim (@StreetLamb)に心より感謝します!

Marimo

Marimo は、Jupyter と Streamlit に代わるリアクティブな Python ノートブックです。 クイックスタートの「ファイル検索」エージェントを Marimo で実装した例を紹介します。

README の画像

コードへのリンク:examples/usecases/marimo_mcp_basic_agent

メモ

この例を開発し、提供してくださった Akshay Agrawal (@akshayka) に心より感謝します!

Python

mcp-agent アプリは、Python スクリプトまたは Jupyter ノートブックとして作成できます。

Swarm

この例では、Swarm ワークフローパターンを使用して、航空会社のさまざまなカスタマーサービスのリクエストを処理するマルチエージェント構成を紹介します。エージェントは、リクエストの振り分け、フライトの変更やキャンセル、手荷物紛失への対応を行います。

https://github.com/user-attachments/assets/b314d75d-7945-4de6-965b-7f21eb14a8bd

コードへのリンク:examples/workflows/workflow_swarm

コアコンポーネント

以下は、mcp-agent フレームワークの構成要素です。

  • MCPApp:グローバル状態とアプリの設定
  • MCP サーバー管理:MCP サーバーに簡単に接続できる gen_client と MCPConnectionManager
  • Agent:Agent は、複数の MCP サーバーにアクセスし、それらをツール呼び出しとして LLM に公開するエンティティです。名前と目的(指示)を持ちます。
  • AugmentedLLM:複数の MCP サーバーから提供されるツールで拡張された LLM です。以下で説明する各ワークフローパターン自体も AugmentedLLM であり、組み合わせたり連鎖させたりできます。

フレームワークのすべては、これらのコア機能を基盤としています。

ワークフロー

mcp-agent は、Anthropic のBuilding Effective Agentsにあるすべてのパターンと、OpenAI のSwarmパターンの実装を提供します。 各パターンはモデルに依存せず、AugmentedLLM として公開されるため、自由に組み合わせることができます。

AugmentedLLM

AugmentedLLM は、エージェントを通じて MCP サーバーや関数にアクセスできる LLM です。

LLM プロバイダーは、以下の 3 つの関数を公開する AugmentedLLM インターフェースを実装します。

  • generate:プロンプトを受け取り、必要に応じて複数回の反復やツール呼び出しを行って、メッセージを生成します。
  • generate_str:generate を呼び出し、結果を文字列として返します。
  • generate_structured:Instructor を使用して、生成結果を Pydantic モデルとして返します。

また、AugmentedLLM はメモリを備えており、長期または短期の履歴を保持します。

例
from mcp_agent.agents.agent import Agent
from mcp_agent.workflows.llm.augmented_llm_anthropic import AnthropicAugmentedLLM

finder_agent = Agent(
    name="finder",
    instruction="You are an agent with filesystem + fetch access. Return the requested file or URL contents.",
    server_names=["fetch", "filesystem"],
)

async with finder_agent:
   llm = await finder_agent.attach_llm(AnthropicAugmentedLLM)

   result = await llm.generate_str(
      message="Print the first 2 paragraphs of https://www.anthropic.com/research/building-effective-agents",
      # Can override model, tokens and other defaults
   )
   logger.info(f"Result: {result}")

   # Multi-turn conversation
   result = await llm.generate_str(
      message="Summarize those paragraphs in a 128 character tweet",
   )
   logger.info(f"Result: {result}")
Parallel

Parallel workflow (画像提供:Anthropic)

複数のサブエージェントにタスクを振り分け、結果を集約します。各サブタスクは AugmentedLLM であり、Parallel ワークフロー全体も AugmentedLLM です。そのため、各サブタスクに、必要に応じてより複雑なワークフロー自体を設定できます。

メモ

完全な例へのリンク

例
proofreader = Agent(name="proofreader", instruction="Review grammar...")
fact_checker = Agent(name="fact_checker", instruction="Check factual consistency...")
style_enforcer = Agent(name="style_enforcer", instruction="Enforce style guidelines...")

grader = Agent(name="grader", instruction="Combine feedback into a structured report.")

parallel = ParallelLLM(
    fan_in_agent=grader,
    fan_out_agents=[proofreader, fact_checker, style_enforcer],
    llm_factory=OpenAIAugmentedLLM,
)

result = await parallel.generate_str("Student short story submission: ...", RequestParams(model="gpt4-o"))
### [ルーター](src/mcp_agent/workflows/router/)

ルーターワークフロー(画像提供:Anthropic)

入力に基づいて、最も関連性の高い top_k 個のカテゴリに振り分けます。カテゴリには、エージェント、MCP サーバー、通常の関数を指定できます。

mcp-agent には、次のような複数のルーター実装が用意されています。

メモ

完全な例へのリンク

例
def print_hello_world:
     print("Hello, world!")

finder_agent = Agent(name="finder", server_names=["fetch", "filesystem"])
writer_agent = Agent(name="writer", server_names=["filesystem"])

llm = OpenAIAugmentedLLM()
router = LLMRouter(
    llm=llm,
    agents=[finder_agent, writer_agent],
    functions=[print_hello_world],
)

results = await router.route( # Also available: route_to_agent, route_to_server
    request="Find and print the contents of README.md verbatim",
    top_k=1
)
chosen_agent = results[0].result
async with chosen_agent:
    ...
インテント分類器

ルーターとよく似たインテント分類器パターンは、入力に最もよく合致する top_k 個のインテントを特定します。 ルーターと同様に、mcp-agent には埋め込みベースとLLM ベースの両方のインテント分類器が用意されています。

評価者・最適化器

評価者・最適化器ワークフロー(画像提供:Anthropic)

ある LLM(「最適化器」)が応答を改善し、別の LLM(「評価者」)が、応答が品質基準を満たすまで批評します。

メモ

完全な例へのリンク

例
optimizer = Agent(name="cover_letter_writer", server_names=["fetch"], instruction="Generate a cover letter ...")
evaluator = Agent(name="critiquer", instruction="Evaluate clarity, specificity, relevance...")

llm = EvaluatorOptimizerLLM(
    optimizer=optimizer,
    evaluator=evaluator,
    llm_factory=OpenAIAugmentedLLM,
    min_rating=QualityRating.EXCELLENT, # Keep iterating until the minimum quality bar is reached
)

result = await eo_llm.generate_str("Write a job cover letter for an AI framework developer role at LastMile AI.")
print("Final refined cover letter:", result)
オーケストレーター・ワーカー

オーケストレーターワークフロー(画像提供:Anthropic)

上位の LLM が計画を生成してサブエージェントに割り当て、結果を統合します。 オーケストレーターワークフローは、並列実行できるステップを自動的に並列化し、依存関係があるステップでは完了を待ちます。

メモ

完全な例へのリンク

例
finder_agent = Agent(name="finder", server_names=["fetch", "filesystem"])
writer_agent = Agent(name="writer", server_names=["filesystem"])
proofreader = Agent(name="proofreader", ...)
fact_checker = Agent(name="fact_checker", ...)
style_enforcer = Agent(name="style_enforcer", instructions="Use APA style guide from ...", server_names=["fetch"])

orchestrator = Orchestrator(
    llm_factory=AnthropicAugmentedLLM,
    available_agents=[finder_agent, writer_agent, proofreader, fact_checker, style_enforcer],
)

task = "Load short_story.md, evaluate it, produce a graded_report.md with multiple feedback aspects."
result = await orchestrator.generate_str(task, RequestParams(model="gpt-4o"))
print(result)
スウォーム

OpenAI には Swarm という実験的なマルチエージェントパターンがあり、mcp-agent では特定のモデルに依存しないリファレンス実装を提供しています。

README の画像

mcp-agent の Swarm パターンは MCP サーバーとシームレスに連携し、AugmentedLLM として公開されるため、上記の他のパターンと組み合わせて使用できます。

メモ

完全な例へのリンク

例
triage_agent = SwarmAgent(...)
flight_mod_agent = SwarmAgent(...)
lost_baggage_agent = SwarmAgent(...)

# The triage agent decides whether to route to flight_mod_agent or lost_baggage_agent
swarm = AnthropicSwarm(agent=triage_agent, context_variables={...})

test_input = "My bag was not delivered!"
result = await swarm.generate_str(test_input)
print("Result:", result)

応用編

組み合わせ可能性

組み合わせの例として、評価者・最適化器ワークフローを、オーケストレーターワークフロー内のプランナー LLM として使用する方法があります。堅牢な動作を実現するには、実行する高品質な計画を生成することが重要であり、評価者・最適化器を使うと計画の品質を確保しやすくなります。

各ワークフローが AugmentedLLM として実装されているため、mcp-agent ではシームレスに組み合わせられます。

例
optimizer = Agent(name="plan_optimizer", server_names=[...], instruction="Generate a plan given an objective ...")
evaluator = Agent(name="plan_evaluator", instruction="Evaluate logic, ordering and precision of plan......")

planner_llm = EvaluatorOptimizerLLM(
    optimizer=optimizer,
    evaluator=evaluator,
    llm_factory=OpenAIAugmentedLLM,
    min_rating=QualityRating.EXCELLENT,
)

orchestrator = Orchestrator(
    llm_factory=AnthropicAugmentedLLM,
    available_agents=[finder_agent, writer_agent, proofreader, fact_checker, style_enforcer],
    planner=planner_llm # It's that simple
)

...
### シグナリングとユーザー入力

シグナリング:フレームワークはタスクを一時停止/再開できます。エージェントまたは LLM がユーザー入力を必要としていることを「シグナル」で示すと、ワークフローは待機します。開発者はワークフローの途中でシグナルを送り、ワークフローを続ける前に承認やレビューを求めることもできます。

ユーザー入力:Agent に human_input_callback がある場合、LLM は __human_input__ ツールを呼び出して、ワークフローの途中でユーザー入力を要求できます。

例

Swarm の例で実際の動作を確認できます。

from mcp_agent.human_input.handler import console_input_callback

lost_baggage = SwarmAgent(
    name="Lost baggage traversal",
    instruction=lambda context_variables: f"""
        {
        FLY_AIR_AGENT_PROMPT.format(
            customer_context=context_variables.get("customer_context", "None"),
            flight_context=context_variables.get("flight_context", "None"),
        )
    }\n Lost baggage policy: policies/lost_baggage_policy.md""",
    functions=[
        escalate_to_agent,
        initiate_baggage_search,
        transfer_to_triage,
        case_resolved,
    ],
    server_names=["fetch", "filesystem"],
    human_input_callback=console_input_callback, # Request input from the console
)
アプリ設定

mcp_agent.config.yaml と、Git に追跡されない mcp_agent.secrets.yaml を作成して、MCP アプリの設定を定義します。ログ記録、実行、LLM プロバイダー API、MCP サーバーの設定を制御できます。

MCP サーバーの管理

mcp-agent を使うと、MCP サーバーに簡単に接続できます。mcp_agent.config.yaml を作成し、mcp セクションでサーバー設定を定義します。

mcp:
  servers:
    fetch:
      command: "uvx"
      args: ["mcp-server-fetch"]
      description: "Fetch content at URLs from the world wide web"
gen_client

非同期コンテキストマネージャー内で MCP サーバーのライフサイクルを管理します。

from mcp_agent.mcp.gen_client import gen_client

async with gen_client("fetch") as fetch_client:
    # Fetch server is initialized and ready to use
    result = await fetch_client.list_tools()

# Fetch server is automatically disconnected/shutdown

gen_client 関数を使うと、MCP サーバーへの接続を簡単に確立できます。

永続的なサーバー接続

多くの場合、MCP サーバーを継続的に利用できるよう、オンライン状態に保ちたいことがあります(たとえば、複数ステップのツール利用ワークフローなど)。 永続的な接続には、次を使用します。

from mcp_agent.mcp.gen_client import connect, disconnect

fetch_client = None
try:
     fetch_client = connect("fetch")
     result = await fetch_client.list_tools()
finally:
     disconnect("fetch")
  • MCPConnectionManager サーバー接続をさらに細かく制御するには、MCPConnectionManager を使用できます。
例
from mcp_agent.context import get_current_context
from mcp_agent.mcp.mcp_connection_manager import MCPConnectionManager

context = get_current_context()
connection_manager = MCPConnectionManager(context.server_registry)

async with connection_manager:
fetch_client = await connection_manager.get_server("fetch") # Initializes fetch server
result = fetch_client.list_tool()
fetch_client2 = await connection_manager.get_server("fetch") # Reuses same server connection

# All servers managed by connection manager are automatically disconnected/shut down
MCP サーバーアグリゲーター

MCPAggregator は「サーバー群を束ねるサーバー」として機能します。 複数の MCP サーバーとやり取りするための単一の MCP サーバーインターフェースを提供します。 これにより、複数のサーバーのツールを LLM アプリケーションに公開できます。

例
from mcp_agent.mcp.mcp_aggregator import MCPAggregator

aggregator = await MCPAggregator.create(server_names=["fetch", "filesystem"])

async with aggregator:
   # combined list of tools exposed by 'fetch' and 'filesystem' servers
   tools = await aggregator.list_tools()

   # namespacing -- invokes the 'fetch' server to call the 'fetch' tool
   fetch_result = await aggregator.call_tool(name="fetch-fetch", arguments={"url": "https://www.anthropic.com/research/building-effective-agents"})

   # no namespacing -- first server in the aggregator exposing that tool wins
   read_file_result = await aggregator.call_tool(name="read_file", arguments={})

コントリビューション

あらゆる種類のコントリビューションを歓迎します。始めるには、コントリビューションガイドラインをご覧ください。

特別な謝辞

すでに多くの素晴らしいコミュニティコントリビューターが、このプロジェクトを前進させてくれています。

  • Shaun Smith (@evalstate) -- mcp-agent と MCP エコシステム全般における数々の複雑な改善を主導してくれています。
  • Jerron Lim (@StreetLamb) -- 多くの時間を費やし、優れた例や素晴らしいアイデアをプロジェクトに提供してくれています。
  • Jason Summer (@jasonsum) -- いくつかの問題を特定し、自身の Gmail MCP サーバーを mcp-agent で動作するよう調整してくれました。

ロードマップ

詳細なロードマップを追加する予定です(理想的には、皆さんからのフィードバックをもとに作成します)。現在の優先事項は次のとおりです。

  • 耐久性のある実行 -- ワークフローの一時停止/再開や状態のシリアライズを可能にし、再実行や無期限の一時停止に対応します。この目的のために、Temporal の統合に取り組んでいます。
  • メモリ -- 長期メモリのサポートを追加します。
  • ストリーミング -- 反復的な進捗を扱うストリーミングリスナーをサポートします。
  • MCP の機能拡張 -- ツール呼び出しにとどまらず、次の機能をサポートします。
    • リソース
    • プロンプト
    • 通知

FAQ

mcp-agent を使う主なメリットは何ですか?

mcp-agent は、MCP(Model Context Protocol)サーバーが公開する機能を利用して、AI エージェントを構築するための効率的な方法を提供します。

MCP は比較的低レベルですが、このフレームワークがサーバーへの接続、LLM との連携、外部シグナル(人間からの入力など)の処理、永続的な実行による状態の保持といった仕組みを担います。そのため、開発者は AI アプリケーションの中核となるビジネスロジックに集中できます。

主なメリット:

  • 🤝 相互運用性:任意の数の MCP サーバーが公開するあらゆるツールを、エージェントにシームレスに組み込めます。
  • ⛓️ 合成可能性とカスタマイズ性:明確に定義されたワークフローを実装しながら、組み合わせて複合ワークフローを構築できます。また、モデルプロバイダー、ロギング、オーケストレーターなどを全面的にカスタマイズできます。
  • 💻 プログラムによる制御フロー:開発者はグラフ、ノード、エッジについて考える代わりにコードを書くだけでよく、シンプルに保てます。分岐ロジックには if 文を、繰り返し処理には while ループを使います。
  • 🖐️ 人間からの入力とシグナル:人間からの入力など、外部シグナルを待つためにワークフローを一時停止できます。こうしたシグナルは、エージェントが呼び出せるツール呼び出しとして公開されます。
mcp-agent を使うには MCP クライアントが必要ですか?

いいえ。mcp-agent が MCPClient の作成を処理するため、どこでも利用できます。これにより、Claude Desktop などの MCP ホスト以外でも MCP サーバーを活用できます。

mcp-agent アプリケーションのセットアップ方法は次のとおりです。

MCP-Agent サーバー

mcp-agent アプリケーション自体を MCP サーバーとして公開できます(例を参照)。これにより、MCP クライアントは MCP サーバーの標準ツール API を使って高度な AI ワークフローと連携できます。これは、いわばサーバーのサーバーです。

MCP クライアントまたはホスト

mcp-agent を MCP クライアントに直接組み込み、複数の MCP サーバーにまたがるオーケストレーションを管理できます。

スタンドアロン

mcp-agent アプリケーションをスタンドアロンで使用できます(つまり、MCP クライアントの一部ではありません)。examples にあるものはすべてスタンドアロンアプリケーションです。

ちょっとした豆知識を教えてください

このプロジェクトの名前を silsila(سلسلہ)にしようか迷いました。ウルドゥー語で「出来事の連鎖」という意味です。mcp-agent のほうがより実用的な名前ですが、プロジェクトには silsila に敬意を表したイースターエッグが残っています。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。