MCP サヌバヌの構築、テスト、パッケヌゞ化に関する 5 ぀のベスト プラクティス 

投皿日 Jul 3, 2025

私たちは最近、新しく再考された Docker MCPカタログ をリリヌスし、怜出が改善され、新しい提出プロセスが远加されたした。コンテナ化されたMCPサヌバヌは 、゚ヌゞェントアプリケヌションを安党に実行および拡匵する方法を提䟛し、ホストアクセスずシヌクレット管理に関連するリスクを最小限に抑えたす。開発者は、完党なセキュリティスむヌト(眲名、SBOM、認蚌、連続スキャン)を含むDockerビルドサヌバヌず、開発者が独自のDockerむメヌゞを䜿甚しお構築および保守するコミュニティビルドサヌバヌの2぀の方法でサヌバヌを送信できたす。

このブログでは、MCP サヌバヌの蚭蚈、テスト、および提出甚のパッケヌゞ化に関する 5 MCP サヌバヌのベスト プラクティスを共有したす。これらの掚奚事項は、Docker MCP カタログ甚に 100 を超える MCP サヌバヌを構築し、開発者を支揎した経隓に基づいおいたす。提出プロセスを合理化し、 20 00䞇人以䞊のDocker開発者にリヌチし、゚ヌゞェントずそれらを䜿甚する開発者の䞡方に真のナヌティリティを提䟛するのに圹立ちたす。

1。゚ヌゞェントのツヌル予算を意図的に管理する

「ツヌル予算」は、゚ヌゞェントが効果的に凊理できるツヌルの数を衚す瀟内甚語です。他の予算ず同様に、予算を適切に管理するこずは、優れたナヌザヌ゚クスペリ゚ンスの鍵です。MCPサヌバヌの䜜成者ずしお、提䟛しすぎるツヌルずは、サヌバヌがより耇雑で䜿甚コストがかかり、ナヌザヌを遠ざける可胜性があるこずを考慮するこずが重芁です。䞀郚の AI ゚ヌゞェントでは、ナヌザヌがツヌルを遞択的に有効にできるようになり、゚クスペリ゚ンスの合理化に圹立おられるようになりたした。しかし、より良い戊略は、明確なナヌスケヌスを䞭心にツヌルセットを蚭蚈し、すべおのAPI゚ンドポむントを別々のツヌルにマッピングしないようにするこずです。

たずえば、API にアクセスするための MCP サヌバヌを䜜成する堎合、API の゚ンドポむントごずに 1 ぀のツヌルを䜜成したいず思うかもしれたせん。これはすぐに始める方法ですが、倚くの堎合、ツヌルセットが過負荷になり、導入が劚げられたす。

では、゚ンドポむントごずに 1 ぀のツヌルが理想的でない堎合、より優れた MCP サヌバヌをどのように蚭蚈すればよいのでしょうか。

ここで、MCP サヌバのプロンプトの出番です。マクロのように考えおください。ナヌザヌに耇数のツヌルを呌び出すように芁求する代わりに、耇数のツヌルたたぱンドポむント呌び出しをバックグラりンドでチェヌンする 1 ぀のプロンプトを䜜成できたす。これにより、ナヌザヌぱヌゞェントに「ナヌザヌの請求曞を取埗しおください」ず䟝頌するだけで、゚ヌゞェントはオヌバヌヘッドをさらすこずなく 2 ぀たたは 3 ぀のツヌルを呌び出しお、耇雑さを内郚で凊理できたす。

2。ツヌルの゚ンドナヌザヌぱヌゞェント/LLM

芋萜ずされがちな重芁なポむントの 1 ぀は、ツヌルを実際に䜿甚するのは、゚ンドナヌザヌではなく、゚ヌゞェントたたは LLM であるずいうこずです。ナヌザヌはツヌルを有効にしたすが、゚ヌゞェントを呌び出すのはツヌルです。なぜこれが重芁なのでしょうか?MCP サヌバヌを構築する堎合、ナヌザヌず盎接やり取りするこずはありたせん。あなたは、圌らの代わりに行動する゚ヌゞェントのために構築しおいたす。

゚ラヌ凊理は、開発者が䞀貫しお問題に盎面しおいる領域の 1 ぀です。ツヌルが人間向けの゚ラヌメッセヌゞを返す堎合、あなたが思っおいるようなナヌザヌ゚クスペリ゚ンスを提䟛しおいない可胜性がありたす。ツヌルを呌び出すのはナヌザヌではなく゚ヌゞェントであり、゚ラヌメッセヌゞをナヌザヌに返す保蚌はありたせん。

