# io.github.marras0914/agent-toolbelt-mcp (npm · agent-toolbelt-mcp)

19 focused API tools for AI agents: contract review, prompt optimizer, context packing, and more.

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

## Components

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

## Channel facts

- Registry: `npm`
- Package: `agent-toolbelt-mcp`
- Version: `1.0.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 48 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 85/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).
  - Tool/resource definitions use about 2155 tokens (~102/item across 21 items; 20 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 95% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add marras0914-agent-toolbelt-mcp -- npx -y agent-toolbelt-mcp
```

### Codex

```bash
codex mcp add marras0914-agent-toolbelt-mcp -- npx -y agent-toolbelt-mcp
```

### opencode

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

### OpenClaw

```bash
openclaw mcp add marras0914-agent-toolbelt-mcp --command npx --arg -y --arg agent-toolbelt-mcp
```

### Hermes

```yaml
mcp_servers:
  marras0914-agent-toolbelt-mcp:
    command: "npx"
    args: ["-y", "agent-toolbelt-mcp"]
```

### Other

```json
{
  "mcpServers": {
    "marras0914-agent-toolbelt-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "agent-toolbelt-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-02 (score 70, +44)

- [security regression] Provenance: unverified → fail
- [security improvement] Install scripts: unverified → pass
- [security improvement] Known CVEs: unverified → partial
- [security improvement] Malware scan: unverified → pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Stability: unverified → 0.20
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] License: unverified → pass
- [functional improvement] Maintenance: unverified → pass
- [functional improvement] MCP protocol: unverified → pass
- [functional improvement] Dependency health: unverified → partial
- [functional] Licence: MIT

### 2026-07-31 (score 26, −27)

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

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

First indexed and scored.

## MCP tools (20)

### `generate_schema` (~134 tokens)

Schema Generator

Generate a JSON Schema, TypeScript interface, or Zod validation schema from a natural language description of a data structure. Examples: 'a user profile with name, email, and signup date', 'a product listing with title, price, and inventory count'.

Input parameters:

- `description` (string, required): Natural language description of the data structure you want a schema for
- `format` (string): Output format: json_schema (standard JSON Schema), typescript (TS interface), or zod (Zod validation schema)
- `strict` (boolean): If true, all fields are required. If false, optional fields are marked as optional

### `extract_from_text` (~120 tokens)

Text Extractor

Extract structured data from raw text: emails, URLs, phone numbers, dates, currencies, addresses, names, or JSON blocks. Useful for parsing documents, emails, web content, or any unstructured text into clean structured data.

Input parameters:

- `deduplicate` (boolean): Remove duplicate results within each type
- `extractors` (array, required): Which types of data to extract. Choose one or more: emails, urls, phone_numbers, dates, currencies, addresses, names, json_blocks
- `text` (string, required): The raw text to extract data from

### `build_cron` (~80 tokens)

Cron Expression Builder

Convert natural language schedule descriptions into cron expressions. Examples: 'every weekday at 9am', 'first Monday of each month at noon', 'every 5 minutes'. Returns the expression, human-readable confirmation, and next 5 run times.

Input parameters:

- `description` (string, required): Natural language schedule description
- `timezone` (string): Timezone for context

### `build_regex` (~115 tokens)

Regex Builder & Tester

Build and test regular expressions from natural language descriptions. Supports emails, URLs, phones, dates, IPs, colors, UUIDs, and 15+ more patterns. Returns the pattern, code snippets in JS/Python/TS, and optional test results.

Input parameters:

- `description` (string, required): What to match (e.g., 'email addresses', 'hex color codes', 'semantic versions')
- `flags` (string): Regex flags (default: 'g')
- `testStrings` (array): Optional strings to test the regex against

### `generate_brand_kit` (~125 tokens)

Brand Kit Generator

Generate a complete brand kit from a company name, industry, and aesthetic keywords. Returns a color palette with WCAG accessibility scores, curated typography pairings, and design tokens in JSON, CSS, or Tailwind format.

Input parameters:

- `format` (string): Output format
- `industry` (string): Industry (e.g., 'fintech', 'healthcare', 'fashion')
- `name` (string, required): Company or brand name
- `vibe` (array): Aesthetic keywords: 'modern', 'playful', 'luxurious', 'minimal', 'bold', etc.

### `convert_markdown` (~96 tokens)

Markdown Converter

Convert HTML to clean Markdown, or Markdown to HTML. Use HTML→Markdown when you've fetched a web page and need readable text for an LLM — strips tags, preserves headings, lists, code blocks, links, and tables. Use Markdown→HTML when rendering content in a web context.

Input parameters:

- `content` (string, required): The content to convert
- `from` (string, required): Input format
- `to` (string, required): Output format

### `fetch_url_metadata` (~94 tokens)

URL Metadata

Fetch a URL and extract its metadata: title, description, Open Graph tags (og:image, og:type), Twitter card tags, favicon, canonical URL, author, and publish date. Use to enrich links with context or understand what a page is about without reading the full content.

Input parameters:

- `timeout` (number): Request timeout in milliseconds (default 8000)
- `url` (string, required): The URL to fetch metadata from

### `count_tokens` (~107 tokens)

Token Counter

Count tokens for any text across multiple LLM models and get per-model cost estimates. Use before sending text to an LLM to check context window usage or compare costs across models. Supports GPT-4o, GPT-4, GPT-3.5-turbo, Claude 3.5 Sonnet, Claude 3 Opus, and 10+ more.

Input parameters:

- `models` (array): Models to count tokens for
- `text` (string, required): The text to count tokens for

### `csv_to_json` (~120 tokens)

CSV to JSON

Convert CSV data to typed JSON. Auto-detects delimiters, uses the first row as headers, and casts values to proper types (numbers, booleans, nulls). Use when processing spreadsheet exports or any CSV-formatted data.

Input parameters:

- `csv` (string, required): The CSV content to convert
- `delimiter` (string): Column delimiter
- `hasHeader` (boolean): Whether the first row contains column names
- `limit` (number): Max rows to return
- `typeCast` (boolean): Auto-convert values to proper types

### `normalize_address` (~82 tokens)

Address Normalizer

Normalize a US mailing address to USPS standard format. Expands abbreviations (st→ST, ave→AVE), standardizes directionals, converts state names to codes. Returns parsed components and a confidence score (high/medium/low).

Input parameters:

- `address` (string, required): The US address to normalize
- `includeComponents` (boolean): Include parsed address components in response

### `generate_color_palette` (~154 tokens)

Color Palette Generator

Generate a color palette from a description, mood, industry, or hex seed color. Accepts moods (calm, energetic, luxurious), industries (fintech, healthcare, fashion), nature themes (sunset, ocean, forest), or a specific hex color. Returns hex/RGB/HSL values, WCAG accessibility scores, and CSS custom properties.

Input parameters:

- `count` (integer): Number of colors (2-10)
- `description` (string, required): Description of the desired palette (e.g. 'calm fintech blue', 'sunset', '#3B82F6')
- `format` (string): Color format in output
- `includeShades` (boolean): Include light/dark shades for each color

### `compare_documents` (~96 tokens)

Document Comparator

Compare two versions of a document and produce a semantic diff with additions, deletions, and modifications. Works with contracts, READMEs, policies, essays, or any text. Powered by Claude.

Input parameters:

- `context` (string): Document type for more relevant analysis
- `mode` (string): Output format
- `original` (string, required): The original version of the document
- `revised` (string, required): The revised version of the document

### `extract_contract_clauses` (~90 tokens)

Contract Clause Extractor

Extract key clauses from a contract — parties, payment terms, termination, liability, IP ownership, confidentiality, and more. Optionally flags risky or one-sided clauses with severity ratings. Powered by Claude.

Input parameters:

- `clauses` (array): Which clause types to extract
- `contract` (string, required): The contract or legal document text
- `flagRisks` (boolean): Flag risky or unfavorable clauses

### `optimize_prompt` (~132 tokens)

Prompt Optimizer

Analyze and improve an LLM prompt. Scores clarity, specificity, structure, and completeness. Returns an optimized rewrite with a summary of what changed and why. Powered by Claude.

Input parameters:

- `mode` (string): 'both' returns analysis + improved prompt; 'analyze' scores only; 'improve' rewrites only
- `model` (string): Target model (e.g. 'gpt-4o', 'claude-3-5-sonnet')
- `prompt` (string, required): The LLM prompt to analyze and/or improve
- `task` (string): What this prompt is trying to accomplish

### `extract_meeting_action_items` (~92 tokens)

Meeting Action Items

Extract structured action items, decisions, and a summary from meeting notes or transcripts. Identifies task owners, deadlines, and priorities. Powered by Claude.

Input parameters:

- `format` (string): 'full' includes summary and decisions; 'action_items_only' returns just the task list
- `notes` (string, required): Meeting notes or transcript
- `participants` (array): Known participant names to help with owner attribution

### `strip_image_metadata` (~137 tokens)

Image Metadata Stripper

Strip EXIF, GPS, IPTC, XMP, and ICC metadata from an image for privacy. Use before uploading or sharing images to remove sensitive embedded data like GPS coordinates, camera model, timestamps, and editing history. Accepts base64-encoded JPEG, PNG, WebP, or TIFF. Returns cleaned base64 image with a removal report.

Input parameters:

- `format` (string): Output format ('preserve' keeps original)
- `image` (string, required): Base64-encoded image (JPEG, PNG, WebP, TIFF). No data URI prefix.
- `quality` (integer): Quality for lossy formats (1-100)

### `mock_api_response` (~110 tokens)

API Response Mocker

Generate realistic mock API responses from a JSON Schema. Supports nested objects, arrays, string formats (email, uuid, date-time, url), field-name heuristics, enums, and min/max constraints. Set seed for reproducible output. Returns 1–100 records.

Input parameters:

- `count` (integer): Number of mock records to generate (1–100)
- `schema` (object, required): JSON Schema object describing the shape of the mock data
- `seed` (integer): Optional seed for reproducible output

### `audit_dependencies` (~91 tokens)

Dependency Auditor

Audit npm and PyPI packages for known CVEs using the OSV database (GitHub Dependabot's source). Pass packages directly or paste package.json / requirements.txt content.

Input parameters:

- `includeDevDependencies` (boolean)
- `manifest` (string): Raw package.json or requirements.txt
- `manifestType` (string)
- `minSeverity` (string)
- `packages` (array): Packages to audit

### `pack_context_window` (~139 tokens)

Context Window Packer

Pack content chunks into a token budget for an LLM context window. Selects the best subset of chunks that fits within the token limit using priority, greedy, or balanced strategies. Use when you have more content than fits in the context window.

Input parameters:

- `chunks` (array, required): Content chunks to pack
- `model` (string): Target model for tokenization
- `reserveForOutput` (integer): Tokens to reserve for output
- `separator` (string): Text between chunks
- `strategy` (string): Packing strategy
- `systemPrompt` (string): System prompt to reserve tokens for
- `tokenBudget` (integer, required): Maximum tokens allowed

### `list_tools` (~25 tokens)

List Available Tools

List all tools available in the Agent Toolbelt API catalog, including descriptions and pricing.

## Diagnostics

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

## Score history

- 2026-08-03: 70
- 2026-08-02: 70
- 2026-08-01: 26
- 2026-07-31: 26
- 2026-07-30: 53
- 2026-07-28: 53
- 2026-07-27: 53

## Links

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