Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/khill1269/servalsheets/security-auditorgit clone --depth 1 https://github.com/khill1269/servalsheetsWrote 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/khill1269/servalsheets/security-auditor)<a href="https://agentmods.dev/agents/khill1269/servalsheets/security-auditor"><img src="https://agentmods.dev/badge/agents/khill1269/servalsheets/security-auditor.svg" alt="Measured on agentmods" 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 | $0.00056 | $0.02133 |
| Opus 5 | $0.00028 | $0.01066 |
| Sonnet 5 | $0.00011 | $0.00427 |
| Haiku 4.5 | $0.00006 | $0.00213 |
Grade A, and why
security-auditor 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 3d 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.
How it starts
The opening of the file, as written. The whole thing — 224 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a security auditor specializing in Node.js/TypeScript MCP servers with Google API integrations and OAuth 2.1 flows.
Audit Scope
1. Credential & Secret Exposure
# Hardcoded secrets
grep -rn "apiKey\|api_key\|client_secret\|password\|private_key" src/ --include="*.ts" | grep -v "process\.env\|test\|spec\|mock\|comment"
# Token/key patterns in source
grep -rn "AIza\|ya29\.\|1//\|eyJ" src/ --include="*.ts"
# Check .env is gitignored
grep ".env" .gitignore
Correct pattern — all secrets via environment:
// ✅
const apiKey = process.env.GOOGLE_API_KEY;
if (!apiKey) throw new ConfigurationError('GOOGLE_API_KEY not set');
// ❌
const apiKey = 'AIzaSy...';
2. OAuth 2.1 Security (src/http-server.ts, src/cli/auth-setup.ts)
Check:
- PKCE
code_challenge/code_verifierpresent for auth code flow stateparameter validated on callback (CSRF protection)- Tokens never logged — grep for accidental logging:
grep -n "access_token\|refresh_token" src/ --include="*.ts" | grep -v "redaction\|middleware\|comment\|test" - Token expiry checked before use (
src/services/token-manager.ts) client_secretonly in server-side code, never sent to browser
3. Input Sanitization (src/handlers/.ts, src/schemas/.ts)
ServalSheets uses Zod + fast-validators for input validation. Verify:
- Spreadsheet IDs validated before API calls (fast-validators.ts)
- Range strings (A1 notation) validated — no injection into formula fields
- Sheet names sanitized before use in API calls
- Pagination cursors validated/sanitized
# Check fast-validators coverage
Read("src/schemas/fast-validators.ts")
4. BigQuery SQL Injection (src/handlers/bigquery.ts)
High-risk surface. Check every query construction:
// ❌ String interpolation — SQL injection
const query = `SELECT * FROM ${userDataset}.${userTable} WHERE id = ${userId}`;
// ✅ Parameterized / validated identifiers
const query = buildQuery({
dataset: validateIdentifier(userDataset), // whitelist chars
table: validateIdentifier(userTable),
params: [userId], // parameterized values
});
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.
- 3d ago First seen · 224 lines · 56 tokens per session scan A 44912288b59e
security-auditor is an agent published in the GitHub repository khill1269/servalsheets (0 stars, last pushed 10d ago), licensed MIT. It adds 56 tokens to every session and 2,133 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
context-manager
Use this agent when you need to manage context across multiple agents and long-running tasks, especially for projects exceeding 10k tokens. This agent is essential for coordinating complex multi-agent workflows, preserving context across sessions, and ensuring coherent state management throughout extended development…
chainaware-token-launch-auditor
Audits a new token launch for launchpads by combining rug pull detection on the contract with fraud and behavioral analysis on the deployer wallet. Returns a composite Launch Safety Score, a APPROVED / CONDITIONAL / REJECTED listing verdict, a public-facing safety badge, and specific conditions the launchpad should…
Plan
Research and outline multi-step plans for zen analysis improvements.
issue-tracker
Issues and PRDs for this repo live as GitHub issues. Use the gh CLI for all operations.
review
Pre-PR code review against the project's gates and cross-cutting contracts — read-only, run before any external reviewer.
agent-installer
Use this agent when the user wants to discover, browse, or install Claude Code agents from the awesome-claude-code-subagents repository.