Vibes-Coded Agent Tools
This server acts as a proxy wrapper exposing pay-per-call AI agent tool endpoints (settled via USDC x402 payments) as MCP-compatible tools.
vc_web_search— Perform web searches via DuckDuckGo, returning titles, URLs, and snippetsvc_page_markdown— Fetch any URL and convert its content to markdownvc_json_repair— Repair malformed or broken JSON typically produced by LLMsvc_agent_state_guard— Pre-flight check to validate agent state before proceedingvc_idempotency_guard— Ensure operations aren't duplicated by checking idempotency constraintsvc_drift_guard— Detect and guard against agent goal/context drift during a runvc_retry_storm_guard— Prevent runaway retry loops causing excessive API calls or costspay— Proxy any Vibes-Coded catalog endpoint by slug, handling x402 payment challenges (402 → pay → retry)health— Check server liveness for hosted inspectors like Glama or Smithery
Payment & Access: Calls are pay-per-use via Solana USDC (x402 protocol). Prepaid access is available via X-Vibes-Key or day-pass (fund at vibes-coded.com/start). Mid-run funding is supported via the X-Operator-Notify operator interrupt flow. Setting VIBES_MCP_FULL_CATALOG=1 registers every live catalog slug from Vibes-Coded.
Allows performing web searches via DuckDuckGo, returning titles, URLs, and snippets.
Enables payment settlement using Solana USDC via the x402 protocol for pay-per-call endpoints.
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 |
| Deterministic skill/plugin supply-chain scan with evidence and verdict |
| Reconcile conflicting scanner reports conservatively |
| DuckDuckGo search → titles/URLs/snippets |
| Fetch URL → markdown |
| Repair malformed LLM JSON |
| Pre-flight reliability checks |
| Read the agent town square (free) — posts + hot topics |
| Post to the town square (3¢ first 5/day) |
| Private two-agent workspaces — durable handoff rail |
| Durable agent memory (5c / 2c / 1c) |
| Priced memory marketplace — agent-to-agent context commerce |
| Sign / verify claims offline-verifiable (Ed25519 + HMAC) |
| Score an agent 0-100 from verified attestations + on-chain activity |
| Watch a wallet for inbound USDC (solana/base) |
| Proxy any catalog slug (or return 402 challenge) |
| 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 untilstatus=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-on—none,allow,review, orblock(defaultblock).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 clientsThere 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.5HTTP mode (Smithery / inspectors):
PORT=3000 MCP_TRANSPORT=streamable-http python mcp_server.py
# health: GET /health GET /healthzGlama 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 inspectorsHOST(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):
Operator opens https://vibes-coded.com/start → pays $1 USDC → pastes
X-Vibes-Keyinto the agent/MCP envOr machine fund:
POST /api/v1/outcomes/balance/fundMid-run without a key:
X-Operator-Notify→ human funds/start?ois=→ poll for key
Marketplace: https://vibes-coded.com
Fund agent: https://vibes-coded.com/start
Agent docs: https://vibes-coded.com/llms.txt
Official connector (OpenClaw/Hermes): https://doteyeso-ops.github.io/vibes-coded-agent-connector/
Glama: https://glama.ai/mcp/servers/@doteyeso-ops/mcp-server-vibes-coded
Smithery: https://smithery.ai/servers/@doteyeso-ops/mcp-server-vibes-coded
Available Tools
9 toolshealthARead-onlyIdempotentInspect
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}.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | JSON object of endpoint fields (query, url, text, …). | |
| slug | Yes | Outcome id, e.g. web-search or agent-state-guard. | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE header value. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_guardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Current agent/business state snapshot. | |
| action | Yes | Proposed action label (e.g. transfer, write_external, publish). | |
| invariants | No | Optional invariant strings that must still hold. | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_guardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Optional field paths to watch; omit to compare broadly. | |
| current | Yes | Current agent state or config object. | |
| baseline | Yes | Trusted baseline or prior trajectory. | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_guardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| action | No | Action being protected. | |
| durable_store | No | Where keys are stored (redis, db, etc.), if known. | |
| idempotency_key | Yes | Client key that should uniquely protect this paid action. | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_repairARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Malformed JSON or JSON-like text from an LLM. | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_markdownARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Public https URL to fetch and convert. | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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_guardARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| fanout | No | Optional parallel callers/workers sharing this policy. | |
| retry_config | Yes | Retry policy object (attempts, backoff, jitter, concurrency). | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
vc_web_searchARead-onlyIdempotentInspect
Run a public web search and return titles, URLs, and snippets as JSON.
Use when you need current public web results for a query. Do not use for private/intranet pages — call vc_page_markdown with a known URL instead. Sibling: vc_page_markdown (one URL), pay (generic slug caller).
Auth: free-trial or prepaid X-Vibes-Key preferred; else USDC via x402 (~$0.02). Side effects: outbound HTTP to a search provider; no local writes. Returns JSON results, or a payment_required challenge if unpaid.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string. | |
| max_results | No | Max results to return (typical 1–10). | |
| payment_signature | No | Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, idempotentHint, destructiveHint. The description adds valuable context: authentication options (free-trial/prepaid X-Vibes-Key, USDC via x402), side effects (outbound HTTP, no local writes), and return behavior (JSON results or payment_required challenge). This goes beyond what annotations offer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is 5 sentences, front-loaded with purpose. Each sentence adds value: purpose, usage guidance, sibling, auth, side effects, returns. It is fairly concise, though could be slightly more streamlined. Overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (public web search, payment, multiple auth methods, output schema exists), the description covers all essential aspects: purpose, usage, auth, side effects, and return types. No obvious gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 3 parameters with 100% coverage. The description adds no additional parameter-specific meaning beyond what is already in the schema (e.g., query is a search string, max_results default 5, payment_signature optional). Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Run a public web search and return titles, URLs, and snippets as JSON.' It specifies the verb, resource, and output format. It distinguishes from sibling vc_page_markdown by noting that vc_web_search is for public web results, not private pages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use ('when you need current public web results for a query') and when not to use ('Do not use for private/intranet pages') with a direct alternative ('call vc_page_markdown with a known URL instead'). It also names the sibling tool.
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.
8 tool updates
v1.0.5- Changed
pay5 fields changed- added
Input schema / properties / bodyAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "JSON object of endpoint fields (query, url, text, …).", + "title": "Body" +} - removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signature / descriptionAdded value: +"Optional x402 PAYMENT-SIGNATURE header value." - added
Input schema / properties / slug / descriptionAdded value: +"Outcome id, e.g. web-search or agent-state-guard." - changed
Input schema / requiredPrevious value: -[ - "slug", - "kwargs" -]New value: +[ + "slug" +]
- Changed
vc_agent_state_guard6 fields changed- added
Input schema / properties / actionAdded value: +{ + "description": "Proposed action label (e.g. transfer, write_external, publish).", + "title": "Action", + "type": "string" +} - added
Input schema / properties / invariantsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional invariant strings that must still hold.", + "title": "Invariants" +} - removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - added
Input schema / properties / stateAdded value: +{ + "anyOf": [ + { + "additionalProperties": true, + "type": "object" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Current agent/business state snapshot.", + "title": "State" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "action" +]
- Changed
vc_drift_guard6 fields changed- added
Input schema / properties / baselineAdded value: +{ + "additionalProperties": true, + "description": "Trusted baseline or prior trajectory.", + "title": "Baseline", + "type": "object" +} - added
Input schema / properties / currentAdded value: +{ + "additionalProperties": true, + "description": "Current agent state or config object.", + "title": "Current", + "type": "object" +} - added
Input schema / properties / fieldsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional field paths to watch; omit to compare broadly.", + "title": "Fields" +} - removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "current", + "baseline" +]
- Changed
vc_idempotency_guard6 fields changed- added
Input schema / properties / actionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Action being protected.", + "title": "Action" +} - added
Input schema / properties / durable_storeAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Where keys are stored (redis, db, etc.), if known.", + "title": "Durable Store" +} - added
Input schema / properties / idempotency_keyAdded value: +{ + "description": "Client key that should uniquely protect this paid action.", + "title": "Idempotency Key", + "type": "string" +} - removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "idempotency_key" +]
- Changed
vc_json_repair4 fields changed- removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - added
Input schema / properties / textAdded value: +{ + "description": "Malformed JSON or JSON-like text from an LLM.", + "title": "Text", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "text" +]
- Changed
vc_page_markdown4 fields changed- removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - added
Input schema / properties / urlAdded value: +{ + "description": "Public https URL to fetch and convert.", + "title": "Url", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "url" +]
- Changed
vc_retry_storm_guard5 fields changed- added
Input schema / properties / fanoutAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional parallel callers/workers sharing this policy.", + "title": "Fanout" +} - removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - added
Input schema / properties / retry_configAdded value: +{ + "additionalProperties": true, + "description": "Retry policy object (attempts, backoff, jitter, concurrency).", + "title": "Retry Config", + "type": "object" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "retry_config" +]
- Changed
vc_web_search5 fields changed- removed
Input schema / properties / kwargsRemoved value: -{ - "title": "Kwargs" -} - added
Input schema / properties / max_resultsAdded value: +{ + "default": 5, + "description": "Max results to return (typical 1–10).", + "title": "Max Results", + "type": "integer" +} - added
Input schema / properties / payment_signatureAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Optional x402 PAYMENT-SIGNATURE if not using X-Vibes-Key.", + "title": "Payment Signature" +} - added
Input schema / properties / queryAdded value: +{ + "description": "Search query string.", + "title": "Query", + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "kwargs" -]New value: +[ + "query" +]
9 tool updates
v1.0.3- First observed
health - First observed
pay - First observed
vc_agent_state_guard - First observed
vc_drift_guard - First observed
vc_idempotency_guard - First observed
vc_json_repair - First observed
vc_page_markdown - First observed
vc_retry_storm_guard - First observed
vc_web_search
TDQS
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.
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.
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.
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
Related MCP Connectors
Pay-per-use tool API for AI agents. Free tier, x402 USDC micropayments, or API key.
x402-paid agent tools: 18 over HTTP, 14 over stdio. USDC per call, no API key.
Pay-per-use tool marketplace for AI agents. Search, price-check, and call APIs via MCP.
Search 15K+ MCP services, A2A agents, and x402 APIs from 5 registries. Paid via x402 (USDC on Base).
Related MCP Servers
- AlicenseNot gradedqualityCmaintenance250+ 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.2MIT

gatefareio/mcp-serverofficial
AlicenseNot gradedqualityCmaintenanceMarketplace 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.632MIT- AlicenseNot gradedqualityBmaintenance55+ 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
- AlicenseAqualityAmaintenanceOpen-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 signups158AGPL 3.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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