はじめに
MCPサーバーは通常、VSCodeやClaude等のエージェントから利用する前提となっているため、
開発者でない人には敷居が高く、利用が困難でした
どうにかしたいと思っていたところ、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件目
・・・・・・・・・・・・