Monti APM MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone <repository-url>
cd sdui-mcp-monti-apm
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add -e "MONTI_APP_ID=${MONTI_APP_ID}" -e "MONTI_APP_SECRET=${MONTI_APP_SECRET}" monti-apm -- node "<FULL_PATH_TO_MONTI_APM_MCP>/dist/index.js"

Replace <FULL_PATH_TO_MONTI_APM_MCP>/dist/index.js with the actual folder you prepared in step 1.

Required:MONTI_APP_IDMONTI_APP_SECRET+ 2 optional
README.md

Integrates Monti APM with the Model Context Protocol for Meteor monitoring.

SDUI MCP Monti APM Server

A Model Context Protocol (MCP) server that integrates with Monti APM to provide AI assistants with access to your Meteor application's performance monitoring data.

Overview

This MCP server exposes Monti APM data through the Model Context Protocol, allowing AI assistants like Claude Desktop to:

  • Retrieve system metrics (RAM, CPU, network, disk usage)
  • Query method execution traces for performance analysis
  • Access application errors and exceptions
  • Execute custom GraphQL queries against the Monti APM API
  • Get application information and configuration

Features

  • šŸ” Secure Authentication: JWT-based authentication with Monti APM API
  • šŸ“Š System Metrics: Real-time performance monitoring data
  • šŸ” Method Tracing: Detailed execution traces for performance debugging
  • 🚨 Error Monitoring: Application errors and exceptions tracking
  • šŸ› ļø Custom Queries: Execute custom GraphQL queries against Monti APM
  • šŸ“ Comprehensive Logging: Structured logging with Winston
  • šŸ”„ Resource Caching: Efficient data retrieval with smart caching

Prerequisites

  • Node.js 18+
  • Existing Meteor application with Monti APM monitoring configured
  • Monti APM App ID and App Secret credentials

Installation

1. Clone and Install Dependencies

git clone <repository-url>
cd sdui-mcp-monti-apm
npm install

2. Environment Configuration

Copy the example environment file and configure your credentials:

cp .env.example .env

Edit .env with your Monti APM credentials:

# Monti APM Configuration
MONTI_APP_ID=your_app_id_here
MONTI_APP_SECRET=your_app_secret_here
MONTI_API_URL=https://api.montiapm.com/core
MONTI_AUTH_URL=https://api.montiapm.com/auth

# Server Configuration  
PORT=4002
NODE_ENV=development

# Logging
LOG_LEVEL=info
LOG_FILE=./logs/mcp-monti.log

3. Build the Project

npm run build

4. Test the Server

npm start

Usage

With Claude Desktop

Add the server to your Claude Desktop configuration file (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "monti-apm": {
      "command": "node",
      "args": ["/path/to/sdui-mcp-monti-apm/dist/index.js"],
      "env": {
        "MONTI_APP_ID": "your_app_id",
        "MONTI_APP_SECRET": "your_app_secret"
      }
    }
  }
}

Available Tools

1. Get System Metrics
getSystemMetrics(metric: 'RAM_USAGE' | 'CPU_USAGE' | 'NETWORK_IN' | 'NETWORK_OUT' | 'DISK_USAGE')

Retrieve system performance metrics with optional filtering by host and time range.

2. Get Method Traces
getMethodTraces(options?: { minDuration, maxDuration, host, userId, limit, since, until })

Analyze method execution traces to identify performance bottlenecks.

3. Get Application Errors
getErrors(options?: { limit, since, until, host, resolved })

Retrieve application errors and exceptions for debugging.

4. Run Custom Query
runMontiQuery(query: string, variables?: object)

Execute custom GraphQL queries against the Monti APM API.

5. Get App Info
getAppInfo()

Retrieve basic information about your monitored application.

6. Get Available Hosts
getAvailableHosts()

List all monitored hosts to identify development vs production deployments.

Host Filtering for Multi-Environment Monitoring

This MCP server supports filtering data by deployment host, perfect for separating development and production monitoring:

// List available hosts
getAvailableHosts()
// Returns: Development hosts (e.g., "MBPvonJMichael2.pioneers") and Production hosts

// Development environment monitoring
getSystemMetrics({host: "MBPvonJMichael2.pioneers", metric: "RAM_USAGE"})
getMethodTraces({host: "MBPvonJMichael2.pioneers", limit: 20})
getErrors({host: "MBPvonJMichael2.pioneers", limit: 10})

// Production environment monitoring
getSystemMetrics({host: "plaiground01-plAIground", metric: "RAM_USAGE"})
getMethodTraces({host: "plaiground01-plAIground", limit: 20})
getErrors({host: "plaiground01-plAIground", limit: 10})

// Compare CPU usage across environments
getSystemMetrics({host: "MBPvonJMichael2.pioneers", metric: "CPU_USAGE"})      // Dev
getSystemMetrics({host: "plaiground01-plAIground", metric: "CPU_USAGE"})       // Prod

Available Resources

  • monti://metric/{metric_type} - Access cached metric data
  • monti://trace/{trace_id} - Individual method trace details
  • monti://error/{error_id} - Specific error details
  • monti://app - Application information

Development

Scripts

# Development with hot reload
npm run dev

# Build for production
npm run build

# Start production server
npm start

# Lint code
npm run lint

# Format code
npm run format

Project Structure

src/
ā”œā”€ā”€ lib/
│   ā”œā”€ā”€ logger.ts          # Winston logging configuration
│   ā”œā”€ā”€ montiAuth.ts       # JWT authentication with Monti APM

Tools (6)

getSystemMetricsRetrieve system performance metrics with optional filtering by host and time range.
getMethodTracesAnalyze method execution traces to identify performance bottlenecks.
getErrorsRetrieve application errors and exceptions for debugging.
runMontiQueryExecute custom GraphQL queries against the Monti APM API.
getAppInfoRetrieve basic information about your monitored application.
getAvailableHostsList all monitored hosts to identify development vs production deployments.

Environment Variables

MONTI_APP_IDrequiredYour Monti APM Application ID
MONTI_APP_SECRETrequiredYour Monti APM Application Secret
MONTI_API_URLMonti APM API endpoint
MONTI_AUTH_URLMonti APM Auth endpoint

Configuration

claude_desktop_config.json
{"mcpServers": {"monti-apm": {"command": "node", "args": ["/path/to/sdui-mcp-monti-apm/dist/index.js"], "env": {"MONTI_APP_ID": "your_app_id", "MONTI_APP_SECRET": "your_app_secret"}}}}

Try it

→What is the current CPU usage on my production host?
→Show me the last 10 application errors from the development environment.
→Analyze method execution traces for the last hour to find performance bottlenecks.
→List all available hosts currently being monitored by Monti APM.

Frequently Asked Questions

What are the key features of Monti APM?

Real-time system metrics retrieval including RAM, CPU, and disk usage. Detailed method execution tracing for performance debugging. Application error and exception tracking. Support for custom GraphQL queries against Monti APM API. Host-based filtering for multi-environment monitoring.

What can I use Monti APM for?

Debugging performance bottlenecks in Meteor applications using AI-assisted trace analysis. Monitoring system health across different deployment environments like dev and prod. Automating error reporting and investigation for production Meteor apps. Comparing performance metrics across different server hosts.

How do I install Monti APM?

Install Monti APM by running: git clone <repository-url> && cd sdui-mcp-monti-apm && npm install && npm run build

What MCP clients work with Monti APM?

Monti APM works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Monti APM docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare