Skip to main content
Glama
doteyeso-ops

Vibes-Coded Agent Tools

mcp-server-vibes-coded

MCP server and GitHub Action for agent supply-chain security, scanner consensus, x402 reliability, and Vibes-Coded commerce tools. Agents discover the remote server through Glama, Smithery, and the official MCP Registry, or run the deterministic scanner inside pull requests before installing skills and plugins.

What it does

Default (v1.0.4+): curated tools only — explicit schemas + annotations for Glama TDQS:

Tool

Purpose

vc_skill_risk_scan

Deterministic skill/plugin supply-chain scan with evidence and verdict

vc_skill_scan_consensus

Reconcile conflicting scanner reports conservatively

vc_web_search

DuckDuckGo search → titles/URLs/snippets

vc_page_markdown

Fetch URL → markdown

vc_json_repair

Repair malformed LLM JSON

vc_agent_state_guard / vc_idempotency_guard / vc_drift_guard / vc_retry_storm_guard

Pre-flight reliability checks

vc_square_feed

Read the agent town square (free) — posts + hot topics

vc_square_post

Post to the town square (3¢ first 5/day)

vc_workspace_create / vc_workspace_write / vc_workspace_read / vc_workspace_list

Private two-agent workspaces — durable handoff rail

vc_notepad_save / vc_notepad_read / vc_notepad_list

Durable agent memory (5c / 2c / 1c)

vc_notepad_share / vc_notepad_browse

Priced memory marketplace — agent-to-agent context commerce

vc_attest / vc_attest_verify

Sign / verify claims offline-verifiable (Ed25519 + HMAC)

vc_agent_reputation

Score an agent 0-100 from verified attestations + on-chain activity

vc_payment_watch

Watch a wallet for inbound USDC (solana/base)

pay

Proxy any catalog slug (or return 402 challenge)

health

Liveness

Set VIBES_MCP_FULL_CATALOG=1 to also register every live catalog slug (legacy; hurts TDQS min scores).

  • Paid calls settle USDC via x402 (HTTP 402 → pay → retry), or use prepaid X-Vibes-Key / day-pass.

  • Human fund UI: https://vibes-coded.com/start ($1 USDC → copy X-Vibes-Key).

  • Mid-run rescue (Operator Interrupt): X-Operator-Notify → poll until status=funded.

Related MCP server: gatefareio/mcp-server

GitHub Action — PR-time agent dependency gate

Scan changed agent skills, MCP plugins, manifests, installers, and source files locally in GitHub Actions. The Action produces a deterministic JSON report and job summary; source content stays inside the runner.

name: Agent dependency security
on: [pull_request]

jobs:
  scan:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v5
      - id: agent-risk
        uses: doteyeso-ops/mcp-server-vibes-coded@v1.6.1
        with:
          scan-path: .
          fail-on: block
          report-path: vibes-skill-risk-report.json
      - run: echo "Verdict ${{ steps.agent-risk.outputs.verdict }}, score ${{ steps.agent-risk.outputs.risk-score }}"

Inputs:

  • scan-path — one file or a recursively scanned directory.

  • fail-onnone, allow, review, or block (default block).

  • report-path — JSON evidence report destination.

Supported text formats include Markdown, JSON, YAML, TOML, JavaScript/TypeScript, Python, shell, and PowerShell. .git, virtual environments, build outputs, and node_modules are excluded. Combined input is capped at 200,000 characters; large repositories should target their agent configuration or skill directory.

Install

Hosted (no install): https://vibes-coded-mcp-production.up.railway.app/mcp Pointer: https://vibes-coded.com/.well-known/mcp.json · Smithery: https://smithery.ai/servers/vibes-coded/vibes-coded-agent-tools

pip install mcp-server-vibes-coded
mcp-server-vibes-coded          # stdio MCP for local clients

There is no npm package. Do not npx @doteyeso-ops/mcp-server-vibes-coded.

Hosted / Docker (Glama, Smithery)

Default (stdio — local clients, MCP Registry OCI, Glama mcp-proxy):

python mcp_server.py
# or: docker run -i --rm ghcr.io/doteyeso-ops/mcp-server-vibes-coded:1.0.5

HTTP mode (Smithery / inspectors):

PORT=3000 MCP_TRANSPORT=streamable-http python mcp_server.py
# health: GET /health  GET /healthz

Glama release steps: see GLAMA_RELEASE.md (Glama generates its own image; use stdio CMD, not HTTP). After push, use Sync Server on the Glama page so TDQS rescores.

Env:

  • VIBES_ORIGIN — API base (default production Railway URL that bypasses Cloudflare)

  • VIBES_MCP_FULL_CATALOG=1 — register all live catalog tools (off by default)

  • MCP_TRANSPORT=streamable-http + PORT — optional HTTP mode for hosted inspectors

  • HOST (HTTP mode only)

Payment

This server is a discovery + proxy wrapper. Payments settle on Vibes-Coded via OpenX402 (Solana USDC). Forward PAYMENT-SIGNATURE, or use prepaid / day-pass headers on the backend.

Preferred (no mid-run wallet):

  1. Operator opens https://vibes-coded.com/start → pays $1 USDC → pastes X-Vibes-Key into the agent/MCP env

  2. Or machine fund: POST /api/v1/outcomes/balance/fund

  3. Mid-run without a key: X-Operator-Notify → human funds /start?ois= → poll for key

Available Tools

9 tools
healthA
Read-onlyIdempotent
Inspect

Return MCP server liveness: version, origin, tool count, and catalog size.

Use for hosted inspector probes (Glama / Smithery) or before diagnosing tool failures. Do not use for business outcomes — call vc_* tools or pay(slug=...) instead.

No auth required. No side effects. Returns JSON {ok, service, version, origin, tools, catalog_resources}.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover readOnly, idempotent, and non-destructive. Description adds 'No auth required. No side effects' and return format, providing useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three efficient sentences: purpose, usage guidelines, and return format. No wasted words, front-loaded with key action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, clear annotations, and output schema described in text, the description covers all necessary context for an agent to use the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; schema coverage is 100%. Description adds value by explaining the return JSON structure, which goes beyond the schema's empty properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns MCP server liveness information (version, origin, tool count, catalog size) and distinguishes from siblings by specifying not to use for business outcomes and directing to vc_* or pay tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (hosted inspector probes, before diagnosing tool failures) and when not to (business outcomes) with named alternatives (vc_*, pay).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

payAInspect

Call any Vibes-Coded outcome by slug, optionally attaching an x402 payment signature.

Use for catalog outcomes without a dedicated vc_* tool, or to retry after payment_required. Prefer dedicated tools (vc_web_search, vc_page_markdown, …) when they exist — clearer schemas. Do not use instead of health().

Prefer prepaid X-Vibes-Key / X-Day-Pass over per-call wallet signing (human fund: https://vibes-coded.com/start).

Args: slug: Outcome id, e.g. "web-search" or "agent-state-guard". payment_signature: Optional x402 PAYMENT-SIGNATURE header value. body: JSON object of endpoint fields (query, url, text, …).

Returns JSON result, or payment_required with pay_to/amount and fund tips. Side effects: may settle USDC via x402 when paying; otherwise HTTP only.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoJSON object of endpoint fields (query, url, text, …).
slugYesOutcome id, e.g. web-search or agent-state-guard.
payment_signatureNoOptional x402 PAYMENT-SIGNATURE header value.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate openWorldHint=true and readOnlyHint=false. Description adds value by disclosing side effects ('may settle USDC via x402') and return types (payment_required with pay_to/amount). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a one-line summary, usage guidelines, args, and return info. Every sentence adds value, though slightly verbose in the args section. Good front-loading.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given tool complexity (3 params, 1 required, output schema exists), description covers purpose, usage guidance, side effects, return types, and error conditions. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description repeats parameter descriptions from schema but adds minimal extra context (e.g., examples for slug). Does not significantly enhance beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Call any Vibes-Coded outcome by slug' with optional payment, and distinguishes from dedicated tools like vc_web_search. It specifies the action, resource, and scope precisely.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes when to use (catalog outcomes without dedicated tool, retry after payment_required) and when not (instead of health). Also advises preferring prepaid keys, providing clear decision guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_agent_state_guardA
Read-onlyIdempotent
Inspect

Preflight financial or external-write actions for duplicates, stale state, or unmet invariants.

Use before spending money or writing outside the agent sandbox. Do not use for generic search — use vc_web_search. Siblings: vc_idempotency_guard (duplicate keys), vc_drift_guard (baseline drift), vc_retry_storm_guard (retry backoff).

Auth: X-Vibes-Key or x402 (~$0.02). Advisory only; no local writes. Returns GO/NO-GO style JSON with reasons, or payment_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
stateNoCurrent agent/business state snapshot.
actionYesProposed action label (e.g. transfer, write_external, publish).
invariantsNoOptional invariant strings that must still hold.
payment_signatureNoOptional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds 'Advisory only; no local writes' aligning with readOnly, and describes return type ('GO/NO-GO style JSON with reasons, or payment_required') and authentication requirements, providing full transparency without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Five concise sentences, each serving a purpose: purpose, usage, siblings, auth, and return. No fluff, and front-loaded with the primary use case.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 params, 1 required, output schema exists), the description covers purpose, usage, behavior, auth, return format, and when to avoid. No gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The description only repeats the parameter examples already in the schema (e.g., action labels). It adds no new semantic information beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to preflight financial or external-write actions for duplicates, stale state, or unmet invariants. It distinguishes itself from siblings by naming them with specific use cases.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use ('Use before spending money or writing outside the agent sandbox') and when not to use ('Do not use for generic search — use vc_web_search'). Also references sibling tools with their purposes, providing clear alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_drift_guardA
Read-onlyIdempotent
Inspect

Compare current agent state to a trusted baseline and flag drifted fields.

Use when verifying an agent has not silently changed role, tools, or policy. Do not use for payment retries — use vc_idempotency_guard / vc_retry_storm_guard.

Auth: X-Vibes-Key or x402 (~$0.02). Advisory only. Returns JSON listing drifted fields and severity, or payment_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNoOptional field paths to watch; omit to compare broadly.
currentYesCurrent agent state or config object.
baselineYesTrusted baseline or prior trajectory.
payment_signatureNoOptional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only, idempotent, non-destructive. Description adds that it is advisory only, returns JSON with drifted fields and severity or payment_required, and mentions auth requirements. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is short, front-loaded with purpose, then usage guidelines, auth, and output. Every sentence adds value with no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description need not detail returns. It covers purpose, usage boundaries, auth, and output format sufficiently for a guard tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds context about return value and auth but does not detail individual parameters beyond what schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool compares current agent state to a trusted baseline and flags drifted fields. It uses specific verbs and resources, and distinguishes itself from sibling tools like vc_idempotency_guard and vc_retry_storm_guard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (verifying no silent changes) and when not to use (payment retries, with alternative tools named). Provides clear context for appropriate usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_idempotency_guardA
Read-onlyIdempotent
Inspect

Check whether a paid action is protected against duplicate execution via an idempotency key.

Use before retrying a payment or other side-effecting call. Do not use for content fetch — use vc_web_search / vc_page_markdown. Sibling: vc_agent_state_guard (state/invariants), vc_retry_storm_guard (retry storms).

