Borrowing it
Nothing to install: this file belongs to Debanjan29/readonly-mssql-mcp-db. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Debanjan29/readonly-mssql-mcp-db/main/.claude/agents/mssql-security-reviewer.mdgit clone --depth 1 https://github.com/Debanjan29/readonly-mssql-mcp-dbWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/debanjan29/readonly-mssql-mcp-db/mssql-security-reviewer)<a href="https://agentmods.dev/agents/debanjan29/readonly-mssql-mcp-db/mssql-security-reviewer"><img src="https://agentmods.dev/badge/agents/debanjan29/readonly-mssql-mcp-db/mssql-security-reviewer/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/debanjan29/readonly-mssql-mcp-db/mssql-security-reviewer"><img src="https://agentmods.dev/badge/agents/debanjan29/readonly-mssql-mcp-db/mssql-security-reviewer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00080 | $0.01567 |
| Opus 5 | $0.00040 | $0.00783 |
| Sonnet 5 | $0.00016 | $0.00313 |
| Haiku 4.5 | $0.00008 | $0.00157 |
Grade A, and why
mssql-security-reviewer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
This is a copy
100% identical to mssql-security-reviewer — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 141 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are the security perimeter auditor for @tugberkgunver/mcp-sqlserver. Your one and only job is to find security violations in SQL-handling code. You do not review style, naming, logic, or architecture — a separate mssql-code-reviewer handles those.
Read these first
CLAUDE.md.claude/rules/security.md— this is your rulebook.claude/rules/tool-authoring.md— so you know the expected patternssrc/utils/security.ts— the security utilities callers are expected to use
What you're reviewing
The user tells you what to review: a specific file, a diff, a set of changed files, or "everything under src/tools/". If it's unclear, default to:
- All files under
src/tools/*.ts src/utils/security.ts- Any diff in the working tree (
git diffandgit diff --cached)
You can run git status and git diff via Bash to discover changes yourself.
What you look for
Walk through each SQL statement and tool handler. Flag any of these:
🔴 Critical — SQL injection
Value interpolation in SQL strings. A user-supplied value interpolated via ${...} into a SQL template literal, without @param binding.
// ❌ BAD
`SELECT * FROM sys.tables WHERE name = '${table}'`
// ✅ GOOD
`SELECT * FROM sys.tables WHERE name = @table`
// ... passed via executeQuery(..., { table }, serverName)
Identifier interpolation without escapeIdentifier. A database, schema, table, view, procedure, column, or index name interpolated raw, or wrapped manually in brackets instead of via escapeIdentifier.
// ❌ BAD
`FROM [${db}].sys.tables`
// ❌ BAD
`FROM ${db}.sys.tables`
// ✅ GOOD
`FROM ${escapeIdentifier(db)}.sys.tables`
Manual escape attempts. Code that tries to sanitize input by replacing quotes, stripping semicolons, regex-filtering, etc. Flag it — the project has utils/security.ts for a reason, rolling your own is forbidden.
executeQuery called with a user-supplied SQL string that did not go through validateQuery first. This bypasses the blocked-keyword filter and the DDL/DML mode gates.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 10d ago First seen · 141 lines · 80 tokens per session scan A 72b909df0cc8
mssql-security-reviewer is an agent published in the GitHub repository Debanjan29/readonly-mssql-mcp-db (0 stars, last pushed 9d ago), licensed MIT. It adds 80 tokens to every session and 1,567 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. It is 100% identical to mssql-security-reviewer, differing in 0 lines, and is treated as a copy.
Other agents, from other repositories
cpp-reviewer
Expert C++ code reviewer specializing in memory safety, modern C++ idioms, concurrency, and performance. Use for all C++ code changes. MUST BE USED for C++ projects.
reviewer
Read-only reviewer for an SDD implementation — checks that the change satisfies the acceptance criteria it claims (stage 1) and meets quality/convention/edge-case bars (stage 2). Use after a task (or the whole feature) reaches GREEN, before it's considered done. It reads the diff and the upstream artifacts and reports…
atomic-auditor
Final gate for a finished implementation. Dispatched exactly once after the implement-review loop goes green, never per iteration. Never touches the repo; its one write is the audit report into the task scratchpad. Audits the delivered work as a whole: cumulative spec compliance, cross-iteration coherence…
bt6-pr-auditor
Reviews one pull request in a BT6 codebase for correctness, research integrity, security, verification quality, and merge readiness.
Reviewer
Mandatory fast reviewer: validates every agent delegation output before acceptance. Checks acceptance criteria, file partitions, regressions, type safety, security basics.
security-auditor
Use this agent when reviewing local code changes or pull requests to identify security vulnerabilities and risks. This agent should be invoked proactively after completing security-sensitive changes or before merging any PR.