Monitor any MCP server with Logpane. No code changes required.
lpx sits between the MCP client and server, intercepting JSON-RPC traffic to capture tool call analytics, errors, and session data. It works with any MCP server regardless of language or framework.
Requires Go 1.21+.
go build -o lpx ./cmd/lpxLinux (x86_64):
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o lpx-linux-amd64 ./cmd/lpxmacOS (Apple Silicon):
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o lpx-darwin-arm64 ./cmd/lpxWindows (x86_64):
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o lpx-windows-amd64.exe ./cmd/lpxCGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o dist/lpx-linux-amd64 ./cmd/lpx
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o dist/lpx-darwin-arm64 ./cmd/lpx
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o dist/lpx-windows-amd64.exe ./cmd/lpxWraps any MCP server command. Use this for servers that communicate over stdin/stdout.
lpx --key YOUR_API_KEY -- node my-server.js
lpx --key YOUR_API_KEY -- python server.py
lpx --key YOUR_API_KEY -- ./my-mcp-binaryMCP client config:
{
"mcpServers": {
"my-server": {
"command": "lpx",
"args": ["--key", "YOUR_API_KEY", "--", "node", "my-server.js"]
}
}
}Reverse proxies an SSE-based MCP server. Use this for servers that communicate over HTTP/SSE.
lpx --key YOUR_API_KEY --proxy http://localhost:8081 --port 9090MCP client config:
{
"mcpServers": {
"my-server": {
"type": "sse",
"url": "http://localhost:9090/sse"
}
}
}| Flag | Description | Default |
|---|---|---|
--key |
Logpane API key (required, or set LOGPANE_API_KEY env var) |
|
--endpoint |
Logpane API endpoint | https://api.logpane.dev |
--proxy |
SSE proxy mode: target MCP server URL | |
--port |
SSE proxy mode: local port to listen on | 9090 |
--name |
MCP server name (auto-detected from command if not set) | |
--version |
Print version and exit |
- Tool calls -- tool name, duration, success/failure
- Errors -- JSON-RPC error code and message
- Sessions -- start and end events
All events are sent to the Logpane API in the background. If Logpane is unreachable, the MCP server continues to work normally.
go test ./... -v