site
Wen Receipts: the site's own MCP server — dataset, enquiry, entities, listing (enquiry = a human...
Should I use this
Quality & Safety
Findings (3)
- LOWin entities_in
- LOWin placements_active
- LOWin claim_public
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"site": {
"url": "https://wenreceipts.com/mcp"
}
}
}Remote endpoints
https://wenreceipts.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (32)
🟢dataset_columns
The columns, which of them are numeric, the row count and the provenance banner of the Wen Receipts dataset. Call this first to learn the schema.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢dataset_search(query, limit)
Rows of the Wen Receipts dataset whose cells contain the query (case-insensitive), up to 50.
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 1,
"description": "text to look for in any cell"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"query"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪dataset_row(column, value)
The rows of the Wen Receipts dataset where a column equals a value exactly (case-insensitive).
Input Schema
{
"type": "object",
"properties": {
"column": {
"type": "string",
"minLength": 1
},
"value": {
"type": "string",
"minLength": 1
}
},
"required": [
"column",
"value"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪dataset_compare(column, values)
The rows of the Wen Receipts dataset whose column is any of the given values, in the order given — for "X vs Y" questions.
Input Schema
{
"type": "object",
"properties": {
"column": {
"type": "string",
"minLength": 1
},
"values": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
},
"minItems": 2,
"maxItems": 10
}
},
"required": [
"column",
"values"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪dataset_stats(column)
count, min, max, mean, median and sum of a numeric column of the Wen Receipts dataset (grouping commas and currency are handled; non-numeric rows are excluded and counted).
Input Schema
{
"type": "object",
"properties": {
"column": {
"type": "string",
"minLength": 1
}
},
"required": [
"column"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪dataset_top(column, limit, ascending)
The highest (or lowest) rows of the Wen Receipts dataset by a numeric column — "which is the most/least X".
Input Schema
{
"type": "object",
"properties": {
"column": {
"type": "string",
"minLength": 1
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
},
"ascending": {
"type": "boolean",
"description": "true for the lowest first; default highest first"
}
},
"required": [
"column"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢dataset_provenance
The source, the date it was computed, the licence and the citation for the Wen Receipts dataset. Read this to attribute a figure correctly.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪entities_schema
Which fields the Wen Receipts register register carries and on how many entities, the regions and services, the identifier schemes, and how to cite it. Call this first.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪entity_lookup(scheme, value, slug)
The Wen Receipts register entry for a firm, by its register identifier (scheme + value, e.g. lei) or by the slug of its page. Exact match; returns the whole record with its page.
Input Schema
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"minLength": 2,
"maxLength": 24,
"description": "identifier scheme, e.g. lei, fca_frn, tdlr_license"
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢entities_search(q, region, service, limit)
Entities of Wen Receipts register whose name, commercial name, website, address or authority contains the query, optionally within a region (id or name) and a service (slug or name). Up to 50 rows.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"maxLength": 120
},
"region": {
"type": "string",
"maxLength": 60
},
"service": {
"type": "string",
"maxLength": 80
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪entities_in(region, service, page, pageSize)
The Wen Receipts register entities in one region (a state or a jurisdiction, by id or name), optionally for one service, 50 a page.
Input Schema
{
"type": "object",
"properties": {
"region": {
"type": "string",
"minLength": 2,
"maxLength": 60
},
"service": {
"type": "string",
"maxLength": 80
},
"page": {
"type": "integer",
"minimum": 1
},
"pageSize": {
"type": "integer",
"minimum": 1,
"maximum": 50
}
},
"required": [
"region"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢entities_export(page, pageSize)
Every entity of Wen Receipts register, 200 a page, with provenance. Needs an access key (Authorization: Bearer); export pages are metered per key per day. Without a key the answer says how to get one.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "integer",
"minimum": 1
},
"pageSize": {
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢listing_describe
What a listing on Wen Receipts is, what it costs, how it is paid, who publishes it, and every profile field it takes. Read this to the person first.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listing_terms
The clauses a listing is judged by, their version (send it back as termsVersion), and every profile field the directory takes.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢agent_session_start(address)
Give a Solana address; get the exact message to sign. A signature, not a transaction: no fee, nothing moves. Then call agent_session_verify with the base64 signature.
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 32,
"maxLength": 44
}
},
"required": [
"address"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪agent_session_verify(address, message, signature)
The address, the exact message from agent_session_start and its base64 Ed25519 signature. Returns a session token to pass as `session` to every later call (valid 30 days, revocable from the account page).
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"minLength": 32,
"maxLength": 44
},
"message": {
"type": "string",
"minLength": 20,
"maxLength": 2000
},
"signature": {
"type": "string",
"minLength": 40,
"maxLength": 200
}
},
"required": [
"address",
"message",
"signature"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪claim_start(session, scheme, value)
Names the entry (scheme + value, e.g. lei); returns the proof domain the register lists and the token to place as a TXT record, a well-known file, or via a verified email there.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"scheme": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"session",
"scheme",
"value"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪claim_verify(session, id)
The server reads DNS, the well-known file and the verified email; verified claims are badges on the profile.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"id": {
"type": "string",
"minLength": 10,
"maxLength": 60
}
},
"required": [
"session",
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪claim_status(session)
Every claim of this account with its status and, while pending, the instructions.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
}
},
"required": [
"session"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡listing_draft(session, name, website, enquiryEmail, languages, ...)
Creates a listing draft on Wen Receipts. Send the fullest profile you can (listing_describe lists the fields); a scam-shaped or off-list field is refused by name. Returns the listing id and status awaiting_payment.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"website": {
"type": "string",
"maxLength": 200
},
"enquiryEmail": {
"type": "string",
"maxLength": 160
},
"languages": {
"type": "string",
"maxLength": 200
},
"about": {
"type": "string",
"maxLength": 1200
},
"services": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
]
},
"jurisdictions": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "string"
}
],
"description": "ISO codes"
},
"termsVersion": {
"type": "string",
"minLength": 1
},
"termsAccepted": {
"type": "boolean"
},
"authorised": {
"type": "boolean"
},
"register": {
"type": "object",
"properties": {
"scheme": {
"type": "string"
},
"value": {
"type": "string"
}
},
"required": [
"scheme",
"value"
],
"additionalProperties": false
},
"profile": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"session",
"name",
"services",
"jurisdictions",
"termsVersion",
"termsAccepted",
"authorised"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listing_pay_card(session, id)
Returns a Stripe Checkout URL at the site's price. A human completes it in a browser; the site learns of payment from Stripe's verified event, never from the browser.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"id": {
"type": "string",
"minLength": 10,
"maxLength": 60
}
},
"required": [
"session",
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡listing_pay_stripe(session, id, paymentMethod)
Send a Stripe payment method id (pm_...) the agent is entitled to use; the server charges the SITE's price off-session. Answers succeeded (the listing enters review) or requires_action (use listing_pay_card for a human); never charges an amount you name.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"id": {
"type": "string",
"minLength": 10,
"maxLength": 60
},
"paymentMethod": {
"type": "string",
"pattern": "^pm_[A-Za-z0-9]+$"
}
},
"required": [
"session",
"id",
"paymentMethod"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢listing_pay_usdc(session, id)
Returns the Solana Pay transfer request: recipient, exact amount, USDC mint and a unique reference. Pay it from the wallet (include the reference as a read-only key), then call listing_confirm_usdc.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"id": {
"type": "string",
"minLength": 10,
"maxLength": 60
}
},
"required": [
"session",
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listing_confirm_usdc(session, id)
The SERVER finds the transfer by reference and reads the treasury's balance change; a short or wrong-token transfer is reported by name and not credited. On success the listing enters review.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"id": {
"type": "string",
"minLength": 10,
"maxLength": 60
}
},
"required": [
"session",
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listing_status(session)
Every listing of this account with its status (awaiting_payment, pending_review, published, refused, withdrawn, expired).
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
}
},
"required": [
"session"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listing_withdraw(session, id)
Takes down a listing of this account.
Input Schema
{
"type": "object",
"properties": {
"session": {
"type": "string",
"minLength": 20,
"maxLength": 300,
"description": "the session token from agent_session_verify"
},
"id": {
"type": "string",
"minLength": 10,
"maxLength": 60
}
},
"required": [
"session",
"id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪listings_published(scheme, value)
What firms have added on top of the register (published rows only), optionally for one register entry.
Input Schema
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"maxLength": 40
},
"value": {
"type": "string",
"maxLength": 120
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪placements_active(page, region, leaf)
The Sponsored slot's contents for a page (home | region | leaf); labelled as sponsored in the answer.
Input Schema
{
"type": "object",
"properties": {
"page": {
"type": "string",
"enum": [
"home",
"region",
"leaf"
]
},
"region": {
"type": "string",
"maxLength": 40
},
"leaf": {
"type": "string",
"maxLength": 120
}
},
"required": [
"page"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪claim_public(scheme, value)
Whether an entry has a verified claim, by which proof and when — never by whom.
Input Schema
{
"type": "object",
"properties": {
"scheme": {
"type": "string",
"minLength": 2,
"maxLength": 40
},
"value": {
"type": "string",
"minLength": 1,
"maxLength": 120
}
},
"required": [
"scheme",
"value"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡enquiry_describe
Read first. States plainly what submit_enquiry does on Wen Receipts: it starts an enquiry with human providers who quote directly. Nothing is bought, ordered or paid; no quote is guaranteed; it is free. Also returns who receives the details, the consent wording, and how the person confirms.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡enquiry_fields
Every field of the Wen Receipts enquiry: key, label, type, whether required, help text and the allowed options where there are any. Pass answers to submit_enquiry keyed by field key.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡submit_enquiry(answers, consent, confirmation)
Submits an enquiry to Wen Receipts — NOT a purchase, NOT a guaranteed quote. Step 1: call with the answers (keyed by field key from enquiry_fields) and consent=true; it validates and returns a summary, the consent line and a confirmation token — show the person the summary and the consent line. Step 2: only if the person agrees, call again with the same answers, consent=true and the confirmation token; the enquiry is then submitted, and the person receives an email with a link they must click before any provider sees it. Consent means the person has read and agreed to: "By submitting you agree Wen Receipts may reply to your message by email. We do not sell your details to anyone."
Input Schema
{
"type": "object",
"properties": {
"answers": {
"type": "object",
"additionalProperties": {
"type": [
"string",
"number",
"boolean"
]
},
"description": "the person's answers, keyed by field key"
},
"consent": {
"type": "boolean",
"description": "true only when the person has agreed to: By submitting you agree Wen Receipts may reply to your message by email. We do not sell your details to anyone."
},
"confirmation": {
"type": "string",
"description": "the confirmation token from step 1, after the person has approved the summary"
}
},
"required": [
"answers",
"consent"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence