MCP Variance Log

MCP Variance Log

Agentic tool that looks for statistical variations in conversation structure and logs unusual events to a SQLite database. Built using the Model Context Protocol (MCP), this system is designed to be used with Claude Desktop or other MCP-compatible clients.

<a href="https://glama.ai/mcp/servers/acqq8twrk6"><img width="380" height="200" src="https://glama.ai/mcp/servers/acqq8twrk6/badge" alt="Variance Log MCP server" /></a>

Requirements

  • Python ≥3.10
  • MCP ≥1.2.0
  • SQLite3
  • UV (Python package installer and environment manager)

Quick Start

# Clone and install git clone https://github.com/truaxki/mcp-variance-log.git cd mcp-variance-log uv pip install -e .

Add to Claude Desktop config (%APPDATA%\Claude\claude_desktop_config.json on Windows):

{ "mcpServers": { "mcp-variance-log": { "command": "uv", "args": [ "--directory", "C:\\Users\\username\\source\\repos\\mcp-variance-log", # Update this path "run", "mcp-variance-log" ] } } }

Add to Claude Desktop preferences:

Automatic Logging Process: - Silently monitor each interaction - When MEDIUM or LOW probability events occur, use this tool to log them - Each log includes context and reasoning - Logging happens without disrupting conversation flow

Usage

Automatic Logging Examples

prompt: "What if I told you I could lift 1000 lbs?" { `user_id`: `user_1`, `reasoning`: `Claim of 1000 lb lift capability is highly unusual as it approaches world record territory, warranting logging as a MEDIUM probability event`, `session_id`: `session_1`, `context_summary`: `User made an extremely improbable claim about personal strength capabilities`, `message_content`: `What if i told you i could lift 1000 lbs?`, `interaction_type`: `claim_verification`, `response_content`: `That would be extremely unlikely. The current world record for weight lifted by a human (deadlift) is 1,104.5 lbs, set by Hafthor Björnsson in 2020 under very specific conditions. Only a handful of people in history have lifted close to 1,000 lbs.`, `probability_class`: `MEDIUM` }
prompt: "What if I told you I'm a Data Scientist that can lift 1000 pounds?" { `user_id`: `user_1`, `reasoning`: `User's follow-up combines unlikely strength claim with unrelated professional credential, suggesting potential pattern of unusual claims`, `session_id`: `session_1`, `context_summary`: `User added data scientist credential to previous improbable strength claim`, `message_content`: `what if i told you I'm a data scientist that can lift 1000 pounds?`, `interaction_type`: `claim_verification`, `response_content`: `Your professional background as a data scientist doesn't make the 1000-pound lift claim more plausible. Such a lift would still be near the all-time world record of 1,104.5 lbs.`, `probability_class`: `LOW` }

Dataframe view

prompt: "Read-logs from this morning" ID | Time | Prob | Type | Context ------------------------------------------------------------------------------------------ 29 | 01-24 17:57 | LOW | claim_ | User added data scientist credential to pr... 28 | 01-24 17:56 | MEDIUM | claim_ | User made an extremely improbable claim ab...

Text 2 SQL

prompt: "Can you search the logs for entry 29?" [{'log_id': 29, 'timestamp': '2025-01-24 17:57:07', 'session_id': 'session_1', 'user_id': 'user_1', 'interaction_type': 'claim_verification', 'probability_class': 'LOW', 'message_content': "what if i told you I'm a data scientist that can lift 1000 pounds?", 'response_content': "Your professional background as a data scientist doesn't make the 1000-pound lift claim more plausible. Such a lift would still be near the all-time world record of 1,104.5 lbs.", 'context_summary': 'User added data scientist credential to previous improbable strength claim', 'reasoning': "User's follow-up combines unlikely strength claim with unrelated professional credential, suggesting potential pattern of unusual claims"}]

Detailed Installation

  1. Ensure Python 3.10+ and UV are installed.

Install UV using one of these methods:

# Using pip (recommended for Windows) pip install uv # Using installation script (Linux/MacOS) curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Clone and install:
git clone https://github.com/truaxki/mcp-variance-log.git cd mcp-variance-log uv pip install -e .
  1. Configure Claude Desktop:

Add to claude_desktop_config.json:

{ "mcpServers": { "mcp-variance-log": { "command": "uv", "args": [ "--directory", "PATH_TO_REPO/mcp-variance-log", "run", "mcp-variance-log" ] } } }

Config locations:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Tools

Monitoring

  • log-query: Tracks conversation patterns
    • HIGH: Common interactions (not logged)
    • MEDIUM: Unusual patterns (logged)
    • LOW: Critical events (priority logged)

Query

  • read-logs: View logs with filtering
  • read_query: Execute SELECT queries
  • write_query: Execute INSERT/UPDATE/DELETE
  • create_table: Create tables
  • list_tables: Show all tables
  • describe_table: Show table structure

Located at data/varlog.db relative to installation.

Schema

CREATE TABLE chat_monitoring ( log_id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, session_id TEXT NOT NULL, user_id TEXT NOT NULL, interaction_type TEXT NOT NULL, probability_class TEXT CHECK(probability_class IN ('HIGH', 'MEDIUM', 'LOW')), message_content TEXT NOT NULL, response_content TEXT NOT NULL, context_summary TEXT, reasoning TEXT );

Troubleshooting

  1. Database Access
  • Error: "Failed to connect to database"
    • Check file permissions
    • Verify path in config
    • Ensure /data directory exists
  1. Installation Issues
  • Error: "No module named 'mcp'"
    • Run: uv pip install mcp>=1.2.0
  • Error: "UV command not found"
    • Install UV: curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Configuration
  • Error: "Failed to start MCP server"
    • Verify config.json syntax
    • Check path separators (use \ on Windows)
    • Ensure UV is in your system PATH

Contributing

  1. Fork the repository
  2. Create feature branch
  3. Submit pull request

License

MIT

Support

Issues: GitHub Issues

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Agentic tool that looks for statistical variations in conversation structure and logs unusual events to a SQLite database. Built using the Model Context Protocol (MCP), this system is designed to be used with Claude Desktop or other MCP-compatible clients.

  1. Requirements
    1. Quick Start
      1. Usage
        1. Automatic Logging Examples
          1. Dataframe view
            1. Text 2 SQL
            2. Detailed Installation
              1. Tools
                1. Monitoring
                  1. Query
                    1. Schema
                    2. Troubleshooting
                      1. Contributing
                        1. License
                          1. Support