Skip to content

Zinvyl Marketplace Agent Gateway

by zinvyl.com · remote · no sign-in to list tools · v1.7.0 · published by com.zinvyl

Matches sanitized business needs to fixed-price services and routes authorized agents to purchase.

Final · 6Changes · 5

14 tools: 6 do something that can't be undone, 5 change things and 3 only read.

Scanned Oct 21, 2026

15 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http marketplace https://zinvyl.com/marketplace/agent-mcp

Findings

Matches of fixed checks, with the text they matched.

4 warn11 info
  • The server marks "preflight_agent_purchase" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "preflight_agent_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "resume_agent_purchase" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "resume_agent_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "find_service" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "find_service" says "find": a word for reading.

    What this check looks for
  • The server marks "prepare_purchase_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "prepare_purchase_route" says "purchase": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The description mentions "credential".

    Matched text

    description: "...nsaction check. Verifies product match, credential, standing agent policy or narrower sign..."

    What this check looks for
  • The input schema at properties.task_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

    What this check looks for
Show 9 more findings
  • The input schema at properties.request_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.request_summary.description: "...names, email addresses, phone numbers, credentials, payment data, personal data, confident..."

    What this check looks for
  • The input schema at properties.contains_no_personal_data_or_secrets.description mentions "credentials".

    Matched text

    inputSchema.properties.contains_no_personal_data_or_secrets.description: "True only after removing personal data, credentials, confidential material, and payment dat..."

    What this check looks for
  • The input schema at properties.task_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

    What this check looks for
  • The input schema at properties.task_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

    What this check looks for
  • The input schema at properties.task_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

    What this check looks for
  • The input schema at properties.task_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.task_summary.description: "...ed, bounded task summary. Never include credentials, tokens, payment data, personal data, c..."

    What this check looks for
  • The input schema at properties.summary.description mentions "credentials".

    Matched text

    inputSchema.properties.summary.description: "...d-versus-actual outcome. Do not include credentials, tokens, personal data, or production s..."

    What this check looks for
  • The input schema at properties.request_summary.description mentions "credentials".

    Matched text

    inputSchema.properties.request_summary.description: "...names, email addresses, phone numbers, credentials, payment data, personal data, confident..."

    What this check looks for
  • The input schema at properties.contains_no_personal_data_or_secrets.description mentions "credentials".

    Matched text

    inputSchema.properties.contains_no_personal_data_or_secrets.description: "True only after removing personal data, credentials, confidential material, and payment dat..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Can't be undone 6Claude Code: ask
  • acknowledge_purchase_offerRecords that an operator-controlled agent actually received and retained one exact offer and registered a durable return method.No findings

    Why it is in this group

    • The name "acknowledge_purchase_offer" says "purchase": a word that usually means money moves, which cannot be taken back.
    Description, as the server wrote it
    Records that an operator-controlled agent actually received and retained one exact offer and registered a durable return method. This creates no order, grants no authority, stores no callback URL, and never proves payment.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • match_or_capture_demandCompatibility alias for existing clients; new integrations should use qualify_task first and find_service only after consent.2 findings

    Why it is in this group

    • The name "match_or_capture_demand" says "capture": a word that usually means money moves, which cannot be taken back.

    Findings

    • Info

      The input schema at properties.request_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.request_summary.description: "...names, email addresses, phone numbers, credentials, payment data, personal data, confident..."

      What this check looks for
    • Info

      The input schema at properties.contains_no_personal_data_or_secrets.description mentions "credentials".

      Matched text

      inputSchema.properties.contains_no_personal_data_or_secrets.description: "True only after removing personal data, credentials, confidential material, and payment dat..."

      What this check looks for
    Description, as the server wrote it
    Compatibility alias for existing clients; new integrations should use qualify_task first and find_service only after consent. Returns an existing fixed offer when one matches. Otherwise records privacy-minimized product-demand telemetry for owner review; it creates no order, quote, outreach, funding claim, or delivery commitment.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • preflight_agent_purchaseRead-only transaction check.3 findings

    Why it is in this group

    • The name "preflight_agent_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The description mentions "credential".

      Matched text

      description: "...nsaction check. Verifies product match, credential, standing agent policy or narrower sign..."

      What this check looks for
    • Info

      The input schema at properties.task_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

      What this check looks for
    • Warn

      The server marks "preflight_agent_purchase" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "preflight_agent_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Read-only transaction check. Verifies product match, credential, standing agent policy or narrower signed mandate, exact offer allowlist, price ceiling, current terms, sanitized scope, capacity, and payment-route readiness. It creates no intent, checkout, charge, order, or telemetry event.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • prepare_purchase_routeCompatibility inspection alias for existing clients; new integrations should use get_purchase_requirements and buy_service.1 finding

    Why it is in this group

    • The name "prepare_purchase_route" says "purchase": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "prepare_purchase_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "prepare_purchase_route" says "purchase": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Compatibility inspection alias for existing clients; new integrations should use get_purchase_requirements and buy_service. Use only after selecting an offer and confirming explicit purchasing authority. Returns the purchase-intent schema and payment-route API endpoint; it does not create, fund, verify, or start an order.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • recover_abandoned_purchaseRecovers the original transaction for the same authenticated buyer, authority policy, request ID, offer, sanitized scope, amount, currency, funding route, and current terms.1 finding

    Why it is in this group

    • The name "recover_abandoned_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.

    Findings

    • Info

      The input schema at properties.task_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

      What this check looks for
    Description, as the server wrote it
    Recovers the original transaction for the same authenticated buyer, authority policy, request ID, offer, sanitized scope, amount, currency, funding route, and current terms. Before funding it resumes an expired reservation; after verified funding it safely reissues scoped order access without charging again.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • resume_agent_purchaseRead-only durable continuation.1 finding

    Why it is in this group

    • The name "resume_agent_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "resume_agent_purchase" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "resume_agent_purchase" says "purchase": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Read-only durable continuation. Returns the exact observed stop and next executable action for a previously returned opaque continuation token. It creates no purchase, checkout, charge, or order.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Changes things 5Claude Code: ask
  • buy_matching_serviceOne-call path for a buyer agent that has explicit delegated authority for a stated allowlist of exact Zinvyl offers.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The input schema at properties.task_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

      What this check looks for
    Description, as the server wrote it
    One-call path for a buyer agent that has explicit delegated authority for a stated allowlist of exact Zinvyl offers. Zinvyl matches one sanitized outcome and creates a bounded purchase intent only when the matched offer is allowlisted and its exact fee fits the delegated ceiling. A catalog gap or authority mismatch creates no order or payment claim.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • buy_serviceFive-field, retry-safe agent purchase path.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The input schema at properties.task_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.task_summary.description: "...anitized bounded outcome. Never include credentials, tokens, payment data, personal data, c..."

      What this check looks for
    Description, as the server wrote it
    Five-field, retry-safe agent purchase path. Creates one bounded intent only when delegated authority covers the exact fee. Reusing buyer.request_id for an unchanged purchase returns the same intent. Adaptively selects Stripe-hosted checkout by default while preserving explicit delegated-card and MPP routes, and never claims payment before ledger verification.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • create_purchase_intentCompatibility alias for existing clients; new integrations should use buy_service.1 finding

    Why it is in this group

    • The name "create_purchase_intent" says "create": a word for a change.

    Findings

    • Info

      The input schema at properties.task_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.task_summary.description: "...ed, bounded task summary. Never include credentials, tokens, payment data, personal data, c..."

      What this check looks for
    Description, as the server wrote it
    Compatibility alias for existing clients; new integrations should use buy_service. Use only after selecting one offer when the calling agent has explicit delegated authority for that exact fixed fee. Creates the governed purchase intent and quote, then returns adaptive Stripe-hosted checkout by default. It does not itself claim payment or start work.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • find_serviceOptional demand-feedback route.3 findings

    Why it is in this group

    • The name "find_service" says "find": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Info

      The input schema at properties.request_summary.description mentions "credentials".

      Matched text

      inputSchema.properties.request_summary.description: "...names, email addresses, phone numbers, credentials, payment data, personal data, confident..."

      What this check looks for
    • Info

      The input schema at properties.contains_no_personal_data_or_secrets.description mentions "credentials".

      Matched text

      inputSchema.properties.contains_no_personal_data_or_secrets.description: "True only after removing personal data, credentials, confidential material, and payment dat..."

      What this check looks for
    • Warn

      The server marks "find_service" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "find_service" says "find": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Optional demand-feedback route. Describe one authorized sanitized business need once. Zinvyl returns the best fixed-scope offer and next purchase action, or records an unsupported need as privacy-minimized product telemetry. For read-only matching, start with qualify_task.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • qualify_taskUse when a buyer's sanitized problem is not yet mapped to an offer.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The input schema at properties.summary.description mentions "credentials".

      Matched text

      inputSchema.properties.summary.description: "...d-versus-actual outcome. Do not include credentials, tokens, personal data, or production s..."

      What this check looks for
    Description, as the server wrote it
    Use when a buyer's sanitized problem is not yet mapped to an offer. Returns one fixed offer ID, a broader-service route, or a scope-reduction decision; it performs no diagnosis and creates no order.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 3Claude Code: allow
  • get_acceptance_testsUse after qualify_task or list_offers identifies an offer and detailed scope review is useful.No findings

    Why it is in this group

    • The name "get_acceptance_tests" says "get": a word for reading.
    Description, as the server wrote it
    Use after qualify_task or list_offers identifies an offer and detailed scope review is useful. Returns the exact delivery acceptance tests, exclusions, and evidence boundaries that limit what Zinvyl may claim for that offer.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_purchase_requirementsUse after selecting an offer.No findings

    Why it is in this group

    • The name "get_purchase_requirements" says "get": a word for reading.
    Description, as the server wrote it
    Use after selecting an offer. Returns the exact price, five-field buy_service contract, delegated-authority requirements, machine-payment route, capacity limits, and authoritative funding rule without creating an intent.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_offersUse when comparing Zinvyl's full eight-offer catalog.No findings

    Why it is in this group

    • The name "list_offers" says "list": a word for reading.
    Description, as the server wrote it
    Use when comparing Zinvyl's full eight-offer catalog. For a single sanitized need, start with read-only qualify_task. Returns price, delivery window, required inputs, exclusions, and direct intake URL; use get_acceptance_tests only after selecting an offer.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.7.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http marketplace https://zinvyl.com/marketplace/agent-mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__marketplace__list_offers",
      "mcp__marketplace__get_purchase_requirements",
      "mcp__marketplace__get_acceptance_tests"
    ],
    "ask": [
      "mcp__marketplace__acknowledge_purchase_offer",
      "mcp__marketplace__preflight_agent_purchase",
      "mcp__marketplace__resume_agent_purchase",
      "mcp__marketplace__find_service",
      "mcp__marketplace__buy_matching_service",
      "mcp__marketplace__buy_service",
      "mcp__marketplace__recover_abandoned_purchase",
      "mcp__marketplace__create_purchase_intent",
      "mcp__marketplace__qualify_task",
      "mcp__marketplace__match_or_capture_demand",
      "mcp__marketplace__prepare_purchase_route"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as marketplace. Review it before you use it.