Skip to content

あなたの最初のMCP

MCPを実装するプログラミング言語は多く、一般的なほぼすべてのプログラミング言語に公式・非公式のサポートがあります。「プログラミング言語 + MCP」で検索すれば対応するライブラリが見つかります。MCPサーバー開発事例では、さまざまなプログラミング言語の異なる例も提供しています。

すべてのプログラミング言語の中で、PythonでのMCP開発は間違いなく最も簡単で、初心者にも取り組みやすいものです。そのため、最初のMCPはPythonで実装します。他のプログラミング言語での実装も大同小異です。

uvのインストール

Pythonでmcpサーバーを書く際には、パッケージマネージャーとしてuvを使用することを強く推奨します。uvについて知っておくべきことは、高性能なパッケージマネージャーであり、pipとcondaのすべての利点を備えていることです。uvがインストールされていない場合は、まずpipでuvをインストールしてください:

bash
pip install uv

anacondaまたはminicondaを使用している方へ!

非base環境にuvをインストールしないでください。base環境でuvをインストールしてください。uv自体が環境の分離を適切に行いますので、uvがbase環境を汚染する心配はありません。base環境以外にインストールしたり、グローバルなpipでインストールしたりすると、uvがどこにインストールされたのかわからなくなります!base環境でpipを使用してインストールしたスクリプトは~/anaconda/bin/uvにインストールされますので、~/anaconda/bin/$PATHに含まれていることも確認してください。

uvのバージョンを確認します:

bash
uv version

私の出力は次の通りです:

uv 0.6.9 (3d9460278 2025-03-20)

実際に操作する際には、このバージョンよりも低くならないようにしてください。

最もシンプルなmcpサーバーの作成

プロジェクトディレクトリに移動し、最もシンプルなmcpサーバーを作成する準備をします。

bash
mkdir -p ~/codes/my-first-mcp
cd ~/codes/my-first-mcp
uv init --no-workspace

この時点で、プロジェクト内には以下の3つのファイルがあるはずです:

README.md      main.py        pyproject.toml

次に、現在のフォルダでvscodeまたはtraeを開き、最もシンプルなmcpサーバーを作成します。その機能は次の通りです:

  • 2つの数字を加算するための「add」というツールを提供
  • 挨拶メッセージを返す「greeting」というリソースを提供

まず、mcp関連のライブラリをインストールします:

bash
uv add mcp "mcp[cli]"

main.pyの内容を以下のように変更します:

python
from mcp.server.fastmcp import FastMCP
mcp = FastMCP('錦恢の MCP Server', version="11.45.14")

@mcp.tool(
    name='add',
    description='2つの数字を実数領域で加算する'
)
def add(a: int, b: int) -> int:
    return a + b

@mcp.resource(
    uri="greeting://{name}",
    name='greeting',
    description='デモンストレーション用のリソースプロトコル'
)
def get_greeting(name: str) -> str:
    return f"Hello, {name}!"

@mcp.prompt(
    name='translate',
    description='翻訳を行うプロンプト'
)
def translate(message: str) -> str:
    return f'以下の文章を中国語に翻訳してください:\n\n{message}'

OpenMCPでワンクリック接続

上記のように、mcpのtool、resource、promptとして使用する3つの関数を宣言しました。OpenMCPでこれらを起動するのは非常に簡単で、右上のOpenMCPアイコンをクリックするだけで接続できます:

OpenMCPを初めて使用する場合、ガイド画面が表示されますので、ぜひ最後までご覧ください。

ログインが完了し、以下のように接続成功と表示されれば、mcpサーバーの起動と接続が成功したことを意味します。

おめでとうございます。最初の一歩が最も難しいですが、あなたはすでに最も難しいmcp接続を完了しました!

OpenMCPを使用したmcpサーバー接続に関する詳細情報は、マニュアルのこの章MCPサーバーへの接続を参照してください。

付録:uvでmcpを起動する際に知っておくべきこと

OpenMCPはすでに多くのことを行ってくれていますが、uvでmcpサーバーを起動する方法は1つだけではありません。より基本的な原理を理解することで、あらゆる状況に対応できるようになります。OpenMCPはPythonプロジェクトに対してデフォルトでuv run mcp run main.pyを実行してmcpサーバーを起動しますが、GitHub上の一部のプロジェクトはこの方法では起動できません。

まず、上記の例のPythonコードをコマンドラインからどのように起動するかを理解しましょう!

方法1:mcp-cliを使用する

mcp自体がスキャフォールディングを提供しており、宣言されたPythonコードを直接起動してmcpサーバーとして実行できます。以下のコードで実行します:

bash
uv run mcp run main.py

方法2:コード内で明示的に起動する

コード内で明示的にmcpサーバーを起動することもできます。main.pyの末尾に以下を追加します:

python
if __name__ == '__main__':
    mcp.run()

その後、以下のコードを実行すればmcpサーバーが起動します:

bash
uv run main.py

WARNING

python main.pyを実行しないでください。uv runは現在の仮想環境のライブラリを使用しますが、これらのライブラリは外部のPythonからは見えません。また、mcp.run()で起動コードを使用せずにuv run main.pyを直接使用することも避けてください。私たちがこれまでに書いたコードは関数を宣言しただけで、実際には何の機能も実行していません。

Contributors

Changelog