- Reliability 8/20
- The repository describes a tiered test suite (unit/integration/API/e2e/system under tests/), Makefile targets such as make test-unit and make test-integration, and testcontainers-based real Elasticsearch tests. The server manifest consistently declares the pypi package crowdsentinel-mcp-server 0.6.0 with stdio transport, matching the README's claims of 139 tools, 9 resources, and 4 transport modes. However, this static review only has the README and manifest: no actual CI workflow files, committed test code, or test logs were supplied, so execution cannot be verified. Reliability is therefore capped and deducted. The package is also large (~113 MB) with tool registration depending on optional components (Velociraptor, osquery, tshark, Chainsaw), adding uncertainty about whether the declared tool count matches real runtime behavior. Deductions: no verifiable execution evidence and thin error-path evidence. Score: 8.
- Security and permissions 12/20
- Credential handling appears sound on paper: the manifest supports API key, username/password, and bearer token with the secret fields correctly marked isSecret, and the README install examples contain no real tokens. High-risk write tools are hidden when DISABLE_HIGH_RISK_OPERATIONS=true (create_index, delete_index, index_document, delete_by_query, etc.), and the HTTP transports claim Origin validation (anti DNS-rebinding) plus transport-level audit logging. However, the quick-start examples default to VERIFY_CERTS=false, disabling TLS certificate verification, and destructive operations are available unless the user sets an environment variable. Since only the README and manifest were reviewed, none of these safeguards could be verified at the code level. No malware, credential theft, or covert exfiltration patterns were identified in the supplied materials, and no red-line condition was clearly triggered. Deductions for permissive defaults and unverifiable security controls. Score: 12.
- Maintenance 13/20
- Evidence of maintenance includes a clear license (GPL-3.0), a released version (0.6.0), a published PyPI package, detailed README and CHANGELOG references, an un-archived repository, and only 1 open issue. These indicate an active project with a defined ownership and licensing path. The static materials do not show commit history, release tags, dependency-update cadence, or issue-response behavior, so sustained governance cannot be fully verified. Score 13 reflects the verifiable license, versioning, and release channel, with deductions for unverifiable ongoing maintenance activity.
- Documentation 12/20
- The README is extensive: quick start, installation via pip/uv/uvx/source, per-client configuration examples for Claude Code, Claude Desktop, VS Code, Cursor, Roo Code, 5ire, and generic MCP clients, environment variable tables with production security warnings, tool categories, transport modes, CLI commands, and a doctor command for readiness troubleshooting. The documentation is layered and provides concrete examples. However, key numbers are self-reported and not statically verifiable (139 tools, 6,060 rules, 8GB FIFO, 9 resources), and there is no authoritative per-tool parameter reference or separate troubleshooting/limits section in the supplied materials. Deductions for reliance on untrusted README claims and missing cross-checkable parameter and limitation evidence. Score: 12.
- Setup experience 14/20
- Setup paths are clear and multi-layered: PyPI via pip/uv/uvx, source via setup.sh, with ready-to-use JSON/command examples for Claude Code, Claude Desktop, VS Code, Cursor, Roo Code, 5ire, and generic MCP clients, plus a crowdsentinel doctor command for offline readiness checks. The documented path from environment variables to a working connection is concrete and includes stdio, SSE, and HTTP variants. Deductions: no verifiable CI installation evidence was provided, and the full-featured setup requires extra system dependencies (tshark) plus optional Velociraptor/osquery integrations, so real-world full setup is heavier than the quick start implies. Static calibration caps setup at 15; final score: 14.