Deterministic code security scanner — 14 languages, CWE/OWASP mapped, runs entirely on your machine.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Documented (README)
git clone https://github.com/Toraastrta/sphior-code{
"mcpServers": {
"sphior-code": {
"command": "node",
"args": ["/path/to/sphior-code/dist/index.js"]
}
}
}MCP Servers overview
# SPHIOR CODE
Deterministic secrets and insecure-pattern (CWE) detection for **VS Code**, **JetBrains IDEs**, the
command line, and CI — running entirely on your machine.
**No AI. No source upload. No telemetry.** The same input always produces the same findings.
[](https://marketplace.visualstudio.com/items?itemName=sphior.sphior-code)
[](https://open-vsx.org/extension/sphior/sphior-code)
[](LICENSE)
---
## Why this exists
Most code scanners either ship your source to a server, or ask a language model what it thinks.
Both make results hard to trust: you cannot reproduce them, and you cannot explain them to an
auditor.
This one is **deterministic**. Every finding comes from a rule with a stable id, a CWE mapping, and
a fingerprint derived from the code itself. Run it twice, get the same answer. Run it on someone
else's machine, get the same answer.
## What it finds
- **Hard-coded secrets** — provider signatures plus entropy checks, across 36 rules
(AWS, GCP, GitHub, Stripe, Slack, OpenAI, Anthropic, …). Only masked previews are ever emitted;
raw values never leave the process.
- **Insecure code patterns mapped to CWE** — 83 rules covering command injection, `eval`,
XSS sinks, disabled TLS verification, weak crypto, unsafe deserialization, path traversal,
SSRF, and more.
- **Data-flow (taint) analysis for JavaScript/TypeScript** — tracks untrusted input from source
to sink, so `db.query("… " + req.query.id)` is reported as SQL injection rather than a generic
string-concatenation warning.
### Languages
JavaScript, TypeScript (+ JSX/TSX), Python, Go, PHP, Ruby, Java, C#, Rust, Kotlin, C, C++,
Scala, Swift — **14 languages**, parsed with real grammars (tree-sitter), not regex alone.
Regex rules are used only where a parser adds nothing. When a language has an AST backend,
the parser-based results take precedence and the regex equivalents are suppressed, which keeps
false positives down.
## Repository layout
```
packages/
├── sphior-scan/ Detection engine + language server + CLI (@sphior/scan)
│ ├── src/engine/ rules, taint analysis, evidence records, SARIF output
│ ├── src/*-ast.ts tree-sitter backends, registered at runtime per language
│ └── src/lsp/ Language Server Protocol implementation
├── sphior-vscode/ VS Code extension (bundles the language server)
├── sphior-jetbrains/ JetBrains plugin (LSP4IJ + the same language server)
└── code-mcp/ MCP server, surfaces findings to AI coding assistants
```
**One engine, many surfaces.** The editor, the CLI and CI all execute the identical detection
code — there is no "editor version" that behaves differently from the CI version.
## Build from source
Requires Node.js 18+.
```bash
# 1. engine + language server + CLI
cd packages/sphior-scan && npm install && npm run build
# 2a. VS Code extension (bundles the server produced above)
cd ../sphior-vscode && npm install && npm run build
# 2b. JetBrains plugin (requires JDK 21)
cd ../sphior-jetbrains && ./gradlew buildPlugin
```
The Gradle build syncs the language server produced in step 1 before packaging, so there
is no copy step to remember — it fails rather than bundling a stale server.
### Try the CLI
```bash
node packages/sphior-scan/dist/cli.js run ./your-project --json findings.json
```
```
SPHIOR CODE: 4 findings (critical=1 high=3 medium=0 low=0) engine=0.1.0 ruleset=2026.07.12-22
```
SARIF output (`--sarif out.sarif`) is accepted by GitHub code scanning and most CI dashboards.
## Privacy
The extensions bundle the language server and start it as a local process. There is no network
client in the shipped engine — no telemetry, no analytics, no phone-home. You can verify this:
search this repository for `fetch(`, or inspect the bundled `server.cjs` in a published artifact.
Secret values are never stored or transmitted. Findings carry a masked preview
(`AKI…TY`) and a SHA-256 of the surrounding snippet, never the secret itself.
## Evidence records
`packages/sphior-scan/src/engine/evidence` implements the tamper-evident side: canonical JSON
(RFC 8785), SHA-256 fingerprints, a per-tenant hash chain, and Merkle roots for batch anchoring.
This is what lets a scan result be verified later by someone who does not trust the party that
produced it.
The verification logic is here in the open on purpose — evidence that only its author can check
is not evidence.
## Related
- [SPHIOR](https://sphior.com) — the hosted service this engine also powers
- [`sphior-code-mcp`](https://www.npmjs.com/package/sphior-code-mcp) on npm
## License
MIT — see [LICENSE](LICENSE).
What people ask about sphior-code
What is Toraastrta/sphior-code?
+
Toraastrta/sphior-code is mcp servers for the Claude AI ecosystem. Deterministic code security scanner — 14 languages, CWE/OWASP mapped, runs entirely on your machine. It has 1 GitHub stars and its last recorded update is dated 2026-10-19.
How do I install sphior-code?
+
You can install sphior-code by cloning the repository (https://github.com/Toraastrta/sphior-code) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is Toraastrta/sphior-code safe to use?
+
Our security agent has analyzed Toraastrta/sphior-code and assigned a Trust Score of 87/100 (tier: Trusted). See the full breakdown of passed checks and flags on this page.
Who maintains Toraastrta/sphior-code?
+
Toraastrta/sphior-code is maintained by Toraastrta. The last recorded GitHub activity is dated 2026-10-19, with 0 open issues.
Are there alternatives to sphior-code?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy sphior-code to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/toraastrta-sphior-code)<a href="https://claudewave.com/repo/toraastrta-sphior-code"><img src="https://claudewave.com/api/badge/toraastrta-sphior-code" alt="Featured on ClaudeWave: Toraastrta/sphior-code" width="320" height="64" /></a>More MCP Servers
Reverse engineer anything with agents, from app behavior down to native binaries.
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ A Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev