Logging and diagnostics
These control local diagnostic output, not tool permissions or drawing saves. Configure them in the server launch environment, then restart safely.
Supported settings
| Variable | Default | Accepted values and effect |
|---|---|---|
VISIO_MCP_LOCAL_LOG_ENABLED |
Enabled | Trimmed 0, false, or off, case-insensitive, disables disk logging; other values keep it enabled |
The log level and the size limit for logged tool arguments are built into the server; environment variables can’t change them. Tool arguments in logs remain redacted.
Logs roll over to a new file each day. The server doesn’t delete old log files, so review and remove them when you no longer need them.
Fixed locations
| Files | Location |
|---|---|
| Daily logs | %LOCALAPPDATA%\VisioMcp\logs\visio-mcp-YYYY-MM-DD.log |
| Stencil snapshot/usage | %LOCALAPPDATA%\VisioMcp\stencil-cache\index.json and usage.json |
| Master-search SQLite database | %LOCALAPPDATA%\VisioMcp\sqlite_index\masters_corpus_v3.db |
VISIO_MCP_ROOT doesn’t move these files. Published CLI launch settings don’t
expose their paths as directory/database overrides.
The server also logs to stderr, keeping stdout for MCP protocol messages. Disabling file logging doesn’t disable stderr; inspect the client’s server output for startup errors.
Local output versus remote telemetry
Disk logging, stderr, local usage ranking, and remote operational diagnostics are separate. Use supported Office diagnostic-data controls and your organization’s policy.
Required-tier diagnostic eligibility isn’t proof of emission: Office permission, build/configured routing, and successful sink initialization also matter. See Privacy and control.
Review/redact logs before sharing. Don’t post drawings, private paths, raw arguments, or confidential content publicly. Use the safe issue-report checklist.
Related: Troubleshooting | Runtime settings.