どうもこんにちは。
今回は、複数あるMCPサーバーをまとめて1つのMCPサーバーとして動かすことのできるArchestraというオープンソースライブラリを試してみようと思います!
-
この記事では、「まずはクイックスタートに従ってやってみる」のセクションでOpenAIやAhthropicなどのAPIキーを使用します。そのため、API使用量が発生いたしますので、自己責任でお願いいたします
-
MCPサーバーたちを1つにまとめて運用するセクションをご覧になりたい場合には、「複数のMCPサーバーを一つにまとめてみる」のセクションまでスクロールしてください
何ができる?
ざっくりとこんな感じのことができます。
- APIによる従量課金でAIエージェントの構築, チャットができる
- APIの使用料を確認できる
- 画面上からMCPサーバーのインストールができる
- 複数のMCPサーバーを1つにまとめて、1つのMCPサーバーとして使用することができる
Bedrock Engineerと同じような感じですが、Archestraの方がMCPサーバの管理や運用する面では強いです。
AWSのインフラ構成図などを作成するならBedrock Engineerを使用するのが良いと思います。
まずはクイックスタートに従ってやってみる
0. 適当なディレクトリを用意
- 何かしらのLLMプロバイダーのAPIキーを取得しておいてください(OpenAI, Anthropic, Geminiなど、以下に記載されているプロバイダーであれば使用できます)
- 適当な作業ディレクトリを用意しておいてください(私だったら、
playgroundディレクトリを用意しています)
# ホームディレクトリへ移動して`playground`ディレクトリを作成
cd && mkdir playground
1. git clone 実行
ターミナルで以下を実行します。
git clone https://github.com/archestra-ai/archestra.git
2. アプリケーション立ち上げ
ターミナルで以下を実行します。
# DockerイメージをPull
docker pull archestra/platform:latest;
# Pullしたイメージを元にサーバ起動
docker run -p 9000:9000 -p 3000:3000 \
-e ARCHESTRA_QUICKSTART=true \
-v /var/run/docker.sock:/var/run/docker.sock \
-v archestra-postgres-data:/var/lib/postgresql/data \
-v archestra-app-data:/app/data \
archestra/platform;
3. http://localhost:3000/ を開く
http://localhost:3000/をブラウザで開くと、以下のような画面が表示されます。
ここで一旦セットアップは完了です。
4. ログインする
デフォルト設定として、以下の情報でログインができるようです。
email: admin@example.com
Password: password
後ほど、メンバーを追加することができます。(Settings>Members>Invite Member)
5. APIキーを設定する
左メニューのSettingsをクリックし、LLM API Keysをクリックします。
そして、+ Add API Keyをクリックすると、モーダルが開くので、以下のように入力していきます。
| 項目 | 内容 |
|---|---|
| Name | Sample API Key |
| Provider | 取得しておいたAPIキーのLLMプロバイダーを選択 |
| Scope | Personal |
| API Key | 取得しておいたAPIキー |
これでTest & CreateボタンをクリックすればAPIキーの登録は完了です。
6. Playwright MCPをインストール
左メニューのMCP Registryをクリックし、+ Add MCP Server to the Registryボタンをクリックします。
すると、モーダルが開くので、playwrightと入力すると、microsoft__playwright-mcpが検索されるので、インストールします。
MCP Registryの一覧画面にmicrosoft__playwright-mcpが出てきていればOKです!
7. Agentを作成
左メニューのAgentsをクリックし、+ Create Agentボタンをクリックします。
すると、モーダルが開くので、以下のように入力します。
| 項目 | 内容 |
|---|---|
| Name | SampleAgent |
| Tools |
Archestra,microsoft__playwright-mcpのツールをすべて有効にしておく |
| System Prompt | You are an agent that uses Playwright to accurately respond to user requests. |
入力したらCreateをクリックすればOKです!
8. チャットを試す
左メニューのNew Chatをクリックすると、チャット画面が表示されます。
画面左上で、先ほど作成したSampleAgentを選択したら、下のテキストボックスでmicrosoft__playwright-mcpのツールがすべて有効になっていることを確認してください。(なっていない場合にはすべて有効にしてください。)
上記が完了したら、以下のように入力してみてください。
Playwright MCPを使用して、 https://qiita.com/ を開き、@PDC-kurashinak というアカウントのトップページを開いてください。また、AWS Bedrock AgentCoreについての記事はいくつありますか?
以下のような感じでPlaywright MCPを使用してブラウザ内を調査することができていればOKです。
複数のMCPサーバーを一つにまとめてみる
では、本題のMCPサーバーを1つにまとめてAgentから呼び出せるようにしてみましょう。
1. MCP Registryに複数のMCPサーバーを登録する
左メニューのMCP Registryをクリックし、上記の手順と同様の手順でPlaywright MCP以外のMCPサーバーを登録しておいてください。(私はContext7を登録しました。)
2. MCP Gatewayを登録する
左メニューのMCP Gatewayをクリックし、+ Create MCP Gatewayをクリックします。
すると、モーダルが開くので、以下のように入力します。
| 項目 | 内容 |
|---|---|
| Name | SampleGateway |
| Tools |
mcrosoft__playwright-mcp, upstash__context7のツールすべてを有効にしておく |
| Team | Default Team |
これでCreateボタンをクリックします。
すると、Gatewayが登録されて、以下のような画面が表示されます。
Claude Codeなどの、MCPクライアント側に設定するJSONが生成されるため、コピーして控えておきましょう。
以降、発行されたURLを{url}、BearerTokenを{token}と記載します。
3. MCPクライアント側で設定する
筆者はPrivate PCではCodexを使用しているので、Codexベースでお話しします。
(業務ではClaude Codeなんですけどね...笑)
Claude Codeの場合
ClaudeCodeを使用している方々は、以下のコマンドを実行すれば良いと思います。
claude mcp add archestra --url {url}
この後、.mcp.jsonに生成されたJSONをペーストすればOKだと思います。
(手元で確認ができていないので、確証が持てません...)
Codexの場合
Codexを使用している方々は、以下のコマンドを実行します。
codex mcp add archestra --url {url}
この後、~/.codex/config.tomlを開き、以下の様に記載します。
[mcp_servers.archestra]
url = "{url}"
http_headers = { Authorization = "{token}" }
4. MCPクライアント側で確認
Claude Codeなり、Codexなりで、それぞれコマンドを叩いてCLIに入ります。
claude
# もしくは
codex
そんで、以下の様に実行します。
/mcps
# もしくは
/mcp
これによって、以下のような出力がされればOK!!
/mcp
🔌 MCP Tools
• archestra
• Status: enabled
• Auth: Unsupported
• URL: http://localhost:9000/v1/mcp/xxxxxxxxxxxxxxxxxxxxxxxxxxxx
• HTTP headers: Authorization=*****
• Tools: archestra__artifact_write, archestra__todo_write, microsoft__playwright-
mcp__browser_click, microsoft__playwright-mcp__browser_close, microsoft__playwright-mcp__browser_drag, microsoft__playwright-
mcp__browser_evaluate, microsoft__playwright-mcp__browser_file_upload, microsoft__playwright-mcp__browser_fill_form,
microsoft__playwright-mcp__browser_handle_dialog, microsoft__playwright-mcp__browser_hover, microsoft__playwright-
mcp__browser_install, microsoft__playwright-mcp__browser_navigate, microsoft__playwright-mcp__browser_navigate_back,
microsoft__playwright-mcp__browser_press_key, microsoft__playwright-mcp__browser_resize, microsoft__playwright-
mcp__browser_run_code, microsoft__playwright-mcp__browser_select_option, microsoft__playwright-mcp__browser_snapshot,
microsoft__playwright-mcp__browser_tabs, microsoft__playwright-mcp__browser_type, microsoft__playwright-mcp__browser_wait_for,
upstash__context7__query-docs, upstash__context7__resolve-library-id
• Resources: (none)
• Resource templates: (none)
上記には、Archestraのツールが2つ、Playwrightのツールがたくさん、context7のツールが2つ存在しています。
試しに実行してみました。
良いですね!!
まとめ
画面上でMCPサーバーたちをまとめて管理できるのはなかなか良いと思いました。使い勝手も悪くない。
(APIキーがなくてもMCPサーバー自体は使えそうです。)
これ、Amazon Bedrock AgentCore Runtimeにデプロイできるなら革命だけどどちらかというとECSの方が向いてるよなぁ...











