メインコンテンツへスキップ

Eigen MCP Server

高度な統合のために、独自の MCP サーバーを構築できます。これにより機能を完全に制御でき、独自システムや未サポートのアプリケーションとの統合に最適です。

独自 MCP サーバーが必要な時

独自 MCP サーバーは以下の場合に適しています。

  • 独自のアプリケーションやデータベースと統合したい場合
  • Zapier で利用できない統合を使用したい場合
  • 特定のセキュリティ要件がある場合
  • ツールに複雑なロジックが必要な場合

必要な知識

独自 MCP サーバーを作成するには以下が必要です。

  • プログラミング経験(TypeScript/JavaScript または Python)
  • REST API の理解
  • サーバーとホスティングの基礎知識

Model Context Protocol

Model Context Protocol(MCP)は Anthropic によって開発されたオープンスタンダードです。MCP サーバーは以下と一緒に使用できます。

  • AI School
  • ChatGPT
  • Claude
  • Copilot を搭載した Visual Studio Code
  • その他の MCP 対応アプリケーション

TypeScript でのクイックスタート

1. プロジェクトの設定

mkdir mijn-mcp-server
cd mijn-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk

2. サーバーコード

import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";

const server = new Server({
name: "mijn-server",
version: "1.0.0",
});

// ツールを定義
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "mijn_tool",
description: "ツールが実行する内容の説明",
inputSchema: {
type: "object",
properties: {
parameter: {
type: "string",
description: "パラメータ",
},
},
required: ["parameter"],
},
},
],
}));

// ツールを実装
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "mijn_tool") {
const { parameter } = request.params.arguments;
// パラメータを使用して処理
return {
content: [{ type: "text", text: `結果: ${parameter}` }],
};
}
});

// サーバーを開始
const transport = new StdioServerTransport();
server.connect(transport);

3. サーバーを実行

npx ts-node server.ts

AI School の HTTP トランスポート

AI School は MCP サーバーを HTTP 経由でサポートします。サーバーは MCP メッセージを受け取るエンドポイントを提供する必要があります。

import express from 'express';

const app = express();
app.use(express.json());

app.post('/mcp', async (req, res) => {
const { method, params } = req.body;

if (method === 'tools/list') {
res.json({ tools: [...] });
} else if (method === 'tools/call') {
// ツール呼び出しを処理
res.json({ content: [...] });
}
});

app.listen(3000);

ホスティングオプション

MCP サーバーはインターネット上でアクセス可能である必要があります。

オプション適している用途コスト
Cloudflare Workers軽量なワークロード無料ティアあり
VercelTypeScript サーバー無料ティアあり
Railway完全なアプリケーション月額 $5 から
AWS Lambdaスケーラブルなソリューション使用量に応じて課金
自分のサーバー完全なコントロール変動

AI School との接続

  1. サーバーを公開URLへデプロイ
  2. AI School のダッシュボードへ移動
  3. 連携連携を追加
  4. MCP サーバーの URL を入力
  5. 認証を設定

認証

MCP サーバーに認証を追加できます。

API キー認証

app.post("/mcp", (req, res, next) => {
const apiKey = req.headers["x-api-key"];
if (apiKey !== process.env.API_KEY) {
return res.status(401).json({ error: "Unauthorized" });
}
next();
});

AI School では認証方法として「API Key」を選択します。

OAuth 2.0

より高度な認証には OAuth 2.0 を実装できます。AI School は MCP サーバー向けに OAuth 2.1 をサポートしています。

参考およびリソース

Official MCP Servers

Documentation

開発のヒント

  1. シンプルに開始: まずは一つのツールから始めて拡張
  2. ローカルでテスト: デバッグには MCP Inspector を使用
  3. ログ出力: 問題解決のために詳細なログを追加
  4. エラーハンドリング: 明確なエラーメッセージを返す
  5. レート制限: サーバーの負荷を保護

よくある統合

システム可能なツール
LVS(Magister, Somtoday)成績の取得、時間割の閲覧
CRM システム顧客データの取得、メモの追加
データベースクエリの実行、レポートの生成
独自アプリケーション公開したい任意の API

関連記事