カスタム MCP サーバーの作成
カスタム統合と専門化されたツールで TeamDay の機能を拡張する独自の MCP サーバーを構築する方法を学びます。
はじめに
前提条件
- Node.js 18+ または Python 3.8+
- REST API と WebSocket についての理解
- ターゲット統合への精通
- TeamDay 開発環境へのアクセス
基本的な MCP サーバーの構造
// 基本的な Node.js MCP サーバー
const express = require('express');
const { MCPServer } = require('@teamday/mcp-sdk');
const app = express();
const mcpServer = new MCPServer({
name: 'my-custom-server',
version: '1.0.0',
description: 'Custom integration server'
});
// ツールを登録
mcpServer.registerTool('my_tool', {
description: 'My custom tool',
parameters: {
input: { type: 'string', required: true }
},
handler: async (params) => {
// ツール実装
return { result: `Processed: ${params.input}` };
}
});
app.use('/mcp', mcpServer.handler);
app.listen(3000);
ツール実装
シンプルなツール
// テキスト処理ツール
mcpServer.registerTool('process_text', {
description: 'Process and transform text',
parameters: {
text: { type: 'string', required: true },
operation: { type: 'string', enum: ['uppercase', 'lowercase', 'reverse'] }
},
handler: async ({ text, operation }) => {
switch (operation) {
case 'uppercase': return { result: text.toUpperCase() };
case 'lowercase': return { result: text.toLowerCase() };
case 'reverse': return { result: text.split('').reverse().join('') };
default: throw new Error('Invalid operation');
}
}
});
データベースツール
// データベースクエリツール
mcpServer.registerTool('query_database', {
description: 'Execute database queries',
parameters: {
query: { type: 'string', required: true },
params: { type: 'array', default: [] }
},
handler: async ({ query, params }) => {
const db = await getDatabase();
const result = await db.query(query, params);
return { data: result.rows, count: result.rowCount };
}
});
詳細については、カスタム MCP サーバーの作成 を参照してください。