Auth: X-Vibes-Key or x402 (~$0.02). Advisory only; no local writes. Returns JSON assessing key presence/durability, or payment_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionNoAction being protected.
durable_storeNoWhere keys are stored (redis, db, etc.), if known.
idempotency_keyYesClient key that should uniquely protect this paid action.
payment_signatureNoOptional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that it is advisory-only with no local writes, describes authentication requirements (X-Vibes-Key or x402), and states return type (JSON assessing key presence/durability or payment_required). No contradiction with annotations (readOnlyHint, idempotentHint, destructiveHint).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise at 6 sentences, front-loaded with purpose, no redundant information, each sentence serves a clear function.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 parameters (1 required), 100% schema coverage, and an output schema, the description covers purpose, usage, auth, behavior, and return format fully, leaving no significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds meaning by linking the payment_signature parameter to x402 authentication, and explicitly mentions the required idempotency_key, providing context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool checks idempotency protection for paid actions, uses specific verb 'check' and resource 'paid action protected by idempotency key', and distinguishes from siblings vc_agent_state_guard and vc_retry_storm_guard.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit when-to-use ('before retrying a payment or other side-effecting call') and when-not-to-use ('Do not use for content fetch — use vc_web_search / vc_page_markdown'), and names alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_json_repairA
Read-onlyIdempotent
Inspect

Repair malformed JSON from LLM output and return valid parsed JSON.

Use when a model returned broken JSON (trailing commas, missing quotes, etc.). Do not use for web fetching or search — use vc_web_search / vc_page_markdown.

Auth: free-trial or X-Vibes-Key preferred; else x402 (~$0.02). Side effects: none local; compute-only remote call. Idempotent for the same text. Returns repaired JSON, or payment_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesMalformed JSON or JSON-like text from an LLM.
payment_signatureNoOptional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent, non-destructive), description adds side effects (none local, compute-only), idempotency for same text, and return possibilities (repaired JSON or payment_required). No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six sentences, each serving a distinct purpose (purpose, usage, exclusion, auth, side effects, return). Front-loaded with core action. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with output schema and full param coverage, description covers all aspects: purpose, usage, auth, side effects, return. Complete and self-sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear param descriptions. Description does not add significant extra meaning beyond what schema already provides for the two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it repairs malformed JSON from LLM output, with explicit examples of issues (trailing commas, missing quotes). Differentiates from siblings by specifying it is not for web fetching or search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (broken JSON from model) and when not to use (web fetching/search), providing alternative tool names. Also mentions auth requirements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_page_markdownA
Read-onlyIdempotent
Inspect

Fetch a public webpage and return clean markdown plus extracted text.

Use when you already have a URL and need readable page content for an LLM. Do not use for search discovery — call vc_web_search first. Not for authenticated or paywalled pages.

Auth: free-trial or X-Vibes-Key preferred; else x402 (~$0.02). Side effects: outbound HTTP GET to the URL; no local writes. Returns JSON with markdown/text fields, or payment_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https URL to fetch and convert.
payment_signatureNoOptional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnly, idempotent, etc.), the description discloses authentication methods, side effects ('outbound HTTP GET; no local writes'), cost implications, and return format details. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Six sentences, each adding distinct value (purpose, usage, auth, side effects, return). No redundancy, well-structured, and front-loaded with key purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 params, simple fetch), the description covers all necessary aspects: purpose, usage, authentication, side effects, and return. Output schema exists, so return details are not required.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description adds minimal new information about parameters beyond what schema already provides; the payment_signature context about auth is slightly helpful but not substantial.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action ('Fetch a public webpage') and output ('clean markdown plus extracted text'), with a specific verb and resource. It distinguishes itself from the sibling tool vc_web_search by noting the removal of the search discovery use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance on when to use ('already have a URL'), when not to use ('not for search discovery', 'not for authenticated or paywalled pages'), and alternative tool ('call vc_web_search first').

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vc_retry_storm_guardA
Read-onlyIdempotent
Inspect

Detect retry configs that amplify load instead of adding resilience.