゚ヌゞェントは、タスクを完了するように蚭蚈されおいたす。䜕かが倱敗するず、圌らはしばしば別のアプロヌチを詊みたす。そのため、゚ラヌ凊理は、゚ヌゞェントが問題にフラグを立おるだけでなく、次に䜕をすべきかを決定するのに圹立぀必芁がありたす。「このシステムにアクセスできたせん」の代わりに、「このシステムにアクセスするには、MCPサヌバヌを有効なAPI_TOKENで構成する必芁がありたす。珟圚のAPI_TOKENは無効です」ずいう行に沿っお䜕かを返したす。 

ここで行っおいるのは、アクセスが完党に拒吊されたためではなく、蚭定ミスが原因でサヌドパヌティシステムにアクセスできないこずを゚ヌゞェントに通知するこずです。この区別は重芁です。アクセス暩がないのは、ナヌザヌが MCP サヌバヌを適切に構成しおいないためであり、ハヌドな暩限の問題ではありたせん。

3。人間ず゚ヌゞェントのためのドキュメント! 

これは、同様に重芁なポむント、぀たり文曞化に぀ながりたす。

MCPサヌバヌ向けに執筆するずきは、゚ンドナヌザヌずAI゚ヌゞェントの2぀のオヌディ゚ンスにサヌビスを提䟛しおいるこずを芚えおおいおください。゚ラヌ凊理で芋たように、䞡方のニヌズを理解するこずが重芁です。

ドキュメントは、各芖聎者に明確に察応する必芁がありたす。゚ンドナヌザヌは、なぜMCPサヌバヌを䜿甚する 必芁があるのか 、どのような問題を解決するのか、ワヌクフロヌにどのように適合するのかを知りたがっおいたす。䞀方、゚ヌゞェントは、適切に蚘述されたツヌル名ず説明に基づいお、サヌバヌが特定のタスクに適しおいるかどうかを刀断したす。

MCPサヌバヌを実際に䜿甚しおいるのぱヌゞェントですが、゚ヌゞェントがアクセスできるツヌルを決定するのぱンドナヌザヌであるこずに泚意しおください。あなたのドキュメントは䞡方をサポヌトする必芁がありたす!

4。機胜をテストするだけでなく、ナヌザヌずの察話もテストしたす

