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?

ローカルMCPサーバー(Chatwork-MCP)を、node.jsのプログラムから実行(呼び出す)方法

Posted at

はじめに

MCPサーバーは通常、VSCodeClaude等のエージェントから利用する前提となっているため、
開発者でない人には敷居が高く、利用が困難でした

どうにかしたいと思っていたところ、OpenAI Agents SDKを使うと、JavaScript等からMCPを呼び出すことができるようです

試しに @​chatwork/mcp-serverを使い、
最近のチャットのやり取りをまとめてもらう、コードを作ってみます

  • このコードを元に、チャットサーバーチャットUIを追加すれば、非技術者からもChatwork+AIを活用することができそうです

必要なライブラリのインストール

npm i @openai/agents, dotenv

環境変数の設定

OpenAIのAPIキーと、Chatwork APIのトークンを設定します

OPENAI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
CHATWORK_API_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ソースコード

ソース内の<チャットルーム名に置き換え>を自分のチャットルームに置き換えてください

local-mcp-server.js
/*
  node/local-mcp-server.js
  説明:
  - このスクリプトは環境変数から設定を読み込み、MCP (Model Context Protocol) サーバーへ stdio 経由で接続し、
    Agent を作成して指定したチャットワークのチャットルームから情報を取得する例です。
*/
import 'dotenv/config';
import { Agent, run, MCPServerStdio } from "@openai/agents";

const GPT_MODEL = process.env.GPT_MODEL || "gpt-4o-mini";

async function main() {
  // MCPサーバーを起動するための設定
  const mcp = new MCPServerStdio({
    name: "CHATWORK MCP (stdio via npx)",
    fullCommand: `npx @chatwork/mcp-server `,
    env: {CHATWORK_API_TOKEN: process.env.CHATWORK_API_TOKEN},
  });

  // MCP サーバーへ接続
  await mcp.connect();

  try {
    // Agent の作成
    const agent = new Agent({
      name: "CHATWORK MCP Agent",
      instructions:
        "CHATWORK MCPを使って、指示されたチャットルームに対して読み取り、メッセージの送信を行う",
      mcpServers: [mcp],
      model: GPT_MODEL,
    });

    // 指示の実行と結果出力
    const result = await run(agent, "Chatworkの「<チャットルーム名に置き換え>」チャットから、直近1週間のやり取りを要約してください");
    console.log(result.finalOutput);
  } finally {
    await mcp.close();
  }
}

main().catch(console.error);

実行方法

少し待つとChatworkから集めた情報を元に、まとめを表示してくれます

$ node local-mcp-server.js 
下記がChatwork「<チャットルーム名に置き換え>」チャットでの直近の回答5件分のまとめです。

---

### 1件目
・・・・・・・・・・・・
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?