mcpField
M
MCP-HOST-USE

MCP-HOST-USE

github.com/liujilongObjectフレームワーク・SDK771 週間前に更新

MCP-HOST-USE について

mcp-host-useは、複数のMCPサーバーへの接続と管理を行うNode.js製ホストアプリケーションです。ツールの一覧表示と呼び出し、リソースの読み取り、サーバー接続の更新を共通HTTP APIから利用できます。

主な機能

  1. 01複数のMCPサーバーへの接続
  2. 02JSONファイルによるサーバー設定
  3. 03STDIO、SSE、StreamableHTTPに対応
  4. 04HTTP経由のツール一覧表示と呼び出し
  5. 05HTTP経由のリソース一覧表示と読み取り
  6. 06再起動なしで接続を更新

活用シーン

  1. 01複数のMCPサーバーのテストと実行
  2. 02単一のHTTP APIを介したツール公開
  3. 03設定済みサーバーのリソース読み取り
  4. 04実行中のサーバー設定変更の反映

MCP 対応

STDIO、SSE、StreamableHTTP経由のMCPサーバー接続を管理し、ツールとリソースをHTTPエンドポイントから提供します。設定ファイルを読み直して接続を更新できます。

詳細

中国語 | 英語

mcp-host-use

mcp-host-use は、複数の MCP サーバーに接続して管理するための、Node.js ベースの Model Context Protocol(MCP)ホストアプリケーションです。Host は統一されたインターフェイスを提供し、クライアントが HTTP API を通じて複数の MCP サーバーとやり取りし、ツール(またはリソース)にアクセスして呼び出せるようにします。このアプリケーションを使うと、MCP サーバーをすばやくテストして実行できます。

アーキテクチャ図

graph TD
    Client[客户端] -->|HTTP 请求| HostServer[MCP Host 服务器]
    HostServer -->|管理| ConnectionManager[连接管理器]
    ConnectionManager -->|创建/管理| MCPClient1[MCP 客户端 1]
    ConnectionManager -->|创建/管理| MCPClient2[MCP 客户端 2]
    ConnectionManager -->|创建/管理| MCPClientN[MCP 客户端 N]
    MCPClient1 -->|STDIO/SSE/StreamableHTTP| MCPServer1[MCP 服务器 1]
    MCPClient2 -->|STDIO/SSE/StreamableHTTP| MCPServer2[MCP 服务器 2]
    MCPClientN -->|STDIO/SSE/StreamableHTTP| MCPServerN[MCP 服务器 N]

主な機能

  • 複数の MCP サーバーへの同時接続に対応しています。json ファイルで複数の MCP サーバーを管理できます
  • STDIO|SSE|StreamableHTTP の複数のトランスポート方式に対応しています
  • 以下の機能を提供する統一された HTTP API インターフェイスを備えています:
    • すべてのサーバーのツール一覧を取得
    • 特定のサーバー上のツールを呼び出す
    • すべてのサーバーのリソース一覧を取得
    • 特定のサーバー上のリソースを取得
    • Host が Server 接続を能動的に更新するように指示

プロジェクト構成

mcp-host-use/
├── src/                      # 源代码目录
│   ├── main.ts               # 主入口文件
│   ├── host.ts               # MCP 连接管理器
│   ├── client.ts             # MCP 客户端实现
│   ├── server.ts             # HTTP 服务器实现
│   ├── types.ts              # 类型定义
│   └── utils.ts              # 工具函数

環境要件

  • STDIO MCP サーバーに接続するには、システムに npx または uvx の実行環境が必要です。
    • npx には Nodejs(>=18)が必要です
    • uvx には Python(uv)が必要です

使用方法

1. npm パッケージを使用する(ローカルでのビルドは不要・推奨)

npx mcp-host-use

2. ローカルでビルドするには、このリポジトリを git clone https://github.com/liujilongObject/mcp-host-use.git でクローンします
依存関係のインストール
  • npm install
開発モード
  • npm run dev
本番モード
  • npm run build
    • 本番環境での使用
      • カスタム Node.js 環境を使用する:production_node.exe dist/index.js
      • ホストマシンの Node.js 環境を使用する:node dist/index.js

サーバー設定ファイル

mcp-host-use は現在の作業ディレクトリにある mcp_servers.config.json ファイルを読み込みます。ファイル形式は次のとおりです:

{
    "mcp_servers": [
        {
            "enabled": true, // 是否启用 server
            "type": "stdio", // 'stdio' | 'sse' | 'streamableHttp'
            "server_name": "server-puppeteer", // 自定义 name
            "command": "npx",
            "args": [
                "-y",
                "@modelcontextprotocol/server-puppeteer"
            ]
        },
        {
            "enabled": true,
            "type": "sse",
            "server_name": "server-everything-sse",
            "sse_url": "http://localhost:3001/sse"
        },
        {
            "enabled": true,
            "type": "stdio",
            "server_name": "github",
            "command": "npx",
            "args": [
                "-y",
                "@modelcontextprotocol/server-github"
            ],
            "env": { // 支持配置环境变量
                "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
            }
        }
    ]
}

注意事項

  • サーバーはデフォルトでポート 17925 で実行されます
  • 設定ファイル内のサーバー情報が正しいことを確認してください
  • STDIO トランスポート方式の場合、次のコマンドが実行可能であることを確認してください
    • npx
    • uvx
  • SSE|StreamableHTTP トランスポート方式の場合、URL にアクセスできることを確認してください

API エンドポイント

ツール

1. すべてのツール一覧を取得
GET http://localhost:17925/api/tools
レスポンス
{
  "code": 0,
  "data": [
    {
      "server_name": "服务器1",
      "tools": [
        {
          "name": "工具名称",
          "description": "工具描述",
          "inputSchema": { ... }
        }
      ]
    }
  ]
}
2. ツールを呼び出す
POST http://localhost:17925/api/tools/toolCall
Content-Type: application/json

{
  "server_name": "服务器名称",
  "tool_name": "工具名称",
  "tool_args": { ... }
}
レスポンス
{
  "code": 0,
  "data": {
    "result": "工具执行结果"
  }
}

リソース

1. すべてのリソース一覧を取得
GET http://localhost:17925/api/resources
レスポンス
{
  "code": 0,
  "data": [
    {
      "server_name": "服务器1",
      "resources": [
        {
          "uri": "资源URI",
          "mimeType": "资源类型",
          "name": "资源名称"
        }
      ]
    }
  ]
}
2. 特定のリソースを読み取る
POST http://localhost:17925/api/resources/read
Content-Type: application/json

{
  "server_name": "服务器名称",
  "resource_uri": "资源URI"
}
レスポンス
{
  "code": 0,
  "data":  [
      {
        "mimeType": "资源类型",
        "text": "text 类型资源",
        "blob": "blob 类型资源"
      }
    ]
}

接続

1. Server 接続を更新する

この API を呼び出すと、Host は設定ファイルを能動的に読み込み、更新された設定に基づいて Server 接続を新規作成/再起動/削除します。Host サービスを再起動する必要はありません。そのまま /api/tools などの API を呼び出すと、更新後の Server 情報を取得できます。

POST http://localhost:17925/api/connections/update
Content-Type: application/json

レスポンス
{"code":0,"message":"成功更新服务器连接"}

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。