# io.github.Gareth1953/agent-services-mcp (npm · agent-services-mcp)

MCP server: x402-paid & free tools for AI agents — provenance, quality scoring, action audit.

- Trust score: 67/100 (medium)
- Change this week: +24
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- npm · `agent-services-mcp`: 67/100 (this document), [markdown](https://verifymcp.io/servers/gareth1953-agent-services-mcp/agent-services-mcp.md), [page](https://verifymcp.io/servers/gareth1953-agent-services-mcp/agent-services-mcp)

## Channel facts

- Registry: `npm`
- Package: `agent-services-mcp`
- Version: `0.2.1`
- Transport: `stdio`

## 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-08-03.

- **Supply Chain Security**: 87/100
  - No malware found by supply-chain analysis.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/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 42 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1595 tokens (~227/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 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.
  - Structured output schemas are declared (57% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add gareth1953-agent-services-mcp -- npx -y agent-services-mcp
```

### Codex

```bash
codex mcp add gareth1953-agent-services-mcp -- npx -y agent-services-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "gareth1953-agent-services-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "agent-services-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add gareth1953-agent-services-mcp --command npx --arg -y --arg agent-services-mcp
```

### Hermes

```yaml
mcp_servers:
  gareth1953-agent-services-mcp:
    command: "npx"
    args: ["-y", "agent-services-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "gareth1953-agent-services-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "agent-services-mcp"
      ]
    }
  }
}
```

## 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-08-03 (score 67, +1)

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

### 2026-08-02 (score 66, +61)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] Tool coverage: unverified → 100
- [functional] Licence: MIT

### 2026-08-01 (score 5, −20)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-31 (score 25, −18)

- [security regression] Malware scan: pass → unverified

### 2026-07-27 (score 43)

First indexed and scored.

## MCP tools (7)

### `certify_provenance` (~340 tokens)

Certify content provenance

PAID (x402 micropayment in USDC on Base; exact amount is returned in the 402 challenge — pay via x_payment).
Certifies the ORIGIN of content: returns an Ed25519-signed receipt over a SHA-256 hash of the content, your caller-attested generator_metadata, and a service timestamp.
USE WHEN you need tamper-evident proof of exactly what content existed at a point in time. Verify it later for FREE with verify_provenance.
PROVES: the content is unmodified (hash) and the receipt was issued by the holder of the service's signing key.
DOES NOT PROVE: generator_metadata — the receipt proves you CLAIMED that metadata, not that a specific model produced the content. Proof-of-origin/tamper-evidence, NOT AI-detection and NOT a truth guarantee.
Two-step: call once with no x_payment to get the 402 requirements, then resend with x_payment to pay.

Input parameters:

- `content` (string, required): The exact content to certify. Non-empty.
- `generator_metadata` (object): Optional caller-attested metadata about what generated the content (e.g. { model, provider }). Recorded verbatim; the receipt proves you claimed it, not that a specific model ran.
- `x_payment` (string): Optional x402 payment token (the base64 X-PAYMENT value). Leave unset on the first call to receive the 402 payment requirements; then build the token with an x402 client + wallet and resend it here t…

### `verify_provenance` (~138 tokens)

Verify a provenance receipt

FREE. Verifies a provenance receipt against its content (re-hashes the content, checks the Ed25519 signature).
USE WHEN you have a receipt + the original content and need to confirm it's genuine and unmodified.
RETURNS: { valid, details }. valid is true only if the content hash matches the receipt AND the signature is valid under the service's public key. A 200 means verification ran — always read valid (false = content modified or receipt altered/forged).

Input parameters:

- `content` (string, required): The content to check against the receipt.
- `receipt` (object, required): A provenance receipt as returned by certify_provenance.

Output parameters:

- `details` (object): Per-check breakdown (e.g. hash match, signature valid).
- `valid` (boolean): True only if the content/record matches the receipt AND the Ed25519 signature is valid.

### `score_quality` (~355 tokens)

Score content against the published quality rubric

PAID (x402 micropayment in USDC on Base; exact amount is returned in the 402 challenge — pay via x_payment).
Scores content against quality-gate's PUBLISHED rubric (clarity, completeness, internal consistency, obvious-error freedom — 0–25 each, summing 0–100) and returns an Ed25519-signed score receipt. Read the exact rubric for FREE with get_quality_rubric.
USE WHEN you need a reproducible, signed quality score for a piece of content.
RETURNS: a signed score receipt; or, with target_score set, receipt:null + the failing breakdown ('no pass, no pay' — no receipt and no charge below target).
WHAT IT IS NOT: a measure of absolute truth, an external/third-party standard, or a fact-check.
Two-step: call once with no x_payment to get the 402 requirements, then resend with x_payment to pay.

Input parameters:

- `content` (string, required): The content to score. Non-empty.
- `rubric_version` (string): Optional rubric version to score against; must match the service's current version (e.g. "v1") if provided.
- `target_score` (number): Optional 0–100 threshold. Enables 'no pass, no pay': below this, no receipt is issued and no charge is made.
- `x_payment` (string): Optional x402 payment token (the base64 X-PAYMENT value). Leave unset on the first call to receive the 402 payment requirements; then build the token with an x402 client + wallet and resend it here t…

Output parameters:

- `breakdown` (object): Per-dimension scores and flags.
- `receipt`: Signed score receipt, or null if below target_score (no pass, no pay).
- `score` (number): Total score 0–100, when present.

### `verify_quality` (~116 tokens)

Verify a quality score receipt

FREE. Verifies a quality score receipt against its content (re-hashes the content, checks the Ed25519 signature, which covers the score itself — so a forged or altered score fails).
USE WHEN you have a score receipt + the content and need to confirm the score is genuine.
RETURNS: { valid, details }. A 200 means verification ran — always read valid.

Input parameters:

- `content` (string, required): The content the score receipt was issued for.
- `receipt` (object, required): A quality score receipt as returned by score_quality.

Output parameters:

- `details` (object): Per-check breakdown (e.g. hash match, signature valid).
- `valid` (boolean): True only if the content/record matches the receipt AND the Ed25519 signature is valid.

### `get_quality_rubric` (~56 tokens)

Get the published quality rubric

FREE; takes no input. Fetch the published Quality Gate rubric (markdown) + its version that score_quality grades against.
USE WHEN you want to understand exactly what a quality score means and does not mean before calling score_quality.

### `audit_action` (~406 tokens)

Audit an agent action

PAID (x402 micropayment in USDC on Base; exact amount is returned in the 402 challenge — pay via x_payment).
Creates a tamper-evident AUDIT RECEIPT for an action an agent took: an Ed25519-signed receipt over a SHA-256 hash of the action, your caller-attested actor_metadata, a hash of optional context, and a timestamp.
USE WHEN you need an accountability record proving exactly what an agent claimed it did, and when. Verify later for FREE with verify_audit.
PROVES: the action RECORD is genuine (issued by the service's signing key) and unaltered since issue.
DOES NOT PROVE: that the agent's claim is true. action/actor_metadata/context are CALLER-ATTESTED — proof you CLAIMED this exact record, not that the agent did it, nor that it was authorized or correct. An accountability/audit tool, NOT a lie-detector.
Two-step: call once with no x_payment to get the 402 requirements, then resend with x_payment to pay.

Input parameters:

- `action` (string, required): What the agent did (the action being audited). Non-empty.
- `actor_metadata` (object, required): Caller-attested: who/what performed the action and the stated authority it acted under (e.g. { agent, operator, authority }). Recorded verbatim and covered by the signature; proves you claimed it, no…
- `context` (object): Optional caller-attested supporting detail. Hashed into the receipt; an absent context hashes the canonical empty object.
- `x_payment` (string): Optional x402 payment token (the base64 X-PAYMENT value). Leave unset on the first call to receive the 402 payment requirements; then build the token with an x402 client + wallet and resend it here t…

### `verify_audit` (~184 tokens)

Verify an audit receipt

FREE. Verifies an audit receipt against its record (re-hashes the submitted action + context, checks they and actor_metadata match the receipt, plus the Ed25519 signature).
USE WHEN you have an audit receipt + the original action/metadata and need to confirm the record is genuine and unaltered.
RETURNS: { valid, details }. valid is true only if action, context, AND actor_metadata all match the receipt AND the signature is valid. A 200 means verification ran — always read valid (false = record altered or receipt forged).

Input parameters:

- `action` (string, required): The action the receipt was issued for.
- `actor_metadata` (object, required): The actor_metadata the receipt was issued for.
- `context` (object): The optional context the receipt was issued for (omit if none).
- `receipt` (object, required): An audit receipt as returned by audit_action.

Output parameters:

- `details` (object): Per-check breakdown (e.g. hash match, signature valid).
- `valid` (boolean): True only if the content/record matches the receipt AND the Ed25519 signature is valid.

## Diagnostics

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

## Score history

- 2026-08-03: 67
- 2026-08-02: 66
- 2026-08-01: 5
- 2026-07-31: 25
- 2026-07-30: 43
- 2026-07-28: 43
- 2026-07-27: 43

## Links

- npm package: https://www.npmjs.com/package/agent-services-mcp
- Socket report: https://socket.dev/npm/package/agent-services-mcp
- Repository: https://github.com/Gareth1953/agent-services-mcp
- Changelog RSS feed: https://verifymcp.io/servers/gareth1953-agent-services-mcp/agent-services-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/gareth1953-agent-services-mcp/agent-services-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/gareth1953-agent-services-mcp/agent-services-mcp
