Skip to main content
Glama
by jekakos
REFACTORING-GUIDE.md3.91 kB
# MCP Server Refactoring Guide ## Структура после рефакторинга ### 📁 Новая структура файлов: ``` src/ ├── mcp-server.js # Основной MCP сервер (stdio) ├── streamable-http-wrapper.js # HTTP wrapper (упрощенный) ├── http-wrapper.js # HTTP wrapper (полный) ├── mcp-manager.js # Менеджер MCP соединения └── handlers/ ├── mcp-handler.js # Главный обработчик запросов ├── initialize.js # Обработка initialize ├── tools.js # Обработка tools/list и tools/call ├── resources.js # Обработка resources/list и resources/read └── notifications.js # Обработка notifications и ping ``` ### 🔧 Что было сделано: #### 1. **Выделен MCP Manager** (`mcp-manager.js`) - Управление MCP процессом - Отправка запросов и обработка ответов - Методы для tools и resources #### 2. **Созданы специализированные обработчики:** **`handlers/initialize.js`** - Обработка `initialize` запроса - Возврат capabilities и server info **`handlers/tools.js`** - `handleToolsList()` - список инструментов - `handleToolsCall()` - вызов инструментов **`handlers/resources.js`** - `handleResourcesList()` - список ресурсов - `handleResourcesRead()` - чтение ресурсов **`handlers/notifications.js`** - `handleNotificationsInitialized()` - уведомление об инициализации - `handlePing()` - ping notification **`handlers/mcp-handler.js`** - Главный роутер запросов - Маршрутизация по методам MCP - Обработка HTTP методов (GET, POST, DELETE) #### 3. **Упрощен основной файл** (`streamable-http-wrapper.js`) - Только Express настройка - Middleware и CORS - Подключение обработчиков - Graceful shutdown ### ✅ Преимущества рефакторинга: 1. **Модульность**: Каждый обработчик в отдельном файле 2. **Читаемость**: Код легче понимать и поддерживать 3. **Тестируемость**: Каждый модуль можно тестировать отдельно 4. **Расширяемость**: Легко добавлять новые обработчики 5. **Переиспользование**: Модули можно использовать в других проектах ### 🚀 Использование: ```bash # Запуск рефакторированного сервера node src/streamable-http-wrapper.js # Тестирование node test-streamable.js node test-streamable-resources.js node test-mcp-inspector-ping.js ``` ### 📊 Результат: - **Функциональность**: 100% сохранена - **Производительность**: Без изменений - **Совместимость**: Полная совместимость с MCP Inspector и Smithery - **Код**: Более чистый и организованный ### 🔄 Миграция: Старый код в `streamable-http-wrapper.js` (400+ строк) разделен на: - `streamable-http-wrapper.js` (60 строк) - `mcp-manager.js` (120 строк) - `handlers/` (5 файлов, ~200 строк) **Общее количество строк осталось примерно тем же, но код стал намного более организованным!**

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/jekakos/mcp-user-data-enrichment'

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