0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

npm版 mcp-proxyの導入と動作確認(&Difyからのアクセス確認)

0
Last updated at Posted at 2026-02-21

npm版のmcp-proxyをubuntuサーバにインストールし、動作確認してみます。

環境

mcp server環境
OS : ubuntu 24.04
Node.js : >= Version 20

Dify環境
OS : ubuntu 24.04
Dify: Community Version 1.11.1

1.mcp serverインストール

ワーキングディレクトリの作成、Node.jsのインストール、mcp-proxyのインストールを行います。

1.1 ワーキングディレクトリ作成

bash
$ mkdir ./mcp-test-npm
$ cd ./mcp-test-npm

1.2 Node.jsインストール

bash
$ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo bash -
$ sudo apt-get install -y nodejs
$ node -v

mcp-proxyにてa minimum Node.js version of 20となるパッケージがあるため、OS標準のapt-getを利用せずに最新版のNode.jsを利用する必要があります。

1.3 mcp-proxyインストール

bash
$ npm install mcp-proxy

これでmcp-proxyが動作できるようになりました。

2.ローカル動作確認

適当なmcpサーバを作成し、ローカル接続確認を実施します。

2.1 テストコード配置

Hello World!と返却するだけのツールを提供するmcpサーバプログラムを作成します。
・package.json
・index.js

package.json
$ vi ./package.json
---

{
  "name": "mcp-hello",
  "version": "1.0.0",
  "description": "Simple MCP server that returns Hello World",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.12.0"
  }
}

package.json
$ vi ./index.js
---

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new McpServer({
  name: "hello-world-server",
  version: "1.0.0",
});

// "hello_world" ツールを登録
server.tool("hello_world", "Hello World を返すツール", {}, async () => {
  return {
    content: [
      {
        type: "text",
        text: "Hello World!",
      },
    ],
  };
});

// stdio トランスポートで起動
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("MCP Hello World Server is running on stdio");

ファイル配置したのち、インストールを実施します。

bash
$ npm install

2.2 手動サーバ起動

以下のコマンドを使用し、手動でmcp proxyおよびmcp serverを起動します。

bash
$ npx mcp-proxy --host 0.0.0.0 --port 8081 -- node index.js

2.3 ローカル動作確認

外部から動作確認する前に、ローカルでの動作確認を行います。
追加でターミナルを2つ用意し、セッションを張りながら確認を行います。

Terminal1:mcp-proxy(mcp-server)起動用
Terminal2:mcp-clientセッション継続用
Terminal3:mcp-clientコマンド打鍵用


まずはTerminal2でセッションを張ります。
curlコマンドを打鍵後、sessionIdが表示されることを確認します。

Terminal2
$ curl -N http://localhost:8081/sse

event: endpoint
data: /messages?sessionId=5781bc93-217d-4a35-99a4-af2aff7e6b20

event: message
data: {"jsonrpc":"2.0","method":"notifications/message","params":{"data":"SSE Connection established","level":"info"}}

Terminal3SID(sessionId)を変数入力し、そのあとに初期化/初期化通知/ツール呼び出しのcurlコマンドを実行します。

Terminal3
$ SID=ここにコピーしたIDを貼る


$ curl -s -X POST "http://localhost:8081/messages?sessionId=$SID" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1.0.0"}}}' \
&& \
curl -s -X POST "http://localhost:8081/messages?sessionId=$SID" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
&& \
curl -s -X POST "http://localhost:8081/messages?sessionId=$SID" \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"hello_world","arguments":{}}}'

その後、Terminal2で以下の応答が表示されれば、mcp-proxyおよびmcp-serverが動作していることの確認になります。

result
event: message
data: {"result":{"content":[{"type":"text","text":"Hello World!"}]},"jsonrpc":"2.0","id":2}

3.サービス化

サーバの起動時にmcp-proxyおよびmcp-serverが自動起動するよう、systemd設定をします。

bash
$ sudo vi /etc/systemd/system/hw-npm-mcp.service
---
[Unit]
Description=helloworld npm mcp server
After=network.target

[Service]
Type=simple
WorkingDirectory=/home/ubuntu/mcp-test-npm
ExecStart=npx mcp-proxy --host 0.0.0.0 --port 8081 -- node index.js
Restart=on-failure
User=ubuntu
Group=ubuntu

[Install]
WantedBy=multi-user.target
bash
$ sudo systemctl daemon-reload
$ sudo systemctl enable hw-npm-mcp.service
$ sudo systemctl start hw-npm-mcp.service
$ sudo systemctl status hw-npm-mcp.service

4.Dify MCP サーバー登録

DifyのMCPサーバー追加画面にてmcp-proxyエンドポイントを登録します。

サーバーURLおよびアイコン/識別子を入力し、追加して承認を行います。
image.png

すぐに承認はされないので、しばらく時間をおいてから再度 編集→保存 をしたりすると、認証済みとなりツール表示がされます。

image.png

エージェントを利用してツール呼び出ししたところ、想定通りの動作になりました。
image.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?