MCP Connector について
MCP Connector は、複数の MCP サーバーを実行・管理する軽量サーバーで、TypingMind との連携を想定しています。ローカルPCやリモートサーバーで動作し、REST API を通じて利用できます。
主な機能
- 01REST API による複数クライアントの起動と管理
- 02Bearer トークンによる認証
- 03証明書ファイルによる HTTPS 設定
- 04ツール呼び出しのタイムアウト設定
- 05fetch リクエストを中継するプロキシエンドポイント
活用シーン
- 01ローカルPCで MCP サーバーを実行し TypingMind に接続
- 02リモートサーバーで MCP サーバーを常時稼働
- 03Docker を使ったコネクターのデプロイ
MCP 対応
本プロジェクトは MCP サーバーの実行・管理層として動作し、/start や /clients で起動・一覧取得・停止を行い、/clients/:id/call_tools でツールを呼び出します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Connector
MCP Connectorは、複数のModel Context Protocol(MCP)サーバーを実行、管理できる軽量サーバーで、TypingMindとの連携を目的として設計されています。ローカルコンピューターまたはリモートサーバーでMCPサーバーを簡単に実行でき、シンプルなREST APIを通じて、カスタムAIモデルやツールをTypingMindに接続できます。
ローカルデバイスでの実行方法
npxを使って、MCP Connectorをすぐに起動できます(インストール不要です)。
npx @typingmind/mcp@latest <auth-token>
<auth-token>を、TypingMindから提供された認証トークンに置き換えてください。
認証トークンは、環境変数を使って指定することもできます。
MCP_AUTH_TOKEN=<auth-token> npx @typingmind/mcp@latest
TypingMindを使用している間は、プロセスを実行したままにしてください。
HTTPSのサポート
HTTPSを有効にするには、次の環境変数を設定してください。
CERTFILE=./path/to/certificate.crt KEYFILE=./path/to/privatekey.key npx @typingmind/mcp@latest <auth-token>
CERTFILE:SSL証明書ファイルのパスKEYFILE:SSL秘密鍵ファイルのパス
両方の変数を設定すると、サーバーはHTTPではなくHTTPSを使用します。
サーバーでの実行方法
MCP Connectorをリモートサーバーで実行する場合は、次の手順に従ってください。
-
Node.jsをインストールします(バージョン14以降)。
-
npxを使ってサーバーを実行します。npx @typingmind/mcp@latest <auth-token>HTTPSで実行するには、次のようにします。
CERTFILE=./path/to/certificate.crt KEYFILE=./path/to/privatekey.key npx @typingmind/mcp@latest <auth-token>または、プロセスを継続的に実行する場合(例:SSH接続を閉じた後も実行する場合)は、pm2や
screen/tmuxなどのプロセスマネージャーを使用できます。pm2 start npx -- @typingmind/mcp@latest <auth-token>
Dockerでの実行方法
Dockerを使ってMCP Connectorを実行することもできます。
-
Dockerイメージをビルドします: プロジェクトのルートディレクトリ(
Dockerfileがある場所)に移動し、次のコマンドを実行します。docker build -t mcp-connector .(イメージタグは、
mcp-connectorを任意の名前に置き換えることができます。) -
Dockerコンテナを実行します:
-
基本的な実行(HTTP):
<auth-token>を実際のトークンに置き換えてください。このコマンドはコンテナをデタッチモード(-d)で実行し、コンテナのデフォルトポート50880をホストマシンの同じポートにマッピングします。docker run -d -p 50880:50880 --name mcp-connector-instance mcp-connector <auth-token> -
別のポートを使用する場合: 異なるポートを使用する必要がある場合(例:ホスト側の8080をコンテナ内の12345にマッピングする場合)は、マッピングに
-pフラグを、環境変数に-e PORTを使用します。docker run -d -p 8080:12345 -e PORT=12345 --name mcp-connector-instance mcp-connector <auth-token> -
HTTPSで実行する場合: HTTPSを有効にするには、証明書ファイルと鍵ファイルを指定し、
CERTFILEとKEYFILEの環境変数を設定する必要があります。ホストの証明書ファイルをコンテナにマウントし(例:/certsディレクトリ内)、環境変数でそのパスを指定してください。適切なポートをマッピングすることも忘れないでください。docker run -d \ -p 50880:50880 \ -e PORT=50880 \ -e CERTFILE=/certs/certificate.crt \ -e KEYFILE=/certs/privatekey.key \ -v /path/to/your/certificate.crt:/certs/certificate.crt:ro \ -v /path/to/your/privatekey.key:/certs/privatekey.key:ro \ --name mcp-connector-instance \ mcp-connector <auth-token>(
/path/to/your/certificate.crtと/path/to/your/privatekey.keyは、ホストマシン上の実際のパスに置き換えてください。:roフラグを指定すると、読み取り専用としてマウントされます。) -
ログの表示: 実行中のコンテナのログを確認するには、次のコマンドを実行します。
docker logs mcp-connector-instance -
コンテナの停止:
docker stop mcp-connector-instance -
コンテナの削除:
docker rm mcp-connector-instance
-
TypingMind への接続方法
MCP Connector を TypingMind に接続するには、次の手順に従います。
- www.typingmind.com/mcp の手順に従います。
- MCP Connector サーバーのアドレス(
http://localhost:<port>またはサーバーの IP アドレスとポート)と認証トークンを、TypingMind の MCP 統合ページに貼り付けます。
ツール呼び出しのタイムアウト設定
TIMEOUT 環境変数を使用すると、ツール呼び出しのカスタムタイムアウト(ミリ秒単位)を設定できます。
# Set timeout to 2 minutes (120000ms)
TIMEOUT=120000 npx @typingmind/mcp@latest <auth-token>
# Or combine with auth token environment variable
TIMEOUT=120000 MCP_AUTH_TOKEN=<auth-token> npx @typingmind/mcp@latest
# Default timeout is 60 seconds (60000ms) if not specified
npx @typingmind/mcp@latest <auth-token>
REST API エンドポイント
すべての API エンドポイントでは、サーバーの起動時に指定した Bearer トークンによる認証が必要です。
| エンドポイント | メソッド | 説明 |
|---|---|---|
/ping | GET | ヘルスチェック。{ status: "ok" } を返します |
/start | POST | 1 つ以上の MCP クライアントを起動します。本文:{ mcpServers: { ... } } |
/restart/:id | POST | 特定のクライアントを再起動します |
/clients | GET | 実行中のすべての MCP クライアントとそのツールを一覧表示します |
/clients/:id | GET | 特定のクライアントに関する情報を取得します |
/clients/:id/tools | GET | クライアントで利用可能なツールを一覧表示します |
/clients/:id/call_tools | POST | クライアントのツールを呼び出します。本文:{ name, arguments } |
/clients/:id | DELETE | クライアントを停止して削除します |
/mcp-connect | POST | fetch リクエストをプロキシします。本文:{ url, options? } |
注意:
- すべてのリクエストに
Authorization: Bearer <auth-token>ヘッダーが必要です。 - 利用可能なポート:サーバーはポート
50880または50881を選択します。システムでこれらのポートが利用可能であることを確認してください。PORT環境変数を使用して、別のポートを指定することもできます。
/mcp-connect エンドポイント
/mcp-connect エンドポイントは fetch リクエストのプロキシとして機能し、MCP Connector サーバー経由で HTTP リクエストを実行できます。リモート MCP サーバーへの接続や、クロスオリジンリクエストに便利です。
リクエスト本文:
url(必須):取得する URLoptions(任意):Fetch オプションオブジェクト(メソッド、ヘッダー、本文など)
レスポンス:
- このエンドポイントは、ステータスコード、ヘッダー、本文を含む、対象 URL からのレスポンスをストリーミングします
- デコードの問題を防ぐため、一部のヘッダー(Content-Encoding、Content-Length、Transfer-Encoding、CORS ヘッダー)は除外されます
- CORS との互換性のため、プロキシされたすべてのヘッダーは
Access-Control-Expose-Headers経由で公開されます
例:
curl -X POST http://localhost:50880/mcp-connect \
-H "Authorization: Bearer <auth-token>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/api/endpoint",
"options": {
"method": "POST",
"headers": {
"Content-Type": "application/json"
},
"body": "{\"key\": \"value\"}"
}
}'
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。