Skip to main content
Glama
MuhammadRaza-dev713

Smart Conversion Debugging MCP Server

README.md
# Smart Conversion Debugging MCP Server

An MCP server that helps debug conversion tracking issues across GoHighLevel, Meta CAPI, webhooks, and GTM.

## Quick Start

```bash
# Install dependencies
npm install

# Test tools locally
node test.js

# Run interactive CLI agent
node agent.js

# Start MCP server (for AI client connections)
node index.js
```

## Available Tools

| Tool | Description |
|------|-------------|
| `getWebhookEvents` | Returns stored webhook events |
| `getGHLContacts` | Fetch contacts from GoHighLevel |
| `getMetaEvents` | Returns Meta CAPI tracked events |
| `getGTMEvents` | Returns frontend GTM events |
| `getSystemLogs` | Returns error logs |
| `debugConversion` | Full analysis with issues + fixes |

---

## Connecting to MCP Clients

### 1. Claude Desktop

Edit your Claude Desktop config file:

**Windows:** `%APPDATA%\Claude\claude_desktop_config.json`

**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`

```json
{
  "mcpServers": {
    "conversion-debugger": {
      "command": "node",
      "args": ["D:/first mcp server/index.js"],
      "env": {
        "USE_MOCK_DATA": "true"
      }
    }
  }
}
```

Restart Claude Desktop after saving. You'll see the tools available in the chat.

---

### 2. VS Code with GitHub Copilot

Add to your VS Code `settings.json` or workspace settings:

```json
{
  "github.copilot.chat.mcpServers": {
    "conversion-debugger": {
      "command": "node",
      "args": ["D:/first mcp server/index.js"],
      "env": {
        "USE_MOCK_DATA": "true"
      }
    }
  }
}
```

Or create `.vscode/mcp.json` in your workspace:

```json
{
  "servers": {
    "conversion-debugger": {
      "command": "node",
      "args": ["${workspaceFolder}/index.js"],
      "env": {
        "USE_MOCK_DATA": "true"
      }
    }
  }
}
```

---

### 3. Cursor IDE

Add to Cursor settings (`~/.cursor/mcp.json` or project `.cursor/mcp.json`):

```json
{
  "mcpServers": {
    "conversion-debugger": {
      "command": "node",
      "args": ["D:/first mcp server/index.js"],
      "env": {
        "USE_MOCK_DATA": "true"
      }
    }
  }
}
```

---

### 4. Continue.dev

Add to your Continue config (`~/.continue/config.json`):

```json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "node",
          "args": ["D:/first mcp server/index.js"]
        }
      }
    ]
  }
}
```

---

### 5. Custom MCP Client (Node.js)

```javascript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
import { spawn } from "child_process";

const transport = new StdioClientTransport({
  command: "node",
  args: ["D:/first mcp server/index.js"],
});

const client = new Client({ name: "my-client", version: "1.0.0" });
await client.connect(transport);

// List available tools
const tools = await client.listTools();
console.log(tools);

// Call a tool
const result = await client.callTool({
  name: "debugConversion",
  arguments: {},
});
console.log(result);

await client.close();
```

---

## Environment Variables

Copy `.env.example` to `.env` and configure:

```bash
# Use mock data (set to false for live API calls)
USE_MOCK_DATA=true

# GoHighLevel
GHL_API_KEY=your_api_key
GHL_LOCATION_ID=your_location_id

# Meta CAPI
META_ACCESS_TOKEN=your_access_token
META_PIXEL_ID=your_pixel_id
```

---

## Example AI Prompts

Once connected to an MCP client, try these prompts:

1. **"Debug my conversion tracking"**
   - The AI will call `debugConversion` and explain the issues

2. **"Show me all GHL contacts from today"**
   - Calls `getGHLContacts` with date filters

3. **"Compare webhook events with Meta events"**
   - Calls multiple tools and cross-references data

4. **"Why are some conversions not reaching Meta?"**
   - Full debugging workflow with root cause analysis

---

## Project Structure

```
first mcp server/
├── index.js              # MCP server entry point
├── agent.js              # Interactive CLI agent
├── test.js               # Tool testing script
├── package.json
├── .env.example
├── config/
│   └── env.js            # Environment configuration
├── clients/
│   ├── httpClient.js     # HTTP utilities
│   ├── ghlClient.js      # GoHighLevel API client
│   └── metaClient.js     # Meta CAPI client
├── data/
│   ├── mockData.js       # Mock data for testing
│   └── dataProvider.js   # Live/mock data switching
└── tools/
    ├── utils.js
    ├── getWebhookEvents.js
    ├── getGHLContacts.js
    ├── getMetaEvents.js
    ├── getGTMEvents.js
    ├── getSystemLogs.js
    └── debugConversion.js
```