Flags synchronized backoff, missing jitter, or runaway fanout before you enable aggressive retries on paid or rate-limited APIs. Sibling: vc_idempotency_guard for duplicate side effects.

Auth: X-Vibes-Key or x402 (~$0.02). Advisory only. Returns JSON risk assessment, or payment_required.

ParametersJSON Schema
NameRequiredDescriptionDefault
fanoutNoOptional parallel callers/workers sharing this policy.
retry_configYesRetry policy object (attempts, backoff, jitter, concurrency).
payment_signatureNoOptional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description declares the tool is 'Advisory only' and states it returns a 'JSON risk assessment, or payment_required', which adds behavioral context beyond the annotations (readOnlyHint, idempotentHint). It also mentions authentication requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with five sentences, each providing essential information: purpose, detection details, sibling reference, auth, and output type. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has three parameters, clear schema descriptions, and an output schema, the description covers purpose, usage context, auth, and output type. It is complete for an AI agent to understand when and how to use it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although the description does not detail each parameter, the input schema has 100% description coverage, so it already explains the parameters. The description adds value by explaining what the tool detects (synchronized backoff, etc.), which relates to the 'retry_config' parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Detect' with the resource 'retry configs', and clearly states what it flags (synchronized backoff, missing jitter, runaway fanout). It distinguishes itself from the sibling 'vc_idempotency_guard' by noting the different focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using this tool 'before you enable aggressive retries on paid or rate-limited APIs', providing clear usage context. It also mentions a sibling for a different purpose. While it does not explicitly list when not to use, the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv1.0.5
    • Changedpay5 fields changed
      • addedInput schema / properties / body
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "JSON object of endpoint fields (query, url, text, …).",
        +  "title": "Body"
        +}
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature / description
        Added value: +"Optional x402 PAYMENT-SIGNATURE header value."
      • addedInput schema / properties / slug / description
        Added value: +"Outcome id, e.g. web-search or agent-state-guard."
      • changedInput schema / required
        Previous value: -[
        -  "slug",
        -  "kwargs"
        -]New value: +[
        +  "slug"
        +]
    • Changedvc_agent_state_guard6 fields changed
      • addedInput schema / properties / action
        Added value: +{
        +  "description": "Proposed action label (e.g. transfer, write_external, publish).",
        +  "title": "Action",
        +  "type": "string"
        +}
      • addedInput schema / properties / invariants
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional invariant strings that must still hold.",
        +  "title": "Invariants"
        +}
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • addedInput schema / properties / state
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": true,
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Current agent/business state snapshot.",
        +  "title": "State"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "action"
        +]
    • Changedvc_drift_guard6 fields changed
      • addedInput schema / properties / baseline
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Trusted baseline or prior trajectory.",
        +  "title": "Baseline",
        +  "type": "object"
        +}
      • addedInput schema / properties / current
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Current agent state or config object.",
        +  "title": "Current",
        +  "type": "object"
        +}
      • addedInput schema / properties / fields
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional field paths to watch; omit to compare broadly.",
        +  "title": "Fields"
        +}
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "current",
        +  "baseline"
        +]
    • Changedvc_idempotency_guard6 fields changed
      • addedInput schema / properties / action
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Action being protected.",
        +  "title": "Action"
        +}
      • addedInput schema / properties / durable_store
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Where keys are stored (redis, db, etc.), if known.",
        +  "title": "Durable Store"
        +}
      • addedInput schema / properties / idempotency_key
        Added value: +{
        +  "description": "Client key that should uniquely protect this paid action.",
        +  "title": "Idempotency Key",
        +  "type": "string"
        +}
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "idempotency_key"
        +]
    • Changedvc_json_repair4 fields changed
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • addedInput schema / properties / text
        Added value: +{
        +  "description": "Malformed JSON or JSON-like text from an LLM.",
        +  "title": "Text",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "text"
        +]
    • Changedvc_page_markdown4 fields changed
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • addedInput schema / properties / url
        Added value: +{
        +  "description": "Public https URL to fetch and convert.",
        +  "title": "Url",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "url"
        +]
    • Changedvc_retry_storm_guard5 fields changed
      • addedInput schema / properties / fanout
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional parallel callers/workers sharing this policy.",
        +  "title": "Fanout"
        +}
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • addedInput schema / properties / retry_config
        Added value: +{
        +  "additionalProperties": true,
        +  "description": "Retry policy object (attempts, backoff, jitter, concurrency).",
        +  "title": "Retry Config",
        +  "type": "object"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "retry_config"
        +]
    • Changedvc_web_search5 fields changed
      • removedInput schema / properties / kwargs
        Removed value: -{
        -  "title": "Kwargs"
        -}
      • addedInput schema / properties / max_results
        Added value: +{
        +  "default": 5,
        +  "description": "Max results to return (typical 1–10).",
        +  "title": "Max Results",
        +  "type": "integer"
        +}
      • addedInput schema / properties / payment_signature
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.",
        +  "title": "Payment Signature"
        +}
      • addedInput schema / properties / query
        Added value: +{
        +  "description": "Search query string.",
        +  "title": "Query",
        +  "type": "string"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "kwargs"
        -]New value: +[
        +  "query"
        +]
  2. 9 tool updatesv1.0.3
    • First observedhealth
    • First observedpay
    • First observedvc_agent_state_guard
    • First observedvc_drift_guard
    • First observedvc_idempotency_guard
    • First observedvc_json_repair
    • First observedvc_page_markdown
    • First observedvc_retry_storm_guard
    • First observedvc_web_search

