Smart Conversion Debugging MCP Server
An MCP server that helps debug conversion tracking issues across GoHighLevel, Meta CAPI, webhooks, and GTM.
Quick Start
# 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
{
"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:
{
"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:
{
"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):
{
"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):
{
"experimental": {
"modelContextProtocolServers": [
{
"transport": {
"type": "stdio",
"command": "node",
"args": ["D:/first mcp server/index.js"]
}
}
]
}
}
---
5. Custom MCP Client (Node.js)
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:
# 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:
- "Debug my conversion tracking"
- The AI will call
debugConversionand explain the issues
- "Show me all GHL contacts from today"
- Calls
getGHLContactswith date filters
- "Compare webhook events with Meta events"
- Calls multiple tools and cross-references data
- "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










