# nittim (remote · nittim.com)

Production-safety audits for AI-generated code, with a fix for every finding.

- Trust score: 86/100 (high trust)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `nittim.com`: 86/100 (this document), [markdown](https://verifymcp.io/servers/com-nittim-nittim/api-mcp.md), [page](https://verifymcp.io/servers/com-nittim-nittim/api-mcp)

## Channel facts

- Endpoint: `https://nittim.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Endpoint Security**: 97/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4193 tokens (~279/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 40/100
  - Stability observed for 12 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the nittim MCP server?

nittim is a hosted endpoint at https://nittim.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-nittim-nittim 'https://nittim.com/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-nittim-nittim": {
      "url": "https://nittim.com/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-nittim-nittim": {
      "type": "http",
      "url": "https://nittim.com/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-nittim-nittim]
url = "https://nittim.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-nittim-nittim": {
      "type": "remote",
      "url": "https://nittim.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-nittim-nittim --url 'https://nittim.com/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-nittim-nittim:
    url: "https://nittim.com/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-nittim-nittim": {
      "Transport": "http",
      "Url": "https://nittim.com/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-nittim-nittim -t streamable-http -u 'https://nittim.com/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-nittim-nittim": {
      "type": "http",
      "url": "https://nittim.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-19 (score 86, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 85, +2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 0.2.0+d9c5763 → 0.2.0+93bf872

### 2026-09-15 (score 83, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-13 (score 82, +1)

No change was recorded against any check on this day. Stability & Change Management went from 13 to 17. That category is still filling its 30-day observation window: 4 days of observed history at the previous scan, 5 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 81, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional] Server version: 0.2.0+70e80bb → 0.2.0+d9c5763

### 2026-09-09 (score 80, +1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [functional improvement] Stability: unverified → 0.03
- [functional] Server version: 0.2.0+d5518e3 → 0.2.0+70e80bb

### 2026-09-08 (score 79)

First indexed and scored.

## MCP tools (15)

### `audit_repo` (~428 tokens)

Audit a GitHub Repository

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.

Input parameters:

- `authorization` (string): HUMAN CONFIRMATION. The `authorization` id from the confirm-link answer, once the account owner has pressed Confirm. Single-use, short TTL.
- `confirmedCost` (object): COST CONFIRMATION. Omit on the first call; then send back the exact quoted `cost`.
- `deployedUrl` (string): Optional URL of this repository's live deployment, for an origin the account owner actually operates. When set, the audit adds one bounded, READ-ONLY fetch pass against it and reports drift between t…
- `fullScan` (boolean): True buys the wider Full Audit tier: every eligible source file, priced by pass count.
- `githubToken` (string): Optional read-only GitHub token. Without one, only public repos are reachable.
- `payInstead` (boolean): True pays credits now instead of queuing for the daily free-audit budget to reopen, skipping the covered (Audit) entitlement even when it would otherwise be free.
- `repoUrl` (string, required): GitHub repository URL or owner/repo. A private repo needs a githubToken.

### `audit_source` (~431 tokens)

Audit Posted Source (no GitHub repo required)

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.

Input parameters:

- `authorization` (string): HUMAN CONFIRMATION. The `authorization` id from the confirm-link answer, once the account owner has pressed Confirm. Single-use, short TTL.
- `confirmedCost` (object): COST CONFIRMATION. Omit on the first call; then send back the exact quoted `cost`.
- `files` (array, required): Source files as { path, content }[] — not build output. At most 1000; over the internal per-audit cap, the highest-priority ones win.
- `fullScan` (boolean): True buys the wider Full Audit tier over the files you post, priced by pass count.
- `name` (string, required): A display label for this project, e.g. 'my-abacus-app'. Sanitized before use.
- `uploadGrant` (string): Optional: the id of an upload approval the account owner already confirmed. A large post without one is answered with a confirmation covering the files and the price.

### `scan_source` (~173 tokens)

Free Scan of Posted Source (no GitHub repo required)

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).

Input parameters:

- `files` (array, required): Source files as { path, content }[] — not build output. At most 1000; over the internal per-audit cap, the highest-priority ones win.
- `name` (string, required): A display label for this project, e.g. 'my-abacus-app'. Sanitized before use.
- `uploadGrant` (string): Optional: the id of an upload approval the account owner already confirmed. A large post without one is answered with a confirmation covering the files and the price.

### `estimate_audit` (~244 tokens)

Estimate an Audit's Price — No Upload Required

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.

Input parameters:

- `files` (array): A manifest of paths and sizes only, in place of `repoUrl` — the same set you would post. Over the cap the answer names it and how to trim. Send one or the other.
- `fullScan` (boolean): Price Full Audit (every eligible file, or a refusal with the reason when the selection is too large) instead of the default Audit.
- `githubToken` (string): Optional GitHub personal access token (read-only) for a private repo.
- `repoUrl` (string): GitHub repository URL or owner/repo. Mutually exclusive with `files` — send one.

### `get_audit` (~102 tokens)

Fetch a Saved Audit

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.

Input parameters:

- `id` (string, required): The UUID of the saved audit, from the /report/{id} URL.

### `verify_fix` (~169 tokens)

Re-check One Finding Against Current Code

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.

Input parameters:

- `auditId` (string, required): The audit UUID, from its report link.
- `findingKey` (string, required): The finding's stable key, as printed beside it in the report's findings list.
- `ref` (string): A commit SHA or branch to check instead of the repository's current HEAD. Must be the audited commit or newer.

### `list_modules` (~70 tokens)

List nittim Audit Modules

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.

### `get_loop` (~101 tokens)

Read the Nittim Loop Checklist

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.

### `describe_protocol` (~104 tokens)

How This Server's Protocol Works

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.

Input parameters:

- `section` (string): Which page: money, tiers, loop, disputes, or all (the default).

### `mint_key` (~120 tokens)

Get a One-Time Link to Mint a nittim Key

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.

Input parameters:

- `keyName` (string): Optional display name for the key that will be minted, e.g. 'my-cursor-key'. Defaults to 'API key'.

### `run_module` (~310 tokens)

Run a Single Audit Module

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.

Input parameters:

- `authorization` (string): HUMAN CONFIRMATION. The `authorization` id from the confirm-link answer, once the account owner has pressed Confirm. Single-use, short TTL.
- `confirmedCost` (object): COST CONFIRMATION. Omit on the first call; then send back the exact quoted `cost`.
- `githubToken` (string): Optional read-only GitHub token. Without one, only public repos are reachable.
- `moduleKey` (string, required): The module's key, e.g. 'secret-scan', 'dependency-cve', 'security', 'privacy', 'gdpr'.
- `repoUrl` (string, required): GitHub repository URL or owner/repo. A private repo needs a githubToken.

### `judge_output` (~374 tokens)

Judge Arbitrary Output (independent cross-vendor model)

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.

Input parameters:

- `authorization` (string): HUMAN CONFIRMATION. The `authorization` id from the confirm-link answer, once the account owner has pressed Confirm. Single-use, short TTL.
- `confirmedCost` (object): COST CONFIRMATION. Omit on the first call; then send back the exact quoted `cost`.
- `content` (string, required): The text to judge — code, a document, another model's output. Up to ~100KB.
- `context` (string): Optional — background the judge should know, e.g. what this content is for.
- `criteria` (string): Optional — what to judge it against, e.g. 'correctness and security'.
- `modelUnderTest` (string): Optional — which vendor family produced `content`, if it is itself a model's output. The judge that runs is always a different family than this names. Use 'unspecified' for anything that is not model…

### `dispute_finding` (~233 tokens)

Dispute or Confirm a Finding

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.

Input parameters:

- `auditId` (string, required): The audit UUID, from its report link.
- `dimension` (string): The finding's dimension, e.g. 'security' — required if findingKey is omitted.
- `evidence` (object, required): What you can see in the repo that supports your stance.
- `findingKey` (string): The finding's stable key from the digest, if you have it (preferred over dimension+title).
- `stance` (string, required): 'dispute' = this finding is wrong. 'confirm' = this finding is genuinely real.
- `title` (string): The finding's exact title — required if findingKey is omitted.

### `report_loop` (~441 tokens)

Report a Completed Nittim Loop (opt-in, counts only)

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.

Input parameters:

- `client_name` (string): Your own name — omit to read it from the MCP connection instead.
- `client_version` (string): Your own version string, if you have one.
- `convergence` (string): Optional: 'converged' (two consecutive clean passes) or 'cap_reached' (stopped for any other reason). Omit if unsure — the read from `passes` is derived either way.
- `first_wave_lenses` (integer): Optional, with mode 'one_shot' only: how many lenses ran in parallel on pass 1.
- `mode` (string): Optional: 'one_shot' (every lens sweeps the whole tree first, then one fix wave, then a short convergence loop) or 'serial' (one lens or area per pass, fixing between passes).
- `passes` (array, required): One entry per pass you actually ran, in order.
- `repo_hash` (string, required): sha256 of the repository's canonical identity (the lowercased 'owner/repo', or a stable local fingerprint) — never the repo name itself. nittim never sees the name.
- `repo_size_bucket` (string, required): A rough size bucket for the repo you looped over.
- `swept` (boolean): Optional: was the CLASS swept — a guard, lint rule or exhaustiveness check that makes a new instance loud — rather than only the instances a pass named? Never derived, never changes the reward. On a…

### `preview_upload` (~151 tokens)

Preview an Upload Before Any Source Leaves the Machine

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.

Input parameters:

- `files` (array, required): Paths and sizes only — the same set you would post. Never file content.
- `name` (string, required): A display label for this project, e.g. 'my-abacus-app'. Sanitized before use.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-nittim-nittim/api-mcp#diagnostics

## Score history

- 2026-09-20: 86
- 2026-09-19: 86
- 2026-09-18: 85
- 2026-09-17: 85
- 2026-09-16: 83
- 2026-09-15: 83
- 2026-09-14: 82
- 2026-09-13: 82
- 2026-09-12: 81
- 2026-09-11: 81
- 2026-09-10: 80
- 2026-09-09: 80
- 2026-09-08: 79

## Common questions

### What is the nittim MCP server?

nittim is an MCP server listed in the public MCP registry as com.nittim/nittim. Production-safety audits for AI-generated code, with a fix for every finding. This page covers its hosted endpoint (https://nittim.com/api/mcp).

### Is the nittim MCP server safe to use?

nittim scores 86 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the nittim MCP server expose?

nittim exposes 15 tools: audit_repo, audit_source, scan_source, estimate_audit, get_audit, and 10 more. Their descriptions and schemas cost roughly 3,451 tokens of context every time the server is loaded.

### Does the nittim MCP server require authentication?

Yes. nittim asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the nittim MCP server still maintained?

nittim is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://nittim.com/api/mcp
- Repository: https://github.com/ilanwolberger/nittim-mcp
- Website: https://nittim.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-nittim-nittim/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-nittim-nittim/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-nittim-nittim/api-mcp
