Skip to main content
Glama

Claude MCP Server Integration

by mokemoke0821
index.ts5.99 kB
#!/usr/bin/env node /** * Enhanced Filesystem Security MCP Server * 完全版: Phase 1-3 全機能統合(49ツール対応) */ import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { CallToolRequestSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js'; // Phase 1: セキュリティ機能(実在するモジュールのみ) import { FileEncryption } from './security/encryption.js'; import { FileIntegrity } from './security/integrity.js'; // Phase 3: 高度機能(実在するモジュールのみ) import { IntelligentClassifier } from './classification/classifier.js'; import { PermissionManager } from './permissions/permission-manager.js'; import { AdvancedSearchEngine } from './search/advanced-search.js'; import { VersionManager } from './versioning/version-manager.js'; // 設定ファイル import { ALL_TOOLS } from './config/tool-definitions.js'; import { ToolHandlers } from './config/tool-handlers.js'; import { logger } from './utils/logger.js'; class EnhancedFilesystemSecurityServer { private server: Server; // Phase 1: セキュリティ機能(実装済み) private encryption: FileEncryption; private integrity: FileIntegrity; // Phase 3: 高度機能(実装済み) private versionManager: VersionManager; private classifier: IntelligentClassifier; private searchEngine: AdvancedSearchEngine; private permissionManager: PermissionManager; // ツールハンドラー private toolHandlers: ToolHandlers; constructor() { this.server = new Server( { name: 'enhanced-filesystem-security', version: '3.0.0', }, { capabilities: { tools: {}, }, } ); // 実装済みインスタンス初期化 this.encryption = new FileEncryption(); this.integrity = new FileIntegrity(); this.versionManager = new VersionManager(); this.classifier = new IntelligentClassifier(); this.searchEngine = new AdvancedSearchEngine(); this.permissionManager = new PermissionManager(); // ツールハンドラー初期化(実装済み機能のみ) this.toolHandlers = new ToolHandlers({ // Phase 1: セキュリティ機能 encryption: this.encryption, integrity: this.integrity, secureOps: null, // 未実装 // Phase 2: 実用機能(全て未実装) compression: null, duplicateDetector: null, fileWatcher: null, syncManager: null, // Phase 3: 高度機能 versionManager: this.versionManager, classifier: this.classifier, searchEngine: this.searchEngine, permissionManager: this.permissionManager, }); this.setupToolHandlers(); // エラーハンドリング this.server.onerror = (error) => { logger.error('MCP Server Error', { error }); console.error('[MCP Error]', error); }; process.on('SIGINT', async () => { logger.info('Enhanced Filesystem Security Server を終了しています...'); await this.server.close(); process.exit(0); }); } private setupToolHandlers() { // 全ツール定義を登録 this.server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: ALL_TOOLS })); // ツール実行ハンドラー this.server.setRequestHandler(CallToolRequestSchema, async (request) => { try { const { name, arguments: args } = request.params; logger.info(`ツール実行開始: ${name}`, { arguments: args }); // 統合ハンドラーを使用 const result = await this.toolHandlers.handleToolCall(name, args); return this.createResponse(result); } catch (error) { logger.error(`ツール実行エラー: ${request.params.name}`, { error }); if (error instanceof McpError) { throw error; } throw new McpError( ErrorCode.InternalError, `ツール実行中にエラーが発生しました: ${error instanceof Error ? error.message : String(error)}` ); } }); } /** * レスポンス作成ヘルパー */ private createResponse(result: any) { if (result.success) { return { content: [ { type: 'text', text: JSON.stringify({ success: true, message: result.message, data: result.data, timestamp: result.timestamp }, null, 2) } ] }; } else { return { content: [ { type: 'text', text: JSON.stringify({ success: false, message: result.message, error: result.error?.message || 'Unknown error', timestamp: result.timestamp }, null, 2) } ], isError: true }; } } /** * サーバー開始 */ async run() { const transport = new StdioServerTransport(); await this.server.connect(transport); logger.info('Enhanced Filesystem Security MCP Server が開始されました'); logger.info('実装済みツール: Phase 1 (9ツール) + Phase 3 (21ツール) = 30ツール'); logger.info('Phase 2の19ツールは今後の実装予定です'); // 実装済みツール分類の内訳 logger.info('実装済み - セキュリティ機能: 暗号化(4), 整合性(5)'); logger.info('実装済み - 高度機能: バージョン管理(6), 分類(5), 検索(6), 権限管理(6)'); logger.info('未実装 - 実用機能: 圧縮(4), 重複検出(4), 監視(6), 同期(5)'); } } const server = new EnhancedFilesystemSecurityServer(); server.run().catch((error) => { logger.error('サーバー開始エラー', { error }); console.error('Failed to run server:', error); process.exit(1); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mokemoke0821/claude-mcp-integration'

If you have feedback or need assistance with the MCP directory API, please join our Discord server