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
```
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues