Mcplogview — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcplogview (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
General MCP logviewer server for exposing configured log files as MCP tools.
Copy config/log-sources.example.json to config/log-sources.json and edit paths.
{
"transport": {
"mode": "stdio",
"host": "127.0.0.1",
"port": 3333,
"path": "/mcp"
},
"logging": {
"enabled": true,
"path": "scripts/logs/mcplogview-server.log",
"selfSourceId": "mcplogview-self",
"selfSourceLabel": "MCP Server Self Log"
},
"skillsDir": "config/log-skills",
"sources": [
{ "type": "local", "id": "app", "label": "App", "path": "/absolute/path/to/app.log", "hint": "Start here for API errors" },
{
"type": "ssh",
"id": "prod-api",
"label": "Prod API",
"host": "10.0.0.12",
"port": 22,
"user": "ubuntu",
"identityFile": "/Users/you/.ssh/id_ed25519",
"strictHostKeyChecking": false,
"path": "/var/log/myapp/api.log"
}
]
}Transport modes:
stdio (default): MCP over stdin/stdouthttp: Streamable HTTP endpoint (http://host:port/path)https-dev: Streamable HTTPS endpoint with runtime-generated self-signed cert (or custom key/cert from config)Logging:
logging.path when logging.enabled=true.mcplogview-self).logging.enabled=false, self-source is not auto-injected.500 issues.npm install
npm run build
LOG_SOURCES_CONFIG=config/log-sources.json npm run devIf LOG_SOURCES_CONFIG is not set, default path is config/log-sources.json.
BatchMode=yes).identityFile is used automatically from config.strictHostKeyChecking defaults to false for debug/dev convenience; set true if needed.Add the server command in your MCP client configuration:
{
"command": "node",
"args": ["/absolute/path/to/mcplogview/dist/src/cli.js"],
"env": { "LOG_SOURCES_CONFIG": "/absolute/path/to/mcplogview/config/log-sources.json" }
}list_logs: Lists available configured logs, with optional hint.get_log_skill: Returns usage skill (structured + renderedMarkdown) for a log source.read_log_chunk: Returns lines and next cursor.follow_log: Polls for new lines until timeout.Recommended flow for agents:
list_logsget_log_skill for selected sourceIdread_log_chunk / follow_logOptional file-based skill per source:
config/log-skills/<sourceId>.mdFormat:
---
name: app-log
sourceId: app
version: 1
hint: Inspect this first for backend errors
tags: [api, backend, errors]
---
# App log guidance
Use this source during API incident triage.Notes:
mcplogview-self skill is built-in (server debug guidance), not loaded from file.get_log_skill returns a fallback skill with warnings.When transport.mode is https-dev, mcplogview serves MCP over HTTPS. It uses custom key/cert files from config when provided, and falls back to runtime self-signed certificate generation when files are missing or invalid.
Provide your own key and cert paths in the transport config:
{
"transport": {
"mode": "https-dev",
"host": "127.0.0.1",
"port": 3333,
"path": "/mcp",
"httpsKey": "config/certs/key.pem",
"httpsCert": "config/certs/cert.pem"
},
"sources": [
{ "type": "local", "id": "demo", "label": "Demo Log", "path": "/tmp/mcplogview-demo.log" }
]
}When httpsKey/httpsCert are not provided, or when file loading fails, mcplogview generates a self-signed certificate at runtime:
localhostopenssl CLI (requires openssl installed)The generated cert is temporary and recreated on each server restart. To generate your own persistent cert:
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 \
-keyout config/certs/key.pem -out config/certs/cert.pem \
-days 365 -nodes -subj /CN=localhostThen reference them in your config as shown above.
Start server:
LOG_SOURCES_CONFIG=config/log-sources.json npm run devFor clients/Inspector, use endpoint:
https://127.0.0.1:3333/mcpWhen connecting MCP Inspector to an https-dev server:
transport.mode: "https-dev":LOG_SOURCES_CONFIG=config/log-sources.json npm run devNODE_TLS_REJECT_UNAUTHORIZED="0" npx @modelcontextprotocol/inspectorhttps://127.0.0.1:3333/mcpNote: The self-signed cert is only valid for localhost. If you need to connect from another machine, generate a cert with the target hostname or IP as the CN.
./scripts/generate-demo-log.sh /tmp/mcplogview-demo.log 5LOG_SOURCES_CONFIG=config/log-sources.json npm run devlist_logs -> expect configured idsread_log_chunk with { "sourceId": "demo", "cursor": null, "maxLines": 20 }follow_log with { "sourceId": "demo", "cursor": "<cursor from previous call>", "maxLines": 20, "timeoutMs": 7000, "pollIntervalMs": 250 }Prerequisites:
npm install executed in this reponpm run build) or direct TS run (npm run dev)config/log-sources.jsonRecommended (no global install):
npx @modelcontextprotocol/inspectorOptional global install:
npm install -g @modelcontextprotocol/inspector
mcp-inspectorInspector typically opens a local web UI (if not, open the URL shown in terminal, usually http://127.0.0.1:6274).
Stdio mode (default):
LOG_SOURCES_CONFIG=config/log-sources.json npm run devHTTP/HTTPS-dev mode: set "transport.mode" in config (http or https-dev), then start the same command above.
Use the Inspector UI and create a new connection:
stdio:node["/absolute/path/to/mcplogview/dist/src/cli.js"]{ "LOG_SOURCES_CONFIG": "/absolute/path/to/mcplogview/config/log-sources.json" }http:http://127.0.0.1:3333/mcp (or your configured host:port/path)https-dev:https://127.0.0.1:3333/mcplist_logsget_log_skill with selected sourceIdread_log_chunk (first page)follow_log using returned cursorExample payloads:
{ "sourceId": "demo", "cursor": null, "maxLines": 20 }{
"sourceId": "demo",
"cursor": "<cursor from read_log_chunk>",
"maxLines": 20,
"timeoutMs": 7000,
"pollIntervalMs": 250
}500/tool failures: check server self-log (logging.path) and query mcplogview-self.LOG_SOURCES_CONFIG explicitly.Portable build uses Node.js SEA-oriented packaging scripts and produces artifacts in dist/portable.
npm run build
npm run portable:build
npm run portable:verify
npm run portable:checksumsRun with config override:
LOG_SOURCES_CONFIG=config/log-sources.json ./dist/portable/mcplogview-<version>-<platform>Windows example:
$env:LOG_SOURCES_CONFIG='config/log-sources.json'
.\dist\portable\mcplogview-<version>-<platform>.exeRaspberry Pi build from macOS (without building on Pi):
Prerequisites: Docker Desktop (or Docker Engine) must be installed and running, with linux/arm64 platform support enabled (Docker Desktop ships this by default via QEMU).
npm run portable:build:raspiThis runs a linux/arm64 Docker build (node:22-bookworm) and writes Raspberry-compatible artifacts to dist/portable/. The container installs dependencies in its own /work folder, so your host node_modules stays untouched.
If LOG_SOURCES_CONFIG points to a missing file, mcplogview now auto-creates a minimal config with logging.debug=true and self-log source enabled.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.