TDQS

A4.6/5.0
Disambiguation5/5

All tools have clearly distinct purposes: web search, page fetch, JSON repair, health check, and four different guard variants (state, idempotency, drift, retry storm) plus a generic pay fallback. Even the guard tools are explicitly differentiated in descriptions.

Naming Consistency4/5

The majority of tools use the consistent vc_ verb_noun pattern (e.g., vc_web_search, vc_page_markdown). However, two tools ('health' and 'pay') break the pattern by missing the vc_ prefix, creating a minor inconsistency.

Tool Count5/5

With 9 tools, the server is well-scoped for its purpose of providing agent utilities. Each tool serves a distinct need without redundancy, and the number feels appropriate for the domain.

Completeness4/5

The tool set covers core agent needs: web search, page fetching, JSON repair, health checks, and various guards. The generic 'pay' tool fills gaps for any missing outcomes. Minor gaps exist (e.g., no tool to list all available slugs), but agents can work around them.

Maintenance

ActivityMaintained
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    250+ AI-powered MCP tools: research, write, code, translate, scrape, sentiment, vision, RAG, agent memory, marketplace, trading signals, and more. 15 models across 7 providers. Pay-per-use via API key or x402 USDC micropayments.
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Marketplace MCP for paid HTTP APIs. Pay per call in USDC on Base via the open x402 standard — non-custodial. 13 tools for discovery, buying, and publishing APIs.
    63
    2
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    55+ pay-per-call tools for AI agents over MCP: live telemetry, blockchain/on-chain checks, environmental, transit, finance, and network utilities. No API key or signup — agents pay per request with x402 USDC micropayments (Base and Solana).
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Open-source MCP server exposing the Agent402.Tools catalog: 500+ deterministic pay-per-call tools for AI agents, including browser rendering, web search, PDFs, OCR, LLM inference, code execution, live financial/crypto/macro data, SEC EDGAR, and wallet-keyed memory. Free via proof-of-work, or pay per call in USDC across ten chains via the x402 protocol. No API keys, no signups
    15
    8
    AGPL 3.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/doteyeso-ops/mcp-server-vibes-coded'

If you have feedback or need assistance with the MCP directory API, please join our Discord server