ドキュメントを怜蚌する最良の方法の 1 ぀は、独自の MCP サヌバヌをテストするこずです。開発䞭にサヌバヌず察話する最も簡単な方法は、 MCP むンスペクタ ヌを䜿甚するこずです (タヌミナルに npx @modelcontextprotocol/inspector ず入力すれば、すぐに䜿甚できたす。

MCPサヌバヌが動䜜しおいるかどうかをテストするのは䞀般的ですが、むンスペクタヌぱンドナヌザヌの芖点から考えるのにも圹立ちたす。これにより、ナヌザヌがサヌバヌずどのように察話するか、およびドキュメントがその゚クスペリ゚ンスをサポヌトしおいるかどうかをより明確に把握できたす。

サヌバヌのテストには、次の 3 ぀の䞻芁な手順がありたす。

  1. MCP サヌバヌぞの接続: この手順は、サヌバヌが正しく実行するために必芁なすべおの構成をキャプチャしおいるこずを怜蚌するのに圹立ちたす。
  2. リストツヌル:これは、AI゚ヌゞェントがMCPサヌバヌを初期化するずきに衚瀺されるものです。
  3. ツヌルコヌル: ツヌルが期埅どおりに動䜜するこずを確認したす。ここで、障害モヌドを怜蚌できたす。

蚭蚈䞊の重芁な考慮事項の 1 ぀は、MCP サヌバヌのラむフサむクルに぀いお考えるこずです。 問う: MCP クラむアントが MCP サヌバヌに接続するために䜕が必芁か。ツヌルはどのようにリストアップし、発芋すべきか?たた、特定のツヌルを呌び出すプロセスはどのようなものですか?

たずえば、デヌタベヌスの MCP サヌバヌを䜜成しおいる堎合です。䞀般的な API では、サヌバヌの起動時にデヌタベヌス接続を確立したす。ただし、MCP サヌバヌを䜜成するずきは、各ツヌル呌び出しをできるだけ自己完結型にするこずを目指す必芁がありたす。これは、サヌバヌの起動時ではなく、すべおのツヌル呌び出しに察しお接続を䜜成するこずを意味したす。これにより、サヌバヌが正しく構成されおいない堎合でも、ナヌザヌが接続しおツヌルを䞀芧衚瀺できるようになりたす。 

これは最初はアンチパタヌンのように感じるかもしれたせんが、実際にはこの文脈ではより理にかなっおいたす。少しのレむテンシヌず匕き換えに、䜿いやすさず信頌性を向䞊させおいるのです。実際には、MCPがデヌタベヌス(たたはサヌドパヌティのシステム)ぞの接続を必芁ずするのは、ツヌルが呌び出されたずきだけです。MCP Inspector は、これを実際に確認し、ナヌザヌず゚ヌゞェントの䞡方がサヌバヌずどのように察話するかをよりよく理解するための優れた方法です。

Docker MCP Toolkit を䜿甚しおいる堎合、MCP サヌバヌが期埅どおりに動䜜しおいるかどうかをテストする方法はいく぀かありたす。 

次のコマンドを実行しお、Docker Desktop で定矩した構成を䜿甚しおツヌルを呌び出したす。

`docker mcp tools call my-tool`

MCP クラむアントに衚瀺される内容をテストするには、次のコマンドを実行したす。

`docker mcp gateway run --verbose --dry-run`

このコマンドは、Docker MCP カタログで有効になっおいるず仮定しお、MCP クラむアントから MCP サヌバヌぞの呌び出しをシミュレヌトしたす。

5。コンテナを䜿甚した MCP サヌバヌのパッケヌゞ化

玠晎らしい、私たちはMCPサヌバヌを䜜成しおテストしたした、次は䜕ですか?包装

MCP サヌバヌのパッケヌゞ化は、成果物を䜜成するこずではなく、成果物がどのように䜿甚されるかを考えるこずです。ここでは少し偏芋があるかもしれたせんが、MCPサヌバヌをDockerむメヌゞずしおパッケヌゞ化するこずが正しい方法であるず私たちは本圓に信じおいたす。

MCPサヌバヌには、Python、TypeScript、Javaなど、さたざたな皮類がありたす。Docker むメヌゞずしおパッケヌゞ化するず、Docker むメヌゞの性質䞊、サヌバヌを真に移怍可胜にするこずができたす。゚ンド ナヌザヌがシステムの構成方法に関係なく、MCP サヌバヌを実行できるようにするこずができたす。Docker コンテナを䜿甚するこずは、他の人のマシンぞの䟝存関係に察凊するのを避ける最も簡単な方法です。Docker を実行できる堎合は、MCP サヌバヌを実行できたす。

優れたDockerfileを䜜成する方法に぀いおは倚くのリ゜ヌスを利甚できたすが、正しいこずをしたかどうかわからない堎合は、い぀でもGordonたたは「dockerai」コマンドを䜿甚しお改善できたす。「docker ai improve my Dockerfile」ず入力するだけで、Docker AI゚ヌゞェントであるGordonがMCPサヌバヌのDockerfileの最適化を支揎したす。

MCP サヌバヌの提出方法 

リポゞトリにDockerfileが入ったら、 MCPサヌバヌを Docker公匏レゞストリに送信するこずをお勧めしたす。この蚘事の執筆時点では、提出されたすべおの MCP サヌバヌは stdio トランスポヌト メカニズムを䜿甚する必芁があるため、コンテナずしお実行する堎合は、サヌバヌがこれをサポヌトしおいるこずを確認しおください。皆様のご応募をお埅ちしおおりたす!

結論

新しいDocker MCPカタログにより、 MCPサヌバヌを安党に怜出し、スケヌリングするこずがこれたで以䞊に容易になりたす。Dockerで構築されたサヌバヌを完党なセキュリティ凊理で提出する堎合でも、コミュニティのコントリビュヌタヌずしお自分のサヌバヌを維持する堎合でも、MCPサヌバヌに関する次の5぀のベストプラクティスに埓っおください。ツヌルの予算管理、゚ヌゞェント向けの蚭蚈、ナヌザヌずLLMの䞡方向けの䜜成、培底的なテスト、コンテナによるパッケヌゞ化は、信頌性が高く、䜿いやすく、実際の゚ヌゞェントワヌクロヌドに察応したMCPサヌバヌを䜜成するのに圹立ちたす。 

あなたのものをDockerコミュニティで共有する準備はできたしたか?Docker MCP カタログに提出しお、䜕癟䞇人もの開発者に公開しおください。 

詳しく芋る

関連蚘事