此 MCP 可以做什么
Offers pay-per-call utilities for text compression, web scraping, PDF parsing, meeting transcript storage and search, encrypted secret vaults, idempotency, and payment verification.
工具
输入模式
{'type': 'object', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Text to compress'}, 'strategy': {'enum': ['extractive', 'truncate'], 'type': 'string', 'description': 'Compression strategy (default extractive)'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'target_tokens': {'type': 'integer', 'description': 'Approximate token budget'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['original_length', 'compressed_length', 'ratio', 'text'], 'properties': {'text': {'type': 'string', 'description': 'The compressed text'}, 'ratio': {'type': 'number', 'description': 'compressed_length / original_length. Lower is more aggressive.'}, 'strategy': {'type': 'string', 'description': 'Strategy applied, echoing your request'}, 'original_length': {'type': 'number', 'description': 'Input length in characters'}, 'compressed_length': {'type': 'number', 'description': 'Output length in characters'}}}
输入模式
{'type': 'object', 'required': ['credit_token'], 'properties': {'credit_token': {'type': 'string', 'description': 'The credit token to check'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['balance_usd'], 'properties': {'currency': {'type': 'string', 'description': "Always 'USD'"}, 'balance_usd': {'type': 'string', 'description': 'Credit remaining, in dollars'}, 'balance_micros': {'type': 'number', 'description': 'Credit remaining in integer micro-dollars, the authoritative figure'}}}
输入模式
{'type': 'object', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['credit_token', 'balance_usd', 'trial', 'exhausted'], 'properties': {'next': {'type': 'string', 'description': 'What to do when it runs out'}, 'note': {'type': 'string', 'description': 'Why a second request returns the same token rather than more credit'}, 'trial': {'type': 'boolean', 'description': 'Always true; distinguishes this from purchased credit'}, 'usage': {'type': 'string', 'description': 'How to spend the token'}, 'exhausted': {'type': 'boolean', 'description': 'True when the allowance is spent. Asking again will not refill it, so buy credit or pay per call.'}, 'balance_usd': {'type': 'string', 'description': 'Credit remaining, in dollars'}, 'granted_usd': {'type': 'string', 'description': 'Size of the one-off allowance'}, 'credit_token': {'type': 'string', 'description': 'The token to pass as `credit_token` to any paid tool. Shown here and derivable again from the same caller, but not recoverable from us.'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'namespace_token', 'meeting_id'], 'properties': {'namespace': {'type': 'string', 'description': 'Isolation scope holding your meetings'}, 'meeting_id': {'type': 'string', 'description': 'Returned by meetings_import or meetings_search'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'meeting_id'], 'properties': {'title': {'type': 'string', 'description': 'Meeting title'}, 'status': {'type': 'string', 'description': "'ok' on success"}, 'ciphertext': {'type': 'string', 'description': 'Client-encrypted transcript, for private meetings'}, 'meeting_id': {'type': 'string', 'description': 'Identifier of the meeting'}, 'transcript': {'type': 'string', 'description': 'Plaintext transcript, for queryable meetings'}, 'visibility': {'type': 'string', 'description': "'queryable' or 'private'"}}}
输入模式
{'type': 'object', 'required': ['namespace'], 'properties': {'title': {'type': 'string', 'description': 'Human-readable meeting title'}, 'source': {'type': 'string', 'description': 'Optional hint about the export format. Ignored if it disagrees with the file: WebVTT and SRT are detected from the content itself, unpacked into speaker-attributed text, and any speakers found are added to participants. Plain text is stored verbatim.'}, 'namespace': {'type': 'string', 'description': 'Isolation scope, e.g. my-meetings-<uuid>'}, 'ciphertext': {'type': 'string', 'description': "Client-side encrypted transcript. Only valid with visibility 'private'."}, 'transcript': {'type': 'string', 'description': "Plaintext transcript. Only valid with visibility 'queryable'."}, 'visibility': {'type': 'string', 'description': "'queryable' (plaintext, searchable, readable by this service) or 'private' (ciphertext, never searchable). Defaults to private."}, 'occurred_at': {'type': 'string', 'description': 'ISO-8601 time the meeting happened'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'participants': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Optional attendees'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'meeting_id'], 'properties': {'note': {'type': 'string', 'description': 'Present alongside a newly issued namespace_token'}, 'status': {'type': 'string', 'description': "'imported' on success"}, 'meeting_id': {'type': 'string', 'description': 'Identifier for later meetings_get calls'}, 'searchable': {'type': 'boolean', 'description': 'False for private meetings, which are never searchable'}, 'size_bytes': {'type': 'number', 'description': 'Stored size'}, 'visibility': {'type': 'string', 'description': "'queryable' or 'private'"}, 'namespace_token': {'type': 'string', 'description': 'Issued only on the first import into a namespace, shown exactly once'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'namespace_token'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results, 1-500 (default 100)'}, 'namespace': {'type': 'string', 'description': 'Isolation scope holding your meetings'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'count', 'meetings'], 'properties': {'count': {'type': 'number', 'description': 'Number of meetings returned'}, 'status': {'type': 'string', 'description': "'ok' on success"}, 'meetings': {'type': 'array', 'items': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Meeting title'}, 'meeting_id': {'type': 'string', 'description': 'Identifier'}, 'searchable': {'type': 'boolean', 'description': 'Whether this meeting can be searched'}, 'visibility': {'type': 'string', 'description': "'queryable' or 'private'"}}}}}}
输入模式
{'type': 'object', 'required': ['namespace', 'namespace_token', 'query'], 'properties': {'limit': {'type': 'integer', 'description': 'Max results, 1-50 (default 10)'}, 'query': {'type': 'string', 'description': 'FTS5 match expression. Use quotes for phrases, e.g. "budget review". Prefer a few distinctive words over a whole sentence.'}, 'namespace': {'type': 'string', 'description': 'Isolation scope holding your meetings'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'count', 'matches'], 'properties': {'count': {'type': 'number', 'description': 'Number of matches returned'}, 'query': {'type': 'string', 'description': 'The match expression that was run'}, 'status': {'type': 'string', 'description': "'ok' on a successful search"}, 'matches': {'type': 'array', 'items': {'type': 'object', 'properties': {'title': {'type': 'string', 'description': 'Meeting title'}, 'excerpt': {'type': 'string', 'description': 'Matching passage'}, 'meeting_id': {'type': 'string', 'description': 'Pass to meetings_get to read the full transcript'}}}, 'description': 'Ranked excerpts, best first'}, 'searched_meetings': {'type': 'number', 'description': 'How many meetings were actually searched. If 0, an empty result means nothing was searchable, NOT that the topic was never discussed.'}, 'private_meetings_skipped': {'type': 'number', 'description': 'Encrypted meetings that could not be searched'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'namespace_token', 'question'], 'properties': {'limit': {'type': 'integer', 'description': 'Max meetings to consult, 1-8 (default 5)'}, 'question': {'type': 'string', 'description': 'The question in plain language, as the user asked it. Not a search expression.'}, 'namespace': {'type': 'string', 'description': 'Isolation scope holding your meetings'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status'], 'properties': {'model': {'type': 'string', 'description': 'The model that produced the answer'}, 'terms': {'type': 'array', 'items': {'type': 'string'}, 'description': 'The search terms derived from the question'}, 'answer': {'type': ['string', 'null'], 'description': 'The grounded answer with [meeting_id] citations, or null when nothing was summarised.'}, 'status': {'type': 'string', 'description': "'ok' when an answer was generated. 'no_matches', 'unusable_question' and 'content_missing' all mean NO answer was produced and must not be read as the topic being absent."}, 'question': {'type': 'string', 'description': 'The question as asked'}, 'consulted': {'type': 'array', 'items': {'type': 'object', 'required': ['meeting_id', 'chars_used', 'truncated'], 'properties': {'title': {'type': 'string', 'description': 'Meeting title'}, 'truncated': {'type': 'boolean', 'description': 'True when only part of the transcript was read, so its silence on a point is not evidence'}, 'chars_used': {'type': 'number', 'description': 'Characters of this transcript given to the model'}, 'meeting_id': {'type': 'string', 'description': 'Pass to meetings_get to read the full transcript'}, 'occurred_at': {'type': 'string', 'description': 'ISO-8601 time the meeting happened, if known'}}}, 'description': 'The meetings the answer was actually built from'}, 'ai_generated': {'type': 'boolean', 'description': 'True: `answer` was written by an AI model'}, 'searched_meetings': {'type': 'number', 'description': 'Queryable meetings available to search. 0 means nothing was read.'}, 'private_meetings_skipped': {'type': 'number', 'description': 'Encrypted meetings that could not contribute to the answer'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'action_key'], 'properties': {'ttl': {'type': 'integer', 'description': 'Claim lifetime in seconds (default 86400)'}, 'lease_ttl': {'type': 'integer', 'description': 'Seconds you have to call once_key_complete before the claim is treated as abandoned and another agent may take it over. Set this if your work could crash partway. Omit it to hold the claim for the full ttl, which guarantees nothing else can ever run the side effect.'}, 'namespace': {'type': 'string', 'description': 'Isolation scope, e.g. your application name'}, 'action_key': {'type': 'string', 'description': 'Stable identifier for the action being claimed'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'payload_sha256': {'type': 'string', 'description': 'Optional hash of the action payload. If it differs from the stored hash, the result is a conflict.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'action_key'], 'properties': {'note': {'type': 'string', 'description': 'Present alongside a newly issued namespace_token'}, 'result': {'description': "The recorded result, present when status is 'duplicate'."}, 'status': {'type': 'string', 'description': "'claimed' means you own the action and must perform it. 'duplicate' means someone already did: do NOT repeat the side effect, use `result` instead."}, 'receipt': {'type': 'string', 'description': 'Payment receipt'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'action_key': {'type': 'string', 'description': 'The key that was claimed'}, 'claimed_at': {'type': 'string', 'description': 'ISO-8601 claim time'}, 'expires_at': {'type': 'string', 'description': 'ISO-8601 expiry of the claim record'}, 'has_result': {'type': 'boolean', 'description': 'Distinguishes a recorded null result from no result at all'}, 'namespace_token': {'type': 'string', 'description': 'Issued only on the first claim in a namespace, shown exactly once'}, 'lease_expires_at': {'type': 'string', 'description': 'Call once_key_complete before this or the claim may be taken over'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'action_key'], 'properties': {'ttl': {'type': 'integer', 'description': 'How long to retain the result, in seconds (default 86400)'}, 'result': {'description': 'Any JSON value describing the outcome, up to 16 KB serialized. Store large payloads elsewhere and record a reference.'}, 'namespace': {'type': 'string', 'description': 'Isolation scope used when the key was claimed'}, 'action_key': {'type': 'string', 'description': 'The action_key you claimed'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'action_key'], 'properties': {'result': {'description': 'The stored result, replayed to later claimants.'}, 'status': {'type': 'string', 'description': "'completed'"}, 'action_key': {'type': 'string', 'description': 'The key whose outcome was recorded'}, 'expires_at': {'type': 'string', 'description': 'When the recorded result is discarded'}, 'has_result': {'type': 'boolean', 'description': 'Distinguishes a recorded null result from no result at all'}, 'completed_at': {'type': 'string', 'description': 'ISO-8601 completion time'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'action_key'], 'properties': {'namespace': {'type': 'string', 'description': 'Isolation scope used when the key was claimed'}, 'action_key': {'type': 'string', 'description': 'The action_key to release'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'action_key'], 'properties': {'status': {'type': 'string', 'description': "'released'"}, 'action_key': {'type': 'string', 'description': 'The key that was surrendered'}}}
输入模式
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'HTTPS URL of the PDF'}, 'max_pages': {'type': 'integer', 'description': 'Optional page cap'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['url', 'page_count', 'pages'], 'properties': {'url': {'type': 'string', 'description': 'The PDF that was fetched'}, 'pages': {'type': 'array', 'items': {'type': 'object', 'properties': {'page': {'type': 'number', 'description': '1-based page number'}, 'text': {'type': 'string', 'description': 'Text on that page'}}}}, 'page_count': {'type': 'number', 'description': 'Pages extracted'}, 'extracted_at': {'type': 'string', 'description': 'ISO-8601 extraction time'}}}
输入模式
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'HTTPS URL to fetch'}, 'format': {'enum': ['text', 'markdown', 'html'], 'type': 'string', 'description': 'Output format (default text)'}, 'selector': {'type': 'string', 'description': 'Optional CSS selector to extract just part of the page'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['url', 'content'], 'properties': {'url': {'type': 'string', 'description': 'The page that was fetched'}, 'title': {'type': 'string', 'description': 'Document title, when the page has one'}, 'format': {'type': 'string', 'description': "'text', 'markdown' or 'html', echoing your request"}, 'content': {'type': 'string', 'description': 'Extracted content in the requested format'}, 'extracted_at': {'type': 'string', 'description': 'ISO-8601 fetch time'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'key', 'namespace_token'], 'properties': {'key': {'type': 'string', 'description': 'Item key'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'key'], 'properties': {'key': {'type': 'string', 'description': 'The key that was removed'}, 'status': {'type': 'string', 'description': "'deleted'"}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'key', 'namespace_token'], 'properties': {'key': {'type': 'string', 'description': 'Item key'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['exists', 'key'], 'properties': {'key': {'type': 'string', 'description': 'The key that was checked'}, 'exists': {'type': 'boolean', 'description': 'Whether the key is present. Cheaper than a retrieve.'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'namespace_token'], 'properties': {'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'count', 'items'], 'properties': {'count': {'type': 'number', 'description': 'Number of entries'}, 'items': {'type': 'array', 'items': {'type': 'object', 'properties': {'alg': {'type': 'string', 'description': 'Algorithm label'}, 'key': {'type': 'string', 'description': 'Entry key'}, 'created_at': {'type': 'string', 'description': 'ISO-8601 creation time'}, 'expires_at': {'type': ['string', 'null'], 'description': 'Expiry, or null'}, 'size_bytes': {'type': 'number', 'description': 'Stored size'}, 'updated_at': {'type': 'string', 'description': 'ISO-8601 last write'}}}, 'description': 'Metadata only — ciphertext is never included here'}, 'status': {'type': 'string', 'description': "'listed'"}}}
输入模式
{'type': 'object', 'required': ['namespace', 'key', 'namespace_token'], 'properties': {'key': {'type': 'string', 'description': 'Item key'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'key', 'ciphertext'], 'properties': {'alg': {'type': 'string', 'description': 'Algorithm label you supplied at store time'}, 'key': {'type': 'string', 'description': 'The key that was read'}, 'status': {'type': 'string', 'description': "'retrieved'"}, 'receipt': {'type': 'string', 'description': 'Payment receipt'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'ciphertext': {'type': 'string', 'description': 'Exactly the bytes you stored. Decrypt these yourself.'}, 'created_at': {'type': 'string', 'description': 'ISO-8601 creation time'}, 'expires_at': {'type': ['string', 'null'], 'description': 'Expiry, or null if it never expires'}, 'updated_at': {'type': 'string', 'description': 'ISO-8601 last write'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'namespace_token'], 'properties': {'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'namespace_token'], 'properties': {'notice': {'type': 'string', 'description': 'Human-readable warning that the old token is now invalid'}, 'status': {'type': 'string', 'description': "'rotated'"}, 'namespace_token': {'type': 'string', 'description': 'The new token, shown exactly once. The previous one stops working.'}}}
输入模式
{'type': 'object', 'required': ['namespace', 'key', 'ciphertext'], 'properties': {'alg': {'type': 'string', 'description': 'Algorithm label recorded alongside the item (default aes-256-gcm)'}, 'key': {'type': 'string', 'description': 'Item key'}, 'ttl': {'type': 'integer', 'description': 'Item lifetime in seconds'}, 'if_match': {'type': 'string', 'description': "Only write if the item's current updated_at equals this. Use it whenever you are updating a value you read earlier, or a concurrent writer's change is lost silently."}, 'if_absent': {'type': 'boolean', 'description': "Only write if the key does not already exist. Fails with status 'precondition_failed' if it does."}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'ciphertext': {'type': 'string', 'description': 'Encrypt before sending. Plaintext here would be a mistake.'}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}, 'namespace_token': {'type': 'string', 'description': 'One-time token issued by the first call that claimed this namespace. Required for every later call.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status', 'key'], 'properties': {'alg': {'type': 'string', 'description': 'Algorithm label you supplied; the service never decrypts'}, 'key': {'type': 'string', 'description': 'The key that was written'}, 'status': {'type': 'string', 'description': "'stored'"}, 'receipt': {'type': 'string', 'description': 'Payment receipt'}, 'namespace': {'type': 'string', 'description': 'Isolation scope'}, 'created_at': {'type': 'string', 'description': 'ISO-8601 creation time'}, 'expires_at': {'type': ['string', 'null'], 'description': 'Expiry, or null if it never expires'}, 'size_bytes': {'type': 'number', 'description': 'Stored ciphertext size'}, 'updated_at': {'type': 'string', 'description': 'ISO-8601 last write'}, 'namespace_token': {'type': 'string', 'description': 'Issued only on the first store into a namespace, shown exactly once'}}}
输入模式
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Public HTTPS URL of the endpoint you are about to pay. Loopback and private-network addresses are refused rather than fetched.'}, 'expect': {'type': 'object', 'properties': {'asset': {'type': 'string', 'description': 'The token contract address you expected'}, 'pay_to': {'type': 'string', 'description': 'The address you expected to pay'}, 'network': {'type': 'string', 'description': "The chain you expected. A name like 'base' and its CAIP-2 form 'eip155:8453' are understood as the same chain, so an endpoint upgrading protocol version is not reported as a mismatch."}, 'max_price_usd': {'type': 'number', 'description': 'Report a mismatch if the live price exceeds this'}}, 'description': 'Optional. What a directory, README or earlier response led you to believe. Any disagreement with the live challenge is reported.', 'additionalProperties': False}, 'method': {'type': 'string', 'description': "How to provoke the challenge: 'POST' (default), 'GET' or 'HEAD'. Use the method you intend to pay for."}, 'credit_token': {'type': 'string', 'description': 'Optional. A credit token from credits_trial or /credits/buy. Supplying it pays for this call from that balance, so no x402 payment or wallet is needed.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', 'required': ['status'], 'properties': {'url': {'type': 'string', 'description': 'The URL that was checked'}, 'drift': {'type': ['array', 'null'], 'items': {'type': 'object', 'required': ['field', 'severity'], 'properties': {'to': {'type': 'string', 'description': 'Current value'}, 'from': {'type': 'string', 'description': 'Previous value'}, 'note': {'type': 'string', 'description': 'Why it matters'}, 'field': {'type': 'string', 'description': 'What changed'}, 'severity': {'type': 'string', 'description': "'critical' when something determining where money goes is new, 'warning' when it is worth knowing, 'info' when it is merely a fact"}}}, 'description': "Differences from the last observation. Any severity 'critical' entry changes where money goes. Null means no comparison was made at all, which is not the same as an empty array."}, 'advice': {'type': 'string', 'description': 'Plain-language statement of what was and was not established'}, 'status': {'type': 'string', 'description': "'ok' means a challenge was read -- NOT that the endpoint is trustworthy. 'refused' means the URL was never fetched. 'unreachable', 'redirected' and 'not_x402' all mean no challenge was obtained."}, 'charges': {'type': 'object', 'properties': {'asset': {'type': 'string', 'description': 'Token contract address'}, 'amount': {'type': 'string', 'description': "Amount in the asset's smallest unit, as a string"}, 'pay_to': {'type': 'string', 'description': 'Address that would receive the money'}, 'scheme': {'type': 'string', 'description': 'x402 payment scheme'}, 'network': {'type': 'string', 'description': 'Chain the payment settles on'}, 'price_usd': {'type': ['string', 'null'], 'description': "Amount in dollars, or null when the token's decimals are unknown here. Null means unconverted, not free."}}, 'description': 'What the endpoint declares it will charge, right now'}, 'last_seen': {'type': 'string', 'description': 'ISO-8601 time of the previous observation'}, 'reachable': {'type': 'boolean', 'description': 'Whether the endpoint answered at all'}, 'first_seen': {'type': 'string', 'description': 'ISO-8601 time this endpoint was first observed'}, 'mismatches': {'type': 'array', 'items': {'type': 'string'}, 'description': 'How the live challenge disagrees with what you expected'}, 'times_seen': {'type': 'number', 'description': 'How many observations exist, across all callers'}, 'http_status': {'type': 'number', 'description': 'Status code the endpoint returned'}, 'last_critical': {'type': ['object', 'null'], 'properties': {'at': {'type': 'string', 'description': 'ISO-8601 time the change was recorded'}, 'to': {'type': 'string', 'description': 'The value that replaced it'}, 'from': {'type': 'string', 'description': 'The previous value'}, 'field': {'type': 'string', 'description': 'What changed: pay_to, network or asset'}}, 'description': 'The most recent previously recorded critical change, or null if there has never been one.'}, 'prior_criticals': {'type': 'number', 'description': 'How many critical changes have EVER been recorded for this endpoint, not counting this call. `drift` only compares against the last observation, so once a change has been absorbed into the baseline it stops appearing there. A non-zero value here means this endpoint has changed where money goes before, even when `drift` is empty.'}, 'first_observation': {'type': 'boolean', 'description': 'True when there was no prior record, so an empty `drift` means nothing'}, 'matches_expectation': {'type': 'boolean', 'description': 'Present only when `expect` was supplied'}}}
近期工具变更
类似的 MCP 服务器
Busymate DevTools
Captures, inspects, exports, and debugs HTTPS traffic from devices and applications, with request and response inspection, proxy …
l0-py-blocks-mcp
Manages Selise Blocks Cloud projects, schemas, data gateways, authentication, MFA, roles, permissions, CAPTCHA, SSO credentials, …
Utility Matrix
Offers calculators and analyzers for cloud costs, SRE and DORA metrics, Kubernetes and Docker configuration, secrets detection, v…
domainee
Provides domain, DNS, TLS, email-authentication, HTTP, WHOIS, availability, and website diagnostics for SaaS custom-domain setups.
Webhook Toolkit
Creates webhook endpoints, captures and replays requests, configures responses, and signs or verifies webhook payloads.
Stigmer
Discovers verified AWS method contracts, generates least-privilege IAM policies, and evaluates AWS authorization before and after…
Datoka Hooks
Relays webhook events to verified receivers with idempotency, retries, signed delivery observations, receipt verification, and de…
RDAP API
Looks up normalized RDAP registration and allocation data for domains, IPs, autonomous systems, entities, nameservers, and TLDs.