😊

fastmcpを使ってサクッとSSEサーバーを立てる

に公開

mcpとても便利ですね。最近流行っているようです。
この波に乗っていきたい!

fastmcpとは?

fastmcpは簡単にmcpを作れるPythonのツールです。
https://github.com/jlowin/fastmcp
studio型で使用する場合は

mcp.run()

だけで実装できてしまいます。
特にClaude Desktopで使う場合はmcpの登録までやってくれるとても便利なツールです。
今回はdifyから使いたいこともあり、SSEのサーバーを立てます。
とても簡単に立てれたので書いておこうと思いました。

試してみる

uvの環境下で行います。
適当にserver.pyを作って以下のように単純なmcpを作りました。

# server.py
from fastmcp import FastMCP

mcp = FastMCP(name="sse-test")

@mcp.tool()
def greet(name: str) -> str:
    """Greet a user by name."""
    return f"Hello, {name}!"

if __name__ == "__main__":
    mcp.run(transport="sse")

これだけで動きます。

uv run server.py

起動しました。

[05/01/25 20:43:05] INFO     Starting server "sse-test"...                                             server.py:268
INFO:     Started server process [60559]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     127.0.0.1:56253 - "GET /sse HTTP/1.1" 200 OK

こんな感じで見えるはずです。

サーバーの終了方法ですが、^cでは止まりません。
今の所解決方法がわからないのでkillしてます。

使う

vscode上のrooからアクセスしてみます。
設定を書いて

{
  "mcpServers": {
    "sse tset": {
      "type": "sse",
      "url": "http://localhost:8000/sse",
    }
  }
}

読み込めました

使ってみましょう。
うまく使用できてますね。

本当に簡単に使えるので使ってみてください!

Discussion