Gemini Terminal Agent について
READMEでは、mcp-agentというMCP対応の軽量で構成可能なPythonフレームワークを紹介しています。MCPサーバー接続を管理し、複数エージェントのオーケストレーションを含むワークフローパターンを組み合わせられます。
主な機能
- 01MCPサーバー接続のライフサイクル管理
- 02ワークフローパターンによるエージェント構成
- 03並列・ルーター・評価最適化パターン
- 04モデル非依存のSwarmによる複数エージェント連携
- 05アプリケーションをMCPサーバーとして公開
活用シーン
- 01複数のMCPサーバーを使うエージェントの構築
- 02協調タスクでサブエージェントを連携
- 03エージェントアプリをMCPクライアントに公開
MCP 対応
MCPサーバーへの接続と管理を行い、そのツールをエージェントから利用できるようにします。また、エージェントアプリをMCPサーバーとしてラップし、クライアントから呼び出せます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
シンプルで組み合わせ可能なパターンを使い、Model Context Protocol で効果的なエージェントを構築しましょう。
サンプル | 効果的なエージェントの構築 | MCP
概要
mcp-agent は、Model Context Protocol を使ってエージェントを構築するための、シンプルで組み合わせ可能なフレームワークです。
着想:Anthropic は、AI アプリケーション開発者向けに、基盤となる 2 つのアップデートを発表しました。
- Model Context Protocol — MCP サーバーを介して、あらゆるソフトウェアを AI アシスタントから利用できるようにする標準化されたインターフェースです。
- 効果的なエージェントの構築 — 本番環境に対応した AI エージェントを構築するための、シンプルで組み合わせ可能なパターンについての画期的な記事です。
mcp-agent は、この 2 つの基盤を AI アプリケーションフレームワークに取り入れています。
- MCP サーバー接続のライフサイクル管理という面倒な作業を引き受けるため、ご自身で対応する必要はありません。
- 「効果的なエージェントの構築」で説明されているすべてのパターンを実装し、それらを_組み合わせ可能な_形にすることで、パターンを連鎖させて利用できます。
- おまけ:マルチエージェントオーケストレーションのための 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 で実装した例を紹介します。
コードへのリンク: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

複数のサブエージェントにタスクを振り分け、結果を集約します。各サブタスクは 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"))

入力に基づいて、最も関連性の高い top_k 個のカテゴリに振り分けます。カテゴリには、エージェント、MCP サーバー、通常の関数を指定できます。
mcp-agent には、次のような複数のルーター実装が用意されています。
EmbeddingRouter:分類に埋め込みモデルを使用しますLLMRouter:分類に LLM を使用します
メモ
例
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 ベースの両方のインテント分類器が用意されています。
評価者・最適化器

ある 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)
オーケストレーター・ワーカー

上位の 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 では特定のモデルに依存しないリファレンス実装を提供しています。
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 に敬意を表したイースターエッグが残っています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。