Skip to main content
Glama
shuji-bonji

rxjs-mcp-server

RxJS MCP Server

⚠️ This is an unofficial community project, not affiliated with RxJS team.

Execute, debug, and visualize RxJS streams directly from AI assistants like Claude.

Features

πŸš€ Stream Execution

  • Execute RxJS code and capture emissions

  • Timeline visualization with timestamps

  • Memory usage tracking

  • Support for all major RxJS operators

πŸ“Š Marble Diagrams

  • Generate ASCII marble diagrams

  • Visualize stream behavior over time

  • Automatic pattern detection

  • Clear legend and explanations

πŸ” Operator Analysis

  • Analyze operator chains for performance

  • Detect potential issues and bottlenecks

  • Suggest alternative approaches

  • Categorize operators by function

πŸ›‘οΈ Memory Leak Detection

  • Identify unsubscribed subscriptions

  • Detect missing cleanup patterns

  • Framework-specific recommendations (Angular, React, Vue)

  • Provide proper cleanup examples

πŸ’‘ Pattern Suggestions

  • Get battle-tested RxJS patterns

  • Framework-specific implementations

  • Common use cases covered:

    • HTTP retry with backoff

    • Search typeahead

    • WebSocket reconnection

    • Form validation

    • State management

    • And more...

Installation

# Install globally npm install -g @shuji-bonji/rxjs-mcp # Or use with npx npx @shuji-bonji/rxjs-mcp

Configuration

Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

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

VS Code with Continue/Copilot

Add to .vscode/mcp.json:

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

Cursor

Add to ~/.cursor/mcp.json:

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

Available Tools

execute_stream

Execute RxJS code and capture stream emissions with timeline.

// Example usage const stream$ = interval(100).pipe( take(5), map(x => x * 2) );

generate_marble

Generate ASCII marble diagrams from event data.

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

analyze_operators

Analyze RxJS operator chains for performance and best practices.

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

detect_memory_leak

Detect potential memory leaks and missing cleanup.

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

suggest_pattern

Get production-ready patterns for common use cases.

Available patterns:

  • http-retry - Resilient HTTP with retry

  • search-typeahead - Debounced search

  • polling - Smart polling with backoff

  • websocket-reconnect - Auto-reconnecting WebSocket

  • form-validation - Reactive form validation

  • state-management - Simple state store

  • cache-refresh - Cache with refresh strategy

  • And more...

Usage Examples

With 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]

Debugging Memory Leaks

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

Getting Patterns

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]

Security

The execute_stream tool runs user-provided code in an isolated Worker thread to prevent:

  • Main process pollution

  • Resource leaks from infinite loops or timers

  • Access to sensitive Node.js APIs (process, fs, etc.)

Execution is forcefully terminated if it exceeds the configured timeout.

Development

# 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

Integration with Other MCP Servers

RxJS MCP Server works great alongside:

  • Angular MCP - For Angular project scaffolding

  • TypeScript MCP - For type checking

  • ESLint MCP - For code quality

Future Meta-MCP integration will allow seamless coordination between these tools.

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ AI Assistant β”‚ β”‚ (Claude, etc) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ MCP Protocol β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ RxJS MCP Serverβ”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ β€’ execute_streamβ”‚ β”‚ β€’ generate_marbleβ”‚ β”‚ β€’ analyze_operatorsβ”‚ β”‚ β€’ detect_memory_leakβ”‚ β”‚ β€’ suggest_patternβ”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Contributing

Contributions are welcome! Please feel free to submit a PR.

License

MIT

Author

Shuji Bonji

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