# Elliot (mcpb · elliot-mcp-0.6.0.mcpb)

Independent verifier for AI agents: checks agent claims and doc promises against the code.

- Trust score: 46/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- mcpb · `elliot-mcp-0.6.0.mcpb`: 46/100 (this document), [markdown](https://verifymcp.io/servers/emanuelecell4-elliot-mcp/elliot-mcp.md), [page](https://verifymcp.io/servers/emanuelecell4-elliot-mcp/elliot-mcp)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/EmanueleCell4/elliot-mcp/releases/download/v0.6.0/elliot-mcp-0.6.0.mcpb`
- Version: `0.6.0`
- Transport: `stdio`
- SHA-256: `a56fcfb4947b80854173b4df3bdcaaf7cbcc6d049917615c73783c39ce7be2eb`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, 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-11-05.

- **Supply Chain Security**: 23/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs were checked across the 92 of 92 dependencies we could resolve, so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - 30 of 92 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 48/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Publishes a security disclosure policy (SECURITY.md).
- **Schema Quality & AI Usability**: 65/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2125 tokens (~151/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 82% 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 14 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 15 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.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

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

Elliot ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, a56fcfb4947b80854173b4df3bdcaaf7cbcc6d049917615c73783c39ce7be2eb; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/EmanueleCell4/elliot-mcp/releases/download/v0.6.0/elliot-mcp-0.6.0.mcpb`
- SHA-256: `a56fcfb4947b80854173b4df3bdcaaf7cbcc6d049917615c73783c39ce7be2eb`

### Verify on macOS / Linux

```bash
echo "a56fcfb4947b80854173b4df3bdcaaf7cbcc6d049917615c73783c39ce7be2eb  elliot-mcp-0.6.0.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\elliot-mcp-0.6.0.mcpb).Hash -eq "a56fcfb4947b80854173b4df3bdcaaf7cbcc6d049917615c73783c39ce7be2eb"
```

## 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-10-27 (score 46, +1)

- [functional improvement] Security disclosure: fail → pass

### 2026-10-24 (score 45)

First indexed and scored.

## MCP tools (14)

### `verify_url` (~126 tokens)

Verify a URL is live

Check that a URL (a deploy, a preview, a page) actually responds with the expected status and, optionally, contains expected text. Use before claiming something is deployed or live.

Input parameters:

- `claim` (string): The claim being checked, in the agent's own words, e.g. 'Deployed the landing page'.
- `expect_status` (integer): Expected HTTP status (default 200).
- `expect_text` (string): Text that must appear in the response body, e.g. a headline you just shipped.
- `url` (string, required): The URL that should be live.

### `verify_outcome` (~218 tokens)

Run a functional check in isolation

Run a command and arguments in a disposable repository copy under the host OS sandbox. Writes stay in the copy, network is blocked, and VERIFIED requires exit code zero. For a shell pipeline use command bash with args ["-c", "..."]; Elliot adds set -o pipefail so a failing step is not hidden by the last one. Put every file the check needs in the repository: files elsewhere (such as /tmp scripts) do not exist inside the sandbox. If the OS sandbox cannot start, returns INCONCLUSIVE without running the command.

Input parameters:

- `args` (array): Executable arguments, e.g. ["test"] for npm test.
- `claim` (string): The claim being checked, in the agent's own words, e.g. 'Deployed the landing page'.
- `command` (string, required): Executable, for example npm, node or pytest. No shell is used.
- `path` (string): Repository path (default: server working directory).
- `timeout_ms` (integer): Timeout, default 120000ms.

### `verify_attestation` (~87 tokens)

Verify a signed receipt

Verify an Ed25519-signed Elliot receipt and its digest. Returns valid=true only when the signature passes and an explicitly supplied public key matches; without one it reports cryptographic validity but marks signer identity untrusted.

Input parameters:

- `public_key` (string): Public key independently trusted by the verifier. Omit to check only mathematical signature validity; valid remains false.
- `receipt` (object, required)

### `verify_github` (~116 tokens)

Verify a GitHub claim

Check what GitHub actually says: whether a PR is merged, whether CI checks passed on a PR or commit, or whether a commit/branch was really pushed. Set GITHUB_TOKEN for private repos.

Input parameters:

- `check` (string, required)
- `claim` (string): The claim being checked, in the agent's own words, e.g. 'Deployed the landing page'.
- `pr` (integer): Pull request number.
- `ref` (string): Commit sha or branch name.
- `repo` (string, required): owner/name

### `verify_npm` (~119 tokens)

Verify an npm package was published

Check the npm registry for a package and version. Use before claiming a package or release was published.

Input parameters:

- `claim` (string): The claim being checked, in the agent's own words, e.g. 'Deployed the landing page'.
- `name` (string, required): Package name, e.g. 'zod' or '@scope/pkg'.
- `published_after` (string): ISO time the version must have been published after (proves it is a new publish).
- `version` (string): Exact version; defaults to the latest dist-tag.

### `elliot_snapshot` (~56 tokens)

Snapshot the working tree

Fingerprint every tracked and untracked file in the git repository before starting a task, so verify_changes can later prove what really changed.

Input parameters:

- `path` (string): Any path inside the repository (default: the server's working directory).

### `verify_changes` (~116 tokens)

Verify files actually changed

Check whether files really changed, compared with a snapshot taken before the task (or with HEAD if no snapshot is given). Use before claiming code was fixed, cleaned, refactored or written.

Input parameters:

- `claim` (string): The claim being checked, in the agent's own words, e.g. 'Deployed the landing page'.
- `path` (string): Any path inside the repository.
- `paths` (array): Only count changes under these repo-relative paths.
- `snapshot_id` (string): Id returned by elliot_snapshot.

### `elliot_report` (~55 tokens)

Honesty report

Summarise recent receipts: how many claims were checked and how many held up. Show this to the user when they ask what the agent really did.

Input parameters:

- `limit` (integer): How many recent receipts (default 50).

### `elliot_audit_start` (~109 tokens)

Start a claim audit

Start auditing whether this repository does what its README, docs and security/pricing pages say. Pins the commit, lists the files that make claims, and returns the protocol to follow.

Input parameters:

- `path` (string): Any path inside the repository (default: the server's working directory).
- `sources` (array): Audit only the claims made in these repo-relative files, e.g. a pull request description saved as .elliot-pr/PR.md. Turns off the repo-wide risk sweep.

### `elliot_record_claim` (~314 tokens)

Record one audited claim

Submit one claim with its verdict and evidence. Elliot checks that the claim's source quote is really in the docs at those lines, that every evidence quote is really in the code at those lines, and runs every 'absent' search itself. If anything does not check out the claim is rejected: fix the citation and submit again.

Input parameters:

- `audit_id` (string, required)
- `claim` (string, required): The claim, quoted or tightly paraphrased, as a user would read it.
- `evidence` (array, required): Code that implements or contradicts the claim. Use type 'absent' when the claimed thing does not exist in code.
- `explanation` (string, required): One or two plain sentences: what the code actually does.
- `note` (string): For VERIFIED: a minor gap worth mentioning that misleads nobody.
- `severity` (string): Required for PARTIAL and FALSE: how much a user relying on the claim is hurt.
- `source` (object, required): Where the project makes the claim.
- `user_impact` (string): Required for PARTIAL and FALSE: what a user who relies on this sentence would get wrong, concretely. If there is no real consequence, use VERIFIED with a note.
- `verdict` (string, required): VERIFIED: the code implements it. PARTIAL: implemented with a material gap or narrower than claimed. FALSE: the code contradicts it or the feature does not exist. UNVERIFIABLE: depends on a deploymen…

### `elliot_record_behavior` (~185 tokens)

Record undisclosed risky behavior

Record something risky the code does that the docs never mention (for example, it sends usage events, stores a key in plain text, or skips permission prompts) and no doc sentence promises otherwise. If a doc sentence does promise otherwise, use elliot_record_claim on that sentence instead. Never attach this to an unrelated sentence.

Input parameters:

- `audit_id` (string, required)
- `behavior` (string, required): What the code does, plainly, e.g. 'Sends the user email to PostHog on login'.
- `docs_searched` (string, required): Where you looked in the docs and found nothing about it.
- `evidence` (array, required): Code that does it.
- `severity` (string, required)
- `signal` (string): The code signal id from the risk sweep that led here, if any.
- `user_impact` (string, required): Who is affected and how.

### `elliot_review_packet` (~70 tokens)

Get the independent review packet

Returns only findings and checked evidence for review. Give it to a fresh reviewer process. With ELLIOT_REVIEW_TOKEN configured, the auditor endpoint cannot record review decisions; connect the reviewer only to a separate ELLIOT_ROLE=reviewer server.

Input parameters:

- `audit_id` (string, required)

### `elliot_record_review` (~201 tokens)

Record an independent review decision

For the reviewer process: confirm, downgrade or reject one finding. In isolated mode provide the audit-scoped reviewer_token from the evidence packet. Confirm needs evidence you checked yourself (a code quote or an absent search); reject needs a code quote showing the claim holds. All evidence is checked against the files.

Input parameters:

- `audit_id` (string, required)
- `evidence` (array)
- `finding` (string, required): The finding id, e.g. 3 or b1.
- `outcome` (string, required): confirm: real and material (pass severity to change it, e.g. low). downgrade: the mismatch is real but immaterial and becomes a note; do not pass a severity. reject: the claim actually holds.
- `reason` (string, required)
- `reviewer_token` (string): Per-audit capability included in the evidence packet when isolated review is enabled.
- `severity` (string): Corrected severity, when the auditor's is wrong.

### `elliot_audit_finish` (~96 tokens)

Finish the audit and write the report

Close the audit and write report.html, report.md and claims.json into elliot-report/<date>-<commit>/ at the repository root.

Input parameters:

- `audit_id` (string, required)
- `out_dir` (string): Override the output folder (relative to the repository root).
- `skipped` (array): Risk-sweep items you looked at and decided need no claim, each with a reason. They are listed in the report.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/emanuelecell4-elliot-mcp/elliot-mcp#diagnostics

## Score history

- 2026-11-05: 46
- 2026-11-04: 46
- 2026-11-03: 46
- 2026-11-02: 46
- 2026-11-01: 46
- 2026-10-31: 46
- 2026-10-30: 46
- 2026-10-29: 46
- 2026-10-28: 46
- 2026-10-27: 46
- 2026-10-26: 45
- 2026-10-25: 45
- 2026-10-24: 45

## Common questions

### What is the Elliot MCP server?

Elliot is an MCP server listed in the public MCP registry as io.github.EmanueleCell4/elliot-mcp. Independent verifier for AI agents: checks agent claims and doc promises against the code. This page covers its MCPB bundle (https://github.com/EmanueleCell4/elliot-mcp/releases/download/v0.6.0/elliot-mcp-0.6.0.mcpb).

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

Elliot scores 46 out of 100 on VerifyMCP. It declares no install or post-install scripts. 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 Elliot MCP server expose?

Elliot exposes 14 tools: verify_url, verify_outcome, verify_attestation, verify_github, verify_npm, and 9 more. Their descriptions and schemas cost roughly 1,868 tokens of context every time the server is loaded.

### What licence is the Elliot MCP server under?

Elliot declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/EmanueleCell4/elliot-mcp
- Changelog RSS feed: https://verifymcp.io/servers/emanuelecell4-elliot-mcp/elliot-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/emanuelecell4-elliot-mcp/elliot-mcp.json
- HTML version of this page: https://verifymcp.io/servers/emanuelecell4-elliot-mcp/elliot-mcp
