Skip to main content
Glama

get_service_details

Read-onlyIdempotent

Fetch the full record for one listing by id (from find_paid_service results), led by paid_verification — whether nohumans has paid this endpoint real USDC and confirmed delivery, with the settlement tx hash as on-chain proof where settled — plus endpoint URL, request/response JSON Schemas when provided, accepted chains, pricing, and reputation detail (probe count, last successful probe, consecutive failures). Call this before making a paid request so you know the exact request shape, current reliability, and whether real-money delivery has been independently confirmed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesListing id, as returned by find_paid_service.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYes
kindNo
nameYes
scoreNo
chainsNo
statusYes
categoryNo
transportNo
has_sampleNo
kind_notesNo
obs_pay_toNo
obs_schemeNo
payto_noteNo
descriptionNo
obs_networkNo
probe_countNo
endpoint_urlYes
price_amountYes
report_countNo
report_scoreNo
sample_queryNo
x402_versionNo
evidence_noteNo
evidence_tierNo
onchain_dailyNo
onchain_shapeNo
paid_verifiedNo
response_mimeNo
last_probed_atNo
p50_latency_msNo
p95_latency_msNo
p99_latency_msNo
payto_unstableNo
price_currencyNo
request_schemaNo
distinct_payersNo
response_schemaNo
observed_networkNo
paid_verificationNo
status_changed_atNo
verdict_age_secondsNo
payto_distinct_recentNo
onchain_unique_payers_30dNo

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed29 schema fields changed
    • addedOutput schema / properties / category
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / chains
      Added value: +{
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / description
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / distinct_payers
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / endpoint_url
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / evidence_note
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / evidence_tier
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / has_sample
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / id
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / kind
      Added value: +{
      +  "enum": [
      +    "api",
      +    "agent"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / last_probed_at
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / name
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / observed_network
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / onchain_unique_payers_30d
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / p50_latency_ms
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / p95_latency_ms
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / p99_latency_ms
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / paid_verified
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / price_amount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / price_currency
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / probe_count
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / report_count
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / report_score
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / response_mime
      Added value: +{
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / score
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "enum": [
      +    "verified",
      +    "unverified",
      +    "failing"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / status_changed_at
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / verdict_age_seconds
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / x402_version
      Added value: +{
      +  "type": [
      +    "integer",
      +    "null"
      +  ]
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "kind_notes": {
      +      "additionalProperties": true,
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "obs_network": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "obs_pay_to": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "obs_scheme": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "onchain_daily": {
      +      "items": {
      +        "additionalProperties": true,
      +        "type": "object"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "onchain_shape": {
      +      "additionalProperties": true,
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "paid_verification": {
      +      "additionalProperties": true,
      +      "type": "object"
      +    },
      +    "payto_distinct_recent": {
      +      "type": [
      +        "integer",
      +        "null"
      +      ]
      +    },
      +    "payto_note": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "payto_unstable": {
      +      "type": "boolean"
      +    },
      +    "request_schema": {
      +      "additionalProperties": true,
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "response_schema": {
      +      "additionalProperties": true,
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "sample_query": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "transport": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "name",
      +    "endpoint_url",
      +    "status",
      +    "price_amount"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds meaningful context beyond that: the paid_verification semantics (real USDC payment with settlement tx hash as on-chain proof where settled) and the reputation fields an agent can use to gauge reliability before spending money. No contradiction with annotations, and the added context is decision-relevant rather than padding.

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?

The core purpose is front-loaded ('Fetch the full record for one listing by id'), and the second sentence delivers the usage guidance cleanly. The first sentence is long and dense (~70 words), but every clause earns its place: fields, verification semantics, and reliability signals all matter to an agent deciding whether to risk real money. Slightly long, but justified by the stakes.

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 (one parameter, read-only, idempotent), the description is complete: it states what is returned, where the id comes from, when to call it, and what the paid_verification proof means. An output schema exists so return-value details are covered structurally, and annotations handle the safety profile. Nothing an agent needs to decide whether to invoke this before a paid request is missing.

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% — the single id parameter is already documented as 'Listing id, as returned by find_paid_service.' The tool description largely repeats this provenance ('from find_paid_service results') rather than adding new meaning. Baseline 3 is appropriate since the schema carries the full parameter burden and the description adds nothing beyond reinforcement.

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 names a specific verb and resource — 'Fetch the full record for one listing by id' — and immediately scopes it with provenance ('from find_paid_service results'), distinguishing it from its siblings. It enumerates the record's contents (paid_verification, endpoint URL, JSON schemas, chains, pricing, reputation), so an agent knows exactly what this tool returns and how it differs from find_paid_service and resolve_endpoint.

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 gives explicit when-to-use guidance: 'Call this before making a paid request so you know the exact request shape, current reliability, and whether real-money delivery has been independently confirmed.' It also implies the workflow sequence (find_paid_service results feed the id here), which orients the agent. It stops short of stating when-not-to-use or naming alternatives as exclusions, so it misses a 5.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.6/5.0
Disambiguation5/5

Each tool maps to a distinct stage: find_paid_service searches by need, get_service_details fetches details by listing id, and resolve_endpoint checks an arbitrary URL before spending. Although get_service_details and resolve_endpoint return similar records, their input types and intended use cases are clearly separated.

Naming Consistency5/5

All three tool names follow a consistent verb_noun snake_case pattern: find_paid_service, get_service_details, and resolve_endpoint. The verbs clearly indicate their actions and the nouns identify their targets.

Tool Count5/5

Three tools is compact but well-scoped for a directory and verification registry: discover, inspect, and verify. Each tool serves a distinct and necessary part of the pre-payment workflow, with no redundancy.

Completeness5/5

The tool surface covers the core user journey for the domain: finding a paid service, getting its full record, and checking an existing endpoint before paying. Since nohumans maintains and verifies listings itself, create/update/delete tools are not expected, and actual payment execution is outside the directory's purpose.