nittim
by nittim.com · remote · no sign-in to list tools · v1.1.0 · published by com.nittim
Production-safety audits for AI-generated code, with a fix for every finding.
15 tools: 11 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things11Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http nittim https://nittim.com/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnpreview_upload
The server marks "preview_upload" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "preview_upload" says "preview": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
15 tools
Changes things 11Claude Code: ask
audit_repoPaid nittim AI audit of a GitHub repository: one structured pass over the highest-signal source; the only tool here that returns scores and a verdict.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Paid nittim AI audit of a GitHub repository: one structured pass over the highest-signal source; the only tool here that returns scores and a verdict. Answers with the audit's id, not the report. `fullScan: true` buys the wider Full Audit tier. NEEDS A KEY: mint one at https://nittim.com/keys. COSTS MONEY in three calls: the first quotes a price and charges nothing; a second with `confirmedCost` set to that exact price returns a one-time link for the ACCOUNT OWNER to confirm — their yes, not the assistant's; a plain third call with the same arguments runs once at that price. A moved price is re-quoted, never charged.DELIVERED AS A BATCH: the report lands Usually within 15 minutes*. * Most reports land within 15 minutes. Worst case, 24 hours.
Annotations the server declares
- title: Audit a GitHub Repository
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
audit_sourcePaid nittim AI audit of source files you post, for a project with no GitHub remote.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Paid nittim AI audit of source files you post, for a project with no GitHub remote. Send SOURCE files, not build output — no node_modules or dist. On nittim's own key this answers with the audit's id; the report lands Usually within 15 minutes*. * Most reports land within 15 minutes. Worst case, 24 hours. On your own key (BYOK Pro) the report comes back in this call instead. Costs 5.14 credits (a paid+subscribed org's included allowance, an unspent Audit, then prepaid credits), always saved as a PRIVATE report. `fullScan: true` buys the wider Full Audit tier. NEEDS A KEY: mint one at https://nittim.com/keys. COSTS MONEY in three calls: the first quotes a price and charges nothing; a second with `confirmedCost` set to that exact price returns a one-time link for the ACCOUNT OWNER to confirm — their yes, not the assistant's; a plain third call with the same arguments runs once at that price. A moved price is re-quoted, never charged.
Annotations the server declares
- title: Audit Posted Source (no GitHub repo required)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
dispute_findingNEEDS A KEY: mint one at https://nittim.com/keys.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it NEEDS A KEY: mint one at https://nittim.com/keys. Records that a finding from a prior audit is wrong (stance:'dispute') or genuinely real (stance:'confirm'), backed by evidence from the repo. Free. A SIGNAL for owner triage — it never changes the audit's scores, verdict or stored report on its own. The finding is identified by its findingKey (from the digest), or by its exact dimension and title.
Annotations the server declares
- title: Dispute or Confirm a Finding
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
estimate_auditPrice an audit before buying one: give a GitHub repository URL, or a manifest of paths and byte sizes — no file content, nothing uploaded — and get the tier (Audit or Full Audit), …No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Price an audit before buying one: give a GitHub repository URL, or a manifest of paths and byte sizes — no file content, nothing uploaded — and get the tier (Audit or Full Audit), the pass count and the exact price. No account or key is needed: it never charges, runs no audit, calls no model and stores nothing. Signed in it also returns your credit balance and whether an unspent Audit covers the run; a guest quote omits both. `fullScan: true` prices Full Audit.
Annotations the server declares
- title: Estimate an Audit's Price — No Upload Required
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
judge_outputRun a cross-vendor judge model over any text you post: code, a document, another model's output, anything.No findings
Why it is in this group
- The description's first verb is "run": a word for a change.
Description, as the server wrote it Run a cross-vendor judge model over any text you post: code, a document, another model's output, anything. Returns findings + rationale ONLY — never a score, never a pass/fail verdict. Costs 5.03 credits. The judge always comes from a different vendor family than whatever produced the content, and the answer says which one ran. `modelUnderTest` names that family. NEEDS A KEY: mint one at https://nittim.com/keys. COSTS MONEY in three calls: the first quotes a price and charges nothing; a second with `confirmedCost` set to that exact price returns a one-time link for the ACCOUNT OWNER to confirm — their yes, not the assistant's; a plain third call with the same arguments runs once at that price. A moved price is re-quoted, never charged.
Annotations the server declares
- title: Judge Arbitrary Output (independent cross-vendor model)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mint_keyFor a client that cannot sign in over OAuth: a short, one-time link to https://nittim.com/keys/claim/<token>.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it For a client that cannot sign in over OAuth: a short, one-time link to https://nittim.com/keys/claim/<token>. Opening it, signed in, mints a real nittim API key and shows it once — the key itself is NEVER returned by this tool or by any other MCP result. The link expires in a few minutes and works exactly once. Free.
Annotations the server declares
- title: Get a One-Time Link to Mint a nittim Key
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
preview_uploadNEEDS A KEY: mint one at https://nittim.com/keys.1 finding
Why it is in this group
- The name "preview_upload" says "preview": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "preview_upload" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "preview_upload" says "preview": a word for reading.
Description, as the server wrote it NEEDS A KEY: mint one at https://nittim.com/keys. Send the paths and sizes of the files you would post — no content leaves your machine to ask this — and get back the list, the byte count, and a link for the account owner to approve it. Free. The approval covers that file list and no other, and a paid audit's own confirmation already covers the file list beside the price, so approving ahead of time is optional.
Annotations the server declares
- title: Preview an Upload Before Any Source Leaves the Machine
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
report_loopNEEDS A KEY: mint one at https://nittim.com/keys.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it NEEDS A KEY: mint one at https://nittim.com/keys. Records anonymised counts from a Nittim Loop the developer has finished and agreed to send: pass numbers, a findings-by-category tally, a fixed count, and whether each pass was clean. Counts only — never a title, file path or snippet. Nothing is charged, and an eligible report can earn a credit reward (rules and caps: see describe_protocol). Reporting the same repo again updates the existing record; the reply says which happened. Results appear at https://nittim.com/loop.
Annotations the server declares
- title: Report a Completed Nittim Loop (opt-in, counts only)
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
run_moduleRun ONE nittim audit module against a GitHub repository, never producing scores or a verdict.No findings
Why it is in this group
- The name "run_module" says "run": a word for a change.
Description, as the server wrote it Run ONE nittim audit module against a GitHub repository, never producing scores or a verdict. The two deterministic modules (secret-scan, dependency-cve) return scanner evidence directly, free, with nothing to confirm. Deep-tier modules make one focused model call, cost 5.03 credits each and follow the protocol below. NEEDS A KEY: mint one at https://nittim.com/keys. COSTS MONEY in three calls: the first quotes a price and charges nothing; a second with `confirmedCost` set to that exact price returns a one-time link for the ACCOUNT OWNER to confirm — their yes, not the assistant's; a plain third call with the same arguments runs once at that price. A moved price is re-quoted, never charged.
Annotations the server declares
- title: Run a Single Audit Module
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
scan_sourceFree nittim look: committed secrets and known CVEs over posted source files.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Free nittim look: committed secrets and known CVEs over posted source files. No account, no key, no nittim credits. Hard evidence only: never scores, never a production verdict. Send SOURCE files, not build output (no node_modules, no dist, no binaries).
Annotations the server declares
- title: Free Scan of Posted Source (no GitHub repo required)
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
verify_fixNEEDS A KEY: mint one at https://nittim.com/keys.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it NEEDS A KEY: mint one at https://nittim.com/keys. Re-checks ONE finding from a finished audit against the repository's current code, or a commit named in the call, and answers fixed, still present, or undetermined — with the reason. It reads only the file that finding cites. Free, capped per day, and it moves no score or verdict: the report keeps recording what was true of the commit it ran on.
Annotations the server declares
- title: Re-check One Finding Against Current Code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 4Claude Code: allow
describe_protocolHow this server works, in full: how a paid call quotes and charges, the two audit tiers, the Nittim Loop and its reward rules and caps, and dispute guidance.No findings
Why it is in this group
- The name "describe_protocol" says "describe": a word for reading.
Description, as the server wrote it How this server works, in full: how a paid call quotes and charges, the two audit tiers, the Nittim Loop and its reward rules and caps, and dispute guidance. Free, no key, no charge, no side effects — it reads static text and calls no model. `section` picks one page; omitted, it returns all of them.
Annotations the server declares
- title: How This Server's Protocol Works
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_auditRetrieve a nittim audit by its UUID, at any stage: the finished markdown digest (verdict, scores, top findings) plus its report link, or — no error, nothing charged — that it is st…No findings
Why it is in this group
- The name "get_audit" says "get": a word for reading.
Description, as the server wrote it Retrieve a nittim audit by its UUID, at any stage: the finished markdown digest (verdict, scores, top findings) plus its report link, or — no error, nothing charged — that it is still running, or why it failed and what happened to the charge. Free. Reading needs the key of the account that owns the audit.
Annotations the server declares
- title: Fetch a Saved Audit
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_loopReturns the current text of nittim's free, tool-agnostic self-review checklist — the same content served at https://nittim.com/selfcheck.md.No findings
Why it is in this group
- The name "get_loop" says "get": a word for reading.
Description, as the server wrote it Returns the current text of nittim's free, tool-agnostic self-review checklist — the same content served at https://nittim.com/selfcheck.md. Reviews a codebase against the public shape of nittim's 13-category Priority Framework, plus a 14th on what the code gives away, and states the procedure for running it as a loop. No arguments. No key, no account and no charge — nothing here is sent anywhere.
Annotations the server declares
- title: Read the Nittim Loop Checklist
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_modulesList every audit module nittim can run: the two deterministic scanners (secret scan + OSV dependency CVE check) and the LLM-reasoned checks.No findings
Why it is in this group
- The name "list_modules" says "list": a word for reading.
Description, as the server wrote it List every audit module nittim can run: the two deterministic scanners (secret scan + OSV dependency CVE check) and the LLM-reasoned checks. Returns each module's key, tier, and a plain-English description of what it checks. Each module's key identifies it for running individually.
Annotations the server declares
- title: List nittim Audit Modules
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http nittim https://nittim.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__nittim__get_audit",
"mcp__nittim__list_modules",
"mcp__nittim__get_loop",
"mcp__nittim__describe_protocol"
],
"ask": [
"mcp__nittim__audit_repo",
"mcp__nittim__audit_source",
"mcp__nittim__scan_source",
"mcp__nittim__estimate_audit",
"mcp__nittim__verify_fix",
"mcp__nittim__mint_key",
"mcp__nittim__run_module",
"mcp__nittim__judge_output",
"mcp__nittim__dispute_finding",
"mcp__nittim__report_loop",
"mcp__nittim__preview_upload"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as nittim. Review it before you use it.