Skip to main content
Glama
shuji-bonji

rxjs-mcp-server

RxJS MCP Server

Японская версия README доступна здесь

npm version npm downloads license Node.js

CI Release Provenance Trusted Publisher

TypeScript RxJS MCP PRs welcome

⚠️ Это неофициальный общественный проект, не связанный с командой RxJS.

Выполняйте, отлаживайте и визуализируйте потоки RxJS прямо из ИИ-ассистентов, таких как Claude.

Возможности

🚀 Выполнение потоков

  • Выполнение кода RxJS и захват эмиссий

  • Визуализация временной шкалы с метками времени

  • Отслеживание использования памяти

  • Поддержка всех основных операторов RxJS

📊 Marble-диаграммы

  • Генерация ASCII marble-диаграмм

  • Визуализация поведения потока во времени

  • Автоматическое обнаружение паттернов

  • Понятные легенды и пояснения

🔍 Анализ операторов

  • Анализ цепочек операторов на производительность

  • Обнаружение потенциальных проблем и узких мест

  • Предложение альтернативных подходов

  • Категоризация операторов по функциям

🛡️ Обнаружение утечек памяти

  • Идентификация неподписанных подписок

  • Обнаружение отсутствующих паттернов очистки

  • Рекомендации для конкретных фреймворков (Angular, React, Vue)

  • Предоставление примеров правильной очистки

💡 Предложения по паттернам

  • Получение проверенных в бою паттернов RxJS

  • Реализации для конкретных фреймворков

  • Охвачены распространенные сценарии использования:

    • HTTP-повторы с экспоненциальной задержкой

    • Поиск с автодополнением (typeahead)

    • Переподключение WebSocket

    • Валидация форм

    • Управление состоянием

    • И многое другое...

Установка

# Install globally
npm install -g @shuji-bonji/rxjs-mcp

# Or use with npx
npx @shuji-bonji/rxjs-mcp

Конфигурация

Claude Desktop

Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "rxjs": {
      "command": "npx",
      "args": ["@shuji-bonji/rxjs-mcp"]
    }
  }
}

VS Code с Continue/Copilot

Добавьте в .vscode/mcp.json:

{
  "mcpServers": {
    "rxjs": {
      "command": "npx",
      "args": ["@shuji-bonji/rxjs-mcp"]
    }
  }
}

Cursor

Добавьте в ~/.cursor/mcp.json:

{
  "mcpServers": {
    "rxjs": {
      "command": "npx",
      "args": ["@shuji-bonji/rxjs-mcp"]
    }
  }
}

Доступные инструменты

execute_stream

Выполняет код RxJS и захватывает эмиссии потока с временной шкалой.

Инструмент принимает либо выражение, которое вычисляется как Observable, либо фрагмент кода, заканчивающийся таким выражением — return является необязательным.

// ✅ Trailing expression (v0.2.0+): the last expression is returned implicitly
interval(100).pipe(
  take(5),
  map((x) => x * 2),
);

// ✅ Declaration + trailing reference
const stream$ = interval(100).pipe(
  take(5),
  map((x) => x * 2),
);
stream$;

// ✅ Explicit return (always works)
return interval(100).pipe(
  take(5),
  map((x) => x * 2),
);

generate_marble

Генерирует ASCII marble-диаграммы из данных событий.

// Input: array of timed events
[
  { time: 0, value: 'A' },
  { time: 50, value: 'B' },
  { time: 100, value: 'C' },
];

// Output: A----B----C--|

analyze_operators

Анализирует цепочки операторов RxJS на предмет производительности и лучших практик.

// Analyzes chains like:
source$.pipe(
  map((x) => x * 2),
  filter((x) => x > 10),
  switchMap((x) => fetchData(x)),
  retry(3),
);

detect_memory_leak

Обнаруживает потенциальные утечки памяти и отсутствие очистки.

// Detects issues like:
- Missing unsubscribe
- No takeUntil operator
- Uncompleted Subjects
- Infinite intervals

suggest_pattern

Получение готовых к использованию паттернов для распространенных сценариев.

Доступные паттерны:

  • http-retry - Устойчивый HTTP с повторами

  • search-typeahead - Поиск с задержкой (debounce)

  • polling - Умный опрос с задержкой

  • websocket-reconnect - Автоматическое переподключение WebSocket

  • form-validation - Реактивная валидация форм

  • state-management - Простое хранилище состояния

  • cache-refresh - Кэш со стратегией обновления

  • И многое другое...

Примеры использования

С Claude

User: "Execute this RxJS stream and show me the output"

Claude: I'll execute that RxJS stream for you.

[Uses execute_stream tool]

## Stream Execution Result
✅ Completed
Execution Time: 523ms
Values Emitted: 5

### Emitted Values
[0, 2, 4, 6, 8]

Отладка утечек памяти

User: "Check this Angular component for memory leaks"

Claude: I'll analyze your component for potential memory leaks.

[Uses detect_memory_leak tool]

## Memory Leak Analysis
⚠️ Potential leaks detected

1. 🔴 subscription (high severity)
   - Found 3 subscribe() calls but only 1 unsubscribe()
   - Fix: Use takeUntil pattern with destroy$ subject

Получение паттернов

User: "Show me how to implement search with RxJS"

Claude: I'll show you the search typeahead pattern.

[Uses suggest_pattern tool with useCase: 'search-typeahead']

## Search Typeahead with Debounce
[Full implementation with explanation]

Безопасность

Инструмент execute_stream запускает предоставленный пользователем код в изолированном потоке Worker, чтобы предотвратить:

  • Загрязнение основного процесса

  • Утечки ресурсов из-за бесконечных циклов или таймеров

  • Доступ к чувствительным API Node.js (process, fs и т.д.)

Выполнение принудительно завершается, если оно превышает настроенное время ожидания.

Разработка

# Clone the repository
git clone https://github.com/shuji-bonji/rxjs-mcp-server
cd rxjs-mcp-server

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test              # Unit tests (vitest)
npm run test:mcp      # MCP integration test
npm run test:inspector # MCP Inspector (GUI)

# Run in development
npm run dev

Релиз

Релизы автоматизированы через GitHub Actions и публикуются в npm с использованием Trusted Publisher (OIDC) — статические токены не используются, и каждый релиз содержит аттестацию происхождения npm. См. RELEASING.md для полного описания рабочего процесса (и начальной настройки npm).

Интеграция с другими MCP-серверами

RxJS MCP Server отлично работает вместе с:

  • Angular MCP - Для создания каркаса проектов Angular

  • TypeScript MCP - Для проверки типов

  • ESLint MCP - Для контроля качества кода

Будущая интеграция Meta-MCP позволит беспрепятственно координировать работу этих инструментов.

Архитектура

┌─────────────────┐
│   AI Assistant  │
│   (Claude, etc) │
└────────┬────────┘
         │
    MCP Protocol
         │
┌────────┴────────┐
│  RxJS MCP Server│
├─────────────────┤
│ • execute_stream│
│ • generate_marble│
│ • analyze_operators│
│ • detect_memory_leak│
│ • suggest_pattern│
└─────────────────┘

Вклад в проект

Вклад приветствуется! Пожалуйста, не стесняйтесь отправлять PR.

Лицензия

MIT

Автор

Shuji Bonji

Ссылки

Install Server
A
license - permissive license
A
quality
-
maintenance - not tested

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/shuji-bonji/rxjs-mcp-server'

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