FelixYifeiWang-felix-mcp-smithery について
Felix MCP (Smithery) は、Smithery にデプロイされた小規模な MCP サーバーで、Claude Desktop などのクライアント向けです。Streamable HTTP 経由で、挨拶、乱数、天気の取得、OpenAI によるテキスト要約を提供します。
主な機能
- 01名前を指定した挨拶
- 02乱数の生成
- 03都市ごとの現在の天気取得
- 04OpenAI によるテキスト要約
活用シーン
- 01MCP クライアントへの挨拶ツールの追加
- 02指定した上限までの乱数生成
- 03都市の現在の天気の確認
- 04OpenAI API キー設定時のテキスト要約
MCP 対応
`/mcp` の Streamable HTTP エンドポイントを通じて、MCP クライアントに4つのツールを提供します。セッション管理に対応し、POST、GET、DELETE リクエストを処理します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcpclaude mcp add --transport http ai-smithery-felixyifeiwang-felix-mcp-smithery https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp{"mcpServers":{"ai-smithery-felixyifeiwang-felix-mcp-smithery":{"type":"http","url":"https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp"}}}Cursor で開く{"servers":{"ai-smithery-felixyifeiwang-felix-mcp-smithery":{"type":"http","url":"https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp"}}}VS Code で開く{"mcpServers":{"ai-smithery-felixyifeiwang-felix-mcp-smithery":{"type":"http","url":"https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp"}}}{"mcpServers":{"ai-smithery-felixyifeiwang-felix-mcp-smithery":{"serverUrl":"https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp認証が必要ツール
詳細
Felix MCP (Smithery)
便利なツールをいくつか備えた小規模な Model Context Protocol サーバーです。Smithery にデプロイされ、Claude Desktop でテストされ、NANDA に登録されています。
含まれるツール
hello(name)– 手軽な挨拶randomNumber(max?)– ランダムな整数(デフォルトは 100)weather(city)– wttr.in 経由で現在の天気を取得summarize(text, maxSentences?, model?)– OpenAI を利用した要約(OPENAI_API_KEYが必要です)
公開サーバーページ
https://smithery.ai/server/@FelixYifeiWang/felix-mcp-smithery
MCP エンドポイント(ストリーミング可能な HTTP)
https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp
(Smithery/NANDA では、認証情報はクエリパラメーター api_key と任意の profile を介して付与され、プラットフォームの UI で設定します。ここにシークレットをハードコードしないでください。)
デモ
Claude Desktop での利用(推奨)
-
Settings → Developer → mcpServers を開き、次を追加します。
{ "mcpServers": { "felix-mcp-smithery": { "command": "npx", "args": [ "-y", "@smithery/cli@latest", "run", "@FelixYifeiWang/felix-mcp-smithery", "--key", "YOUR_SMITHERY_API_KEY", "--profile", "YOUR_PROFILE_ID" ] } } } -
新しいチャットを開始し、次を実行します。
- 「felix-mcp-smithery のツールを一覧表示して」
- 「
{ "name": "Felix" }を指定して hello を呼び出して」 - 「このテキストを 2 文で要約して、summarize を呼び出して:…」
機能
- ストリーミング可能な HTTP MCP – Express と MCP SDK の
StreamableHTTPServerTransportを/mcp(POST/GET/DELETE)で使用します。 - セッション対応 –
Mcp-Session-Idを適切に処理します(クローズ時の再帰なし)。 - OpenAI による要約 – チャット補完を使用して、すっきりとした要約を生成します(デフォルトモデルは
gpt-4o-mini)。 - 手間のかからないホスティング – コンテナとしてパッケージ化し、Smithery にデプロイします。
インストール(ローカル)
Node 18+ が必要です(Node 20 でテスト済み)。
git clone https://github.com/FelixYifeiWang/felix-mcp-smithery
cd felix-mcp-smithery
npm install
環境変数を設定します(ローカルで summarize を呼び出す場合のみ必要です)。
export OPENAI_API_KEY="sk-..."
実行します。
node index.js
# ✅ MCP Streamable HTTP server on 0.0.0.0:8081 (POST/GET/DELETE /mcp)
ローカルでの curl:
curl -s -X POST "http://localhost:8081/mcp" \
-H 'Content-Type: application/json' \
-H 'Mcp-Protocol-Version: 2025-06-18' \
--data '{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":"2025-06-18"}}'
使用方法(ツール)
hello
{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"hello","arguments":{"name":"Felix"}}}
randomNumber
{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"randomNumber","arguments":{"max":10}}}
weather
{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"weather","arguments":{"city":"Boston"}}}
summarize(サーバーに OPENAI_API_KEY を設定する必要があります)
{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"summarize","arguments":{"text":"(paste long text)","maxSentences":2}}}
仕組み
-
サーバーの中核:
@modelcontextprotocol/sdkのMcpServerを使用し、buildServer()でツールを登録します。 トランスポート:/mcpのStreamableHTTPServerTransportが次を処理します。POST /mcp— JSON-RPC リクエスト(初回のinitializeを含む)GET /mcp— サーバーからクライアントへの通知(SSE)DELETE /mcp— セッションを終了
-
CORS: すべてのオリジンを許可し、
Mcp-Session-Idヘッダーを公開します(ホスト型クライアントに適しています)。 -
OpenAI による要約:
/v1/chat/completionsを呼び出すfetchの薄いラッパーで、短い「明快な要約」システムプロンプトを使用します。
デプロイ(Smithery)
-
次を含む GitHub リポジトリを用意します。
-
index.js(Express + MCP) -
package.json(@modelcontextprotocol/sdk、express、cors、zod) -
Dockerfile -
smithery.yaml:kind: server name: felix-mcp-smithery version: 1.0.0 runtime: container startCommand: type: http transport: streamable-http port: 8081 path: /mcp ssePath: /mcp health: /
-
-
Smithery で次を行います。
- リポジトリからサーバーを作成します。
- Environment Variables に
OPENAI_API_KEYを追加します(summarize用。任意)。 - デプロイし、ログに次の内容が表示されることを確認します。
✅ MCP Streamable HTTP server on 0.0.0.0:8081 (POST/GET/DELETE /mcp)
NANDA インデックス
-
join39.org → Context Agents → Add に移動します。
- Agent Name:
Felix MCP (Smithery) - MCP Endpoint:
https://server.smithery.ai/@FelixYifeiWang/felix-mcp-smithery/mcp?api_key=YOUR_KEY&profile=YOUR_PROFILE - Description:
Smithery でホストされたストリーミング可能な HTTP MCP。ツール:hello、randomNumber、weather、summarize(OpenAI)。
- Agent Name:
-
NANDA からテストします:
initialize→tools/list→helloを呼び出します。
プロジェクト構成
.
├─ index.js # Express + Streamable HTTP + tools
├─ package.json # sdk/express/cors/zod
├─ Dockerfile # container build for Smithery
└─ smithery.yaml # Smithery project config
課題の評価基準との対応
- ✅ 発見/構築: 4 つのツールを備えたカスタム MCP サーバー
- ✅ デプロイ: Smithery でホスト(公開サーバーページへのリンクあり)
- ✅ ホストでのテスト: Claude Desktop で動作確認済み(スクリーンショット/録画を同梱)
- ✅ NANDA インデックス: Context Agent として追加(スクリーンショットを同梱)
- ✅ 成果物: リポジトリへのリンク + 動作するエンドポイント + ホストのスクリーンショット
うまくいったこと
- クローズループの落とし穴を避ければ、セッション管理を備えた Streamable HTTP トランスポートは安定しています。
- Smithery により、デプロイと認証キーの配布を簡単に行えます。
- Claude Desktop は
@smithery/cli run …経由で問題なく接続できます。
AI による支援について
このプロジェクトの一部(ツールのひな形、エラーの修正、ドキュメントの仕上げ)には、AI の支援を活用しました。 最終的なコード、デプロイ、テストの手順は、私自身が実装して検証しました。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。