Skip to main content
Glama
lapaduga

MCP Tools Hub

by lapaduga

MCP Tools Hub

Веб-интерфейс для просмотра и вызова MCP-инструментов с чат-агентом, планировщиком и оркестрацией цепочек вызовов.

Быстрый старт

# Установка зависимостей
npm install

# Настройка окружения
cp .env.example .env
# Отредактировать CHAT_API_KEY в .env

# Запуск
npm start
# → http://localhost:3000

Related MCP server: mcp-any-openapi

Тестирование

# Только локальные инструменты
npm test

# Все тесты (локальные + внешние)
npm run test:all

# Только E2E-тест оркестрации
npm run test:orch

Архитектура

src/
├── api/            # REST-роуты (tools, scheduler, admin)
├── mcp/
│   ├── tools/      # Локальные инструменты + registry
│   ├── server.js   # MCP-сервер (SSE transport)
│   └── client-manager.js  # Подключение к внешним MCP-серверам
├── public/         # Фронтенд (app.js, chat.js, styles.css, index.html)
├── scheduler/      # Планировщик (reminder + periodic)
└── shared/         # Config, Logger, AppContext

Длинный флоу (Orchestration)

Чат-агент умеет выполнять цепочки из нескольких инструментов, где LLM сама решает, какой инструмент вызвать следующим, на основе результатов предыдущих шагов.

Пример цепочки из 4 шагов

Запрос пользователя:

Получи пользователя #1, сохрани его имя в заметку,
создай напоминание через 2 секунды о заметке, и покажи сводку задач.

Ожидаемая цепочка вызовов:

┌─────────────────────────────────────────────────┐
│  Шаг 1: get_user(userId: 1)                    │
│  → "Leanne Graham, Gwenborough"                │
├─────────────────────────────────────────────────┤
│  Шаг 2: save_note(title: "Leanne Graham",      │
│                   content: "Пользователь #1")  │
│  → "Заметка сохранена: notes/Leanne Graham.md" │
├─────────────────────────────────────────────────┤
│  Шаг 3: create_reminder(message: "Напомни о     │
│          заметке Leanne Graham", delaySeconds:2)│
│  → "Напоминание создано через 2 сек"           │
├─────────────────────────────────────────────────┤
│  Шаг 4: get_summary()                          │
│  → "Всего заметок: 5, задач в scheduler: 2..." │
├─────────────────────────────────────────────────┤
│  Ответ LLM: "Готово. Пользователь Leanne Graham │
│  сохранён, напоминание создано. Вот сводка..."  │
└─────────────────────────────────────────────────┘

Механизм:

  1. LLM получает запрос → анализирует → решает какие инструменты нужны

  2. Вызывает get_user через TOOL_CALL

  3. Сервер выполняет инструмент, возвращает результат LLM

  4. LLM анализирует результат → решает вызвать save_note

  5. Повторяет пока не выполнит все шаги (макс 5)

  6. После выполнения всех шагов — отвечает пользователю

Ветвление: LLM может принимать разные решения на основе данных:

  • Если get_weather вернул t > 15°C → save_note("Тепло")

  • Если t <= 15°C → save_note("Холодно")

Параллельные вызовы: Если LLM возвращает несколько TOOL_CALL на одной строке, они выполняются через Promise.all.

Отложенные задачи: create_reminder c callback.messages — планировщик запускает LLM-цепочку через N секунд и пушит результат через SSE.

SSE-события

Тип

Назначение

tool_step

Промежуточный шаг цепочки (real-time обновление UI)

tool_chain_result

Результат цепочки от планировщика (scheduler callback)

Формат TOOL_CALL

TOOL_CALL: {"tool": "имя_инструмента", "arguments": {}}
  • Строго одной строкой

  • JSON без дополнительного текста внутри

  • Несколько TOOL_CALL через \n — параллельное выполнение

Источники инструментов

  • локальный — встроенные инструменты (src/mcp/tools/*.js)

  • внешний:everything — @modelcontextprotocol/server-everything

  • внешний:math — второй экземпляр server-everything (для демонстрации multi-сервера)

Переменные окружения (.env)

PORT=3000                # Порт сервера
LOG_LEVEL=info           # Уровень логирования
MCP_EXTERNAL_ENABLED=true # Включить внешние MCP-серверы
MCP_EXTERNAL_SERVERS=...  # Список серверов (id,command,args;...)
CHAT_API_KEY=sk-...      # API-ключ DeepSeek
CHAT_MODEL=deepseek-chat # Модель для чата
F
license - not found
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • An MCP server giving access to Grafana dashboards, data and more.

  • 34 production API tools over one hosted MCP endpoint.

View all MCP Connectors

Latest Blog Posts

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/lapaduga/mcp'

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