Super Secret MCP Server について
米国の州名と代表的なスープをランダムに組み合わせるツールを備えた、純粋な Node.js 製 MCP サーバーの例です。STDIO経由の小規模な MCP ツールのデモやテストに使えます。
主な機能
- 01州名とスープのランダムな合言葉生成
- 02JSON-RPC 2.0準拠
- 03入力スキーマ検証
- 04独自の複数レベルログ
- 05STDIOトランスポート
活用シーン
- 01遊び心のある秘密の合言葉を生成
- 02MCP Inspectorでツールの検出と実行をテスト
- 03ツール追加時の簡潔な Node.js 例として利用
MCP 対応
STDIO経由でMCPクライアントに getSecretPassphrase ツールを公開します。ツールは米国の州名と代表的なスープのランダムな組み合わせを返します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Super Secret MCP Server
ランダムな米国の州と、その州を代表するスープの組み合わせを楽しく生成する、純粋なNode.jsによるModel Context Protocol(MCP)サーバーの実装です。
機能
- 純粋なNode.jsによる実装
- JSON-RPC 2.0に準拠
- MCPプロトコルのバージョン:2024-11-05
- カスタムロギングシステム
- スキーマ検証に対応したツール
- STDIOトランスポート
はじめに
前提条件
- Node.js(最新のLTSバージョンを推奨)
- テスト用のMCP Inspector
インストール
- リポジトリをクローンします:
git clone [email protected]:gbti-network/mcp-basic-test.git
cd mcp-basic-test
- 依存関係をインストールします:
npm install
Inspectorの起動
MCP Inspectorを使ってサーバーを起動します:
npx @modelcontextprotocol/inspector -- node index.js
サーバーが起動し、STDIO経由で接続できるようになります。
利用可能なツール
getSecretPassphrase
米国の州と、その州を代表するスープのランダムな組み合わせを返します。例:
- ニューイングランド・クラムチャウダー
- ルイジアナ・ガンボ
- テキサス・チリ
- カリフォルニア・チョッピーノ
- ミシガン・チェリースープ
入力スキーマ:
{
"type": "object",
"properties": {},
"additionalProperties": false,
"required": []
}
応答例:
{
"content": [{
"type": "text",
"text": "New England Clam Chowder"
}]
}
プロジェクト構成
.
├── index.js # Main server implementation
├── utils/
│ └── logger.js # Custom logging utility
├── .data/
│ ├── framework.md # Framework documentation
│ └── knowledge.md # Project knowledge base
└── .logs/ # Server logs directory
開発
新しいツールの追加
index.jsでツールを定義します:
this.tools.set('toolName', {
name: 'toolName',
description: 'Tool description',
inputSchema: {
type: 'object',
properties: {},
additionalProperties: false,
required: []
},
handler: async (params) => {
// Tool implementation
return 'result';
}
});
- MCP Inspectorを使ってテストします:
- サーバーに接続します
- 「List Tools」を使ってツールが登録されていることを確認します
- ツールの実行をテストします
ロギング
サーバーでは、複数のレベルに対応したカスタムロギングシステムを使用しています:
- DEBUG:詳細なデバッグ情報
- INFO:一般的な動作情報
- WARN:警告メッセージ
- ERROR:エラー状態
ログは.logsディレクトリに保存されます。
Cascadeでの使用
オプション1:ツールを直接使用する
MCPサーバーをCascadeに読み込むと、getSecretPassphraseツールを直接使用して、州とスープの組み合わせを生成できます。
オプション2:自然言語インターフェース
ツールをより使いやすくするために、秘密のパスコードに関する自然言語の質問にCascadeが応答するよう設定できます。プロンプトの例を示します。
When users ask variations of "What is the secret passcode?", use the getSecretPassphrase tool to generate and return a US State + Soup combination as "Today's secret passcode is: [STATE] [SOUP]"
これにより、次のような自然な質問を使ってパスコードを取得できます:
- 「秘密のパスコードは何?」
- 「秘密のコードを教えて」
- 「今日のパスコードは何?」
- 「秘密を教えて」
やり取りの例:
User: "What's the secret passcode?"
Cascade: "Today's secret passcode is: Louisiana Gumbo 🍜"
オプション3:永続メモリ
より永続的な設定にするには、セッションをまたいで保持されるCascadeメモリを作成できます:
{
"Title": "Secret Passcode Handler",
"Content": "When the user asks any variation of 'What is the secret passcode?', use the getSecretPassphrase tool and return its result as 'Today's secret passcode is: [STATE] [SOUP]'",
"Tags": ["mcp_server", "secret_passcode", "tool_execution"]
}
MCPの設定
CascadeでMCPサーバーを設定するには、次の内容をmcp_config.jsonに追加します:
{
"mcpServers": {
"super-secret": {
"command": "npx",
"args": [
"--yes",
"node",
"<path-to-project>/index.js"
],
"disabled": false,
"autoApprove": [
"getSecretPassphrase"
]
}
}
}
設定オプション:
super-secret:MCPサーバーの一意の識別子command:サーバーを起動するコマンド(この場合はnpx)args:コマンドライン引数--yes:npmパッケージのインストールを自動承認しますnode:Node.jsで実行します<path-to-project>/index.js:サーバーファイルへのパス
disabled:サーバーを無効にするかどうかautoApprove:ユーザーの確認なしで実行できるツールの一覧
設定ファイルは次の場所に配置してください:
- Windows:
%USERPROFILE%\.codeium\windsurf\mcp_config.json - macOS/Linux:
$HOME/.codeium/windsurf/mcp_config.json
テスト
- MCP Inspectorを使ってサーバーを起動します
- サーバーの初期化を確認します
- ツールの一覧を確認します
- ツールの実行をテストします
- 応答の形式を確認します
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します
- 変更をコミットします
- ブランチにプッシュします
- Pull Requestを作成します
ライセンス
このプロジェクトはMIT Licenseの下でライセンスされています。詳細はLICENSEファイルをご覧ください。
謝辞
- プロトコル仕様を提供してくださったModel Context Protocolチーム
- テストツールを提供してくださったMCP Inspectorチーム
最新情報
最新情報、ニュース、コミュニティでのディスカッションについて、お好きなプラットフォームでフォローしてください:
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。