Open18

MCPというものが流行っているようなので調べたい

kiyukakiyuka

流行ってるけどよくわかってないので調べよう!の作業ログです。

kiyukakiyuka

uv 推奨らしいので、まず入れる。

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

uv

# 3.12 入ってなかったので入れる
uv python install 3.12

# 初期化
uv init mcp-server-demo
cd mcp-server-demo

# MCP インストール
uv add "mcp[cli]"

実行?

uv run mcp

uv add "mcp[cli]"mcp.exe がインストールされているので、それを実行しているみたい。

kiyukakiyuka

server.py を作って実行しようと思ったけど、Claude って書いてありますね?

You can install this server in Claude Desktop and interact with it right away by running:

mcp install server.py

VSCodeでできないかなと思って試したけど Claude app not found ってなったから入れますか。

kiyukakiyuka

動いたけどこれどうするんだろ?

kiyukakiyuka

知らぬ間に設定されてる。

%APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "Demo": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "C:\\work\\zenn\\mcp-server-demo\\server.py"
      ]
    }
  }
}

mcp install server.py の実行で Demo が追加されたってことなのかな。

kiyukakiyuka

🔨のアイコン が表示されるとのことだけどないな?なにかする必要があるんだろうけど...

kiyukakiyuka

試しにこっちのコマンドも実行

mcp dev server.py

サーバー起動しているっぽいのはわかるけど...?

Need to install the following packages:
  @modelcontextprotocol/inspector@0.11.0
Ok to proceed? (y) y
Starting MCP inspector...
⚙️ Proxy server listening on port 6277
🔍 MCP Inspector is up and running at http://127.0.0.1:6274 🚀
kiyukakiyuka

Claude の UI が Quickstart と違うんだよな...

自分の環境

Quickstart の UI

kiyukakiyuka

わからないので VSCodeでやる方法調べてた。

https://youtu.be/A6Dx8xXUcaA?si=XgDgt-9Xz8qBPyiB&t=2418

行けた?

kiyukakiyuka

動いてそう。

コードは確認用に変えてる。

# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b + 100000000000000

内部的にはJSONの出力がMCPサーバーから返ってきていて、その結果を元にLLMがメッセージを返してるって感じだから、「常識的に 1+2 は 3 だよ!!」って回答が返ってきてるけど、MCPは実行できてそうね。

kiyukakiyuka

この記事見る限り、MCP自体は単なる標準なのね。アプリケーションとサービスを連携するときの。
MCPそのものがエージェント的に色々すごいことしてくれるわけではなくって、あくまで Function calling を標準化したもの、みたいな感じ。

だから、AIを使う側としては別に何も変わらないけど、実装する側が簡単?になったっていうことなのかな。MCPという統一した標準を使って実装ができるから、各サービスのAPIをそれぞれ調べて実装しなくても良くなったみたいな。

あとMCPでサービス作ったから使ってください、っていうのもやりやすくなったわけなのか。

結果的に、いろんなアプリでMCPサービスが実行できるような実装されて、アプリの使い勝手が良くなるわけだから、AIを使う側にも影響してくるっていう理解にしておこう。

kiyukakiyuka

なるほど。MCPの動作の流れ を見る感じ、エージェント的な機能を作りたいなら、MCPクライアント(アプリ)側で処理をするって感じだね。

VSCcode とか Cursor とかに、エージェント機能が実装されているから、これに MCP を追加することで機能付与が簡単にできるようになった、みたいなのがわかりやすい例って感じ?

やっぱり標準化したのが強いっていうので話題になった感じなのかな。
処理そのものは、LangChain とかでも実装できたよね。前調べたの1年前とかだから今どうなってるのか知らないけど。

kiyukakiyuka

たぶんこんな

  • VSCode とか Cursor とか MCPに対応している(≒ エージェントが実装されている?)アプリ で自作の処理を実行させたい!
    → MCPサーバーを実装すればできるよ!

  • AIアプリケーションを作って、その中でMCPを使いたい!
    → MCPクライアントを実装しよう! For Client Developers
    → MCPサーバーは実装済みのものを使用するのもよし!自分で実装するのもよし!

kiyukakiyuka

あーなるほど?エージェントはClaudeとかCursorとかVSCodeとかに任せてしまうっていうこともできるのか。

https://www.youtube.com/watch?v=DqgKuLYUv00

なにか物を作りたいってときであれば、MCPサーバーに作る処理とか作ったものを取得する処理とか修正する処理とかを実装しておけば、Claudeとかのエージェントがよしなにしてくれてるのか。