workeey
Registry code: 0b694fbdfc3be082
Workeey's tools for tradespeople. job_check: call it with a job and a place. For New York City, the answer lists follow-up questions; call again with answers for a sharper card. Every researched answer carries its official source and the day it was checked. Show the honesty line with the answer: it is not legal or tax advice. price_check: for a quote, call it FIRST with the job in words and where ("toilet repair", "Brooklyn, NY") and price from its answer, not from your own guess; if it asks which job, ask the person. Give the person its draft_link to open the quote already filled in. For a…
- endpoint
- https://www.workeey.com/api/mcp
- protocol
- streamable-http ·2025-06-18
- authentication
- none observed
- public key
- none — nobody has proven they own this listing · is it yours? claim it
- karma
- 0 · newcomer
- Is workeey live?
- Yes — it answered the hub's last check (checked 13h ago). It answered 100% of checks over the last 30 days.
- Is workeey free to use?
- Yes — the hub reached it with no key and no payment.
- What tools does workeey have?
- 6 tools: get_quote_status, revise_quote_link, cancel_quote_link, job_check, create_quote_link, price_check.
- Is workeey safe to connect?
- The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
90 days 100%· all time 100%
last good check
of 6 tools
- unknown → live
Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.
through this hub
successful
what callers paid
Access was read off the card rather than seen on the wire: inferred: the handshake, the tool list and a call without arguments went through with no key and no payment asked; no tool was run
Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.
get_quote_status unknown 13h ago
See where a Quote Link stands: its status, how often the customer page was opened, and every answer the customer gave (approve, decline or changes; the option and add-ons picked, the amount, the name they typed, the time, and which version of the quote it answered, with any message), plus every version of the quote, the date it is valid until, and the customer_url. Read-only. Status is one of open, approved, declined, changes_requested, expired, cancelled or disabled. Needs the quote's manage_token (from create_quote_link, or the code after # in the private link https://www.workeey.com/q/m/#…; the whole private link is accepted too). An answer names its option by index from 0; option_name and addon_names give the names from the version that was answered. Report what you find to the user only: the manage token and private link never go to the customer. To change the quote, call revise_quote_link with the complete new quote (start from the quote in the last entry of versions).
{ "type": "object", "properties": { "manage_token": { "type": "string", "maxLength": 400, "minLength": 20, "description": "The quote's private manage token: the long code after # in the private link (https://www.workeey.com/q/m/#<token>), returned as manage_token by create_quote_link. The whole private link is accepted too. Required, unless your MCP client already sends it as an Authorization: Bearer header." } }, "additionalProperties": false }arguments 12 linesrevise_quote_link unknown never probed
Change a Quote Link that already exists: send the COMPLETE new quote (every field, exactly as for create_quote_link, not only the changes) together with the quote's manage_token. Start from the quote in the last entry of versions from get_quote_status, change what the user asked, and send all of it. The customer link stays the same and now shows the new version, marked as updated. Earlier answers stay attached to the version they answered (an approval of version 1 shows as approved v1, quote since revised), and the customer can answer the new version. Same rules as create_quote_link: only prices the user gave you or agreed to from price_check; no links, email addresses (except business.email) or payment details; the customer's display name only. Returns the new version number and its totals. If it returns errors, each one names the field, the problem and the fix: apply every fix and call again.
{ "type": "object", "required": [ "business", "customer", "title", "options" ], "properties": { "tax": { "type": "object", "properties": { "note": { "type": "string", "examples": [ "Tax not included" ], "maxLength": 80, "description": "A tax note instead of a number." }, "label": { "type": "string", "examples": [ "Sales tax" ], "maxLength": 40, "description": "Optional, with rate_percent or amount: what the tax is called." }, "amount": { "type": "number", "minimum": 0, "examples": [ 120 ], "description": "A fixed tax amount." }, "rate_percent": { "type": "number", "maximum": 30, "minimum": 0, "examples": [ 8.875 ], "description": "A tax rate in percent: 8.875 means 8.875%." } }, "description": "Optional. Tax exactly as the user supplies it: Workeey never decides tax rules. Send ONE of rate_percent (applied to the chosen option plus the chosen add-ons), amount (a fixed tax amount) or note (for example \"Tax not included\"). Leave tax out if the user gave no tax information.", "additionalProperties": false }, "notes": { "type": "string", "maxLength": 2000, "description": "Optional. Anything else the customer should know: what is included, timing, access. No links, email addresses or payment details (Zelle, Venmo, Cash App, PayPal, bank or card numbers, crypto)." }, "terms": { "type": "string", "maxLength": 2000, "description": "Optional. The business's terms, such as warranty or cancellation. No links, email addresses or payment details (Zelle, Venmo, Cash App, PayPal, bank or card numbers, crypto)." }, "title": { "type": "string", "examples": [ "Replace 50-gallon gas water heater" ], "maxLength": 120, "minLength": 1, "description": "The job, in a few words." }, "addons": { "type": "array", "items": { "type": "object", "required": [ "name", "price" ], "properties": { "name": { "type": "string", "examples": [ "Expansion tank" ], "maxLength": 80, "minLength": 1, "description": "Add-on name." }, "price": { "type": "number", "minimum": 0, "examples": [ 95 ], "description": "The add-on price as a plain number." }, "description": { "type": "string", "maxLength": 300, "description": "Optional. A short explanation." } }, "additionalProperties": false }, "maxItems": 10, "description": "Optional. Extras the customer can tick on top of the option they pick (up to 10)." }, "source": { "type": "object", "properties": { "client": { "type": "string", "examples": [ "Claude", "ChatGPT", "Gemini" ], "maxLength": 60, "description": "The name of your AI app." } }, "description": "Optional. Which AI app is making this quote. Recorded as an unverified claim and never shown to the customer.", "additionalProperties": false }, "deposit": { "type": "object", "properties": { "note": { "type": "string", "examples": [ "Due when the job is booked" ], "maxLength": 200, "description": "Optional. When the deposit is due. No links, email addresses or payment details (Zelle, Venmo, Cash App, PayPal, bank or card numbers, crypto)." }, "amount": { "type": "number", "minimum": 0, "description": "Deposit as a fixed amount." }, "percent": { "type": "number", "maximum": 100, "minimum": 0, "examples": [ 25 ], "description": "Deposit as a percent of the total." } }, "description": "Optional. Deposit wording shown on the quote: percent OR amount, and an optional note. Text only: Workeey takes no payments.", "additionalProperties": false }, "options": { "type": "array", "items": { "type": "object", "required": [ "name", "items" ], "properties": { "name": { "type": "string", "examples": [ "Standard" ], "maxLength": 40, "minLength": 1, "description": "Option name." }, "items": { "type": "array", "items": { "type": "object", "required": [ "description", "unit_price" ], "properties": { "quantity": { "type": "number", "default": 1, "maximum": 100000, "examples": [ 1 ], "description": "Optional. How many units. Default 1.", "exclusiveMinimum": 0 }, "unit_price": { "type": "number", "maximum": 10000000, "minimum": 0, "examples": [ 1150 ], "description": "The price of one unit as a plain number with at most 2 decimals: 1450 or 2.1, never \"$1,450\" or \"about 1.5k\". Use only prices the user gave you, or a starting price from price_check that they agreed to." }, "description": { "type": "string", "examples": [ "50-gallon gas water heater, 6-year warranty" ], "maxLength": 200, "minLength": 1, "description": "What the line is for." } }, "additionalProperties": false }, "maxItems": 50, "minItems": 1, "description": "The option's line items (1 to 50). The option's subtotal is the sum of quantity × unit_price." }, "description": { "type": "string", "maxLength": 500, "description": "Optional. What this option includes, or how it differs from the others." } }, "additionalProperties": false }, "maxItems": 4, "minItems": 1, "description": "The choices the customer picks between: 1 to 4 options (for example Standard and Premium), each priced on its own. A quote with a single price has one option. Workeey adds up every option, so send no totals." }, "business": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "examples": [ "Rivera Plumbing" ], "maxLength": 80, "minLength": 1, "description": "Business name, shown as the heading of the quote." }, "email": { "type": "string", "examples": [ "[email protected]" ], "maxLength": 120, "description": "Optional. The business's email address: the only field where an email address is allowed." }, "phone": { "type": "string", "examples": [ "718-555-0142" ], "maxLength": 30, "description": "Optional. The business's phone number, written the way the user wants it shown." }, "address": { "type": "string", "maxLength": 160, "description": "Optional. The business's address." }, "license": { "type": "string", "examples": [ "NYC LMP 12345" ], "maxLength": 60, "description": "Optional. The business license number, as the user gives it." } }, "description": "The user's own business, the one sending the quote. The customer sees these details marked as provided by the creator, not verified by Workeey.", "additionalProperties": false }, "currency": { "type": "string", "default": "USD", "pattern": "^[A-Z]{3}$", "examples": [ "USD" ], "description": "Optional. Three-letter ISO 4217 code of a currency with cents (2 decimals), like USD, CAD or EUR. Default USD. A currency without 2-decimal cents (JPY, KWD) isn't supported yet." }, "customer": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "examples": [ "Dana" ], "maxLength": 80, "minLength": 1, "description": "The name the customer sees on the quote, such as a first name." } }, "description": "Who the quote is for: a display name only. Never the customer's phone, email or address; quote links get shared and stay in chat history.", "additionalProperties": false }, "location": { "type": "string", "examples": [ "Brooklyn, NY" ], "maxLength": 80, "description": "Optional. Where the job is: city and state only, never the customer's street address." }, "exclusions": { "type": "string", "maxLength": 2000, "description": "Optional. What the price does not include." }, "valid_until": { "type": "string", "format": "date", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Optional. The date the quote is valid until, YYYY-MM-DD. Default 30 days from today; at most 365 days ahead." }, "manage_token": { "type": "string", "maxLength": 400, "minLength": 20, "description": "The quote's private manage token: the long code after # in the private link (https://www.workeey.com/q/m/#<token>), returned as manage_token by create_quote_link. The whole private link is accepted too. Required, unless your MCP client already sends it as an Authorization: Bearer header." } }, "additionalProperties": false }arguments 329 linescancel_quote_link unknown never probed
Cancel a Quote Link so the customer can no longer approve it: the customer link then says the quote was cancelled. Call it only when the user clearly asks to cancel or withdraw the quote. To change prices or options instead, use revise_quote_link. There is no tool to undo a cancel. The answers and versions so far are kept. Needs the quote's manage_token (the code after # in the private link https://www.workeey.com/q/m/#…; the whole private link is accepted too).
{ "type": "object", "properties": { "manage_token": { "type": "string", "maxLength": 400, "minLength": 20, "description": "The quote's private manage token: the long code after # in the private link (https://www.workeey.com/q/m/#<token>), returned as manage_token by create_quote_link. The whole private link is accepted too. Required, unless your MCP client already sends it as an Authorization: Bearer header." } }, "additionalProperties": false }arguments 12 linesjob_check unknown 13h ago
For a trade job (plumbing, electrical, HVAC, handyman and more) and a place in the United States: whether it needs a permit, which license, whether sales tax goes on the invoice, the official forms, and where to take the waste — each with the official pages quoted, their dates and the day it was checked, and who to confirm with. New York City is researched in full and may ask follow-up questions (a first call with no answers returns them); every state has its license and sales tax answers, and its permit is not researched yet. From Workeey's researched data, read-only, no AI. Not legal or tax advice.
{ "type": "object", "required": [ "job", "place" ], "properties": { "job": { "enum": [ "replace-faucet-or-sink", "replace-toilet", "replace-water-heater-gas", "replace-water-heater-electric", "replace-gas-range-or-appliance", "replace-light-fixture", "add-or-replace-outlet-or-switch", "install-ceiling-fan", "replace-electrical-panel", "interior-painting", "drywall-repair-or-patch", "replace-flooring", "tile-bathroom-or-backsplash", "replace-kitchen-cabinets-and-countertops", "install-window-or-through-wall-ac", "install-ductless-mini-split", "replace-windows", "small-bathroom-remodel-fixtures-in-place", "replace-boiler" ], "type": "string", "description": "The job. replace-faucet-or-sink: Replace a faucet or sink; replace-toilet: Replace a toilet; replace-water-heater-gas: Replace a gas water heater; replace-water-heater-electric: Replace an electric water heater; replace-gas-range-or-appliance: Replace a gas range or connect a gas appliance (stove, oven, dryer); replace-light-fixture: Replace a light fixture; add-or-replace-outlet-or-switch: Add or replace an outlet or switch; install-ceiling-fan: Install a ceiling fan; replace-electrical-panel: Replace an electrical panel; interior-painting: Interior painting; drywall-repair-or-patch: Drywall repair or patch; replace-flooring: Replace flooring; tile-bathroom-or-backsplash: Tile a bathroom or kitchen backsplash; replace-kitchen-cabinets-and-countertops: Replace kitchen cabinets and countertops; install-window-or-through-wall-ac: Install a window or through-wall AC unit; install-ductless-mini-split: Install a ductless mini-split; replace-windows: Replace windows; small-bathroom-remodel-fixtures-in-place: Small bathroom remodel (fixtures stay in place); replace-boiler: Replace a boiler." }, "work": { "enum": [ "repairTPP", "repairRealProperty", "installation", "newConstruction" ], "type": "string", "description": "For sales tax, the kind of work: repairTPP: Repairing a thing; repairRealProperty: Repairing a home or building; installation: Installing; newConstruction: New build. Leave it out to see all four answers." }, "place": { "enum": [ "nyc", "al", "ak", "az", "ar", "ca", "co", "ct", "de", "dc", "fl", "ga", "hi", "id", "il", "in", "ia", "ks", "ky", "la", "me", "md", "ma", "mi", "mn", "ms", "mo", "mt", "ne", "nv", "nh", "nj", "nm", "ny", "nc", "nd", "oh", "ok", "or", "pa", "ri", "sc", "sd", "tn", "tx", "ut", "vt", "va", "wa", "wv", "wi", "wy" ], "type": "string", "description": "nyc for New York City, or a state's two-letter code in lower case (ny is New York outside New York City, dc is Washington, DC)." }, "answers": { "type": "object", "description": "New York City only: the job's follow-up questions, each question id → one of its options, in its words or by its number from 1. The answer lists the questions and their options.", "additionalProperties": { "type": "string" } } }, "additionalProperties": false }arguments 110 linescreate_quote_link unknown never probed
Create a Quote Link: a web page where the user's customer sees a quote for a job, picks one of up to 4 options and any add-ons, types their name, and approves, declines or asks for changes. Free; nobody needs an account. For a tradesperson or small service business who wants to send a customer a quote or estimate they can approve online. Call it ONLY when the user asks you to publish the quote for them: the page is live the moment it is created. Otherwise give the user a ready-made link, which publishes nothing (price_check's draft_link, or https://www.workeey.com/quote-links/new#draft= followed by the quote JSON passed through encodeURIComponent): they open it, check the quote and press Create approval link themselves. Before calling: use only prices the user gave you, or a starting price from price_check, shown with its sources, that they agreed to (never invent or guess one; ask), and confirm the details with the user, because the page is live as soon as it is created (it can be revised or cancelled later). Rules for every text field: no links or web addresses, no email addresses (only business.email), and no payment details (Zelle, Venmo, Cash App, PayPal, bank, card or account numbers, crypto); the user sends payment details to the customer themselves. customer.name is a display name only, such as "Dana": never the customer's phone, email or address. Returns customer_url, manage_url and manage_token. Give the customer_url to the user to send to their customer. Give the manage_url to the user only, and tell them to save it: it works like a password (it shows the customer's answer and can revise or cancel the quote), so it never goes to the customer. Keep manage_token for get_quote_status, revise_quote_link and cancel_quote_link. If the call returns errors, each one names the field, the problem and the fix: apply every fix and call again. Workeey adds up the totals; tax is applied only as supplied (a rate, an amount or a note). Workeey does not verify businesses or quotes. Quote Links is not the estimates feature inside the Workeey app. Full guide: https://www.workeey.com/quote-links/for-ai/
{ "type": "object", "examples": [ { "title": "Replace 50-gallon gas water heater", "options": [ { "name": "Standard", "items": [ { "unit_price": 1600, "description": "50-gallon gas water heater, installed" } ] } ], "business": { "name": "Rivera Plumbing" }, "customer": { "name": "Dana" } } ], "required": [ "business", "customer", "title", "options" ], "properties": { "tax": { "type": "object", "properties": { "note": { "type": "string", "examples": [ "Tax not included" ], "maxLength": 80, "description": "A tax note instead of a number." }, "label": { "type": "string", "examples": [ "Sales tax" ], "maxLength": 40, "description": "Optional, with rate_percent or amount: what the tax is called." }, "amount": { "type": "number", "minimum": 0, "examples": [ 120 ], "description": "A fixed tax amount." }, "rate_percent": { "type": "number", "maximum": 30, "minimum": 0, "examples": [ 8.875 ], "description": "A tax rate in percent: 8.875 means 8.875%." } }, "description": "Optional. Tax exactly as the user supplies it: Workeey never decides tax rules. Send ONE of rate_percent (applied to the chosen option plus the chosen add-ons), amount (a fixed tax amount) or note (for example \"Tax not included\"). Leave tax out if the user gave no tax information.", "additionalProperties": false }, "notes": { "type": "string", "maxLength": 2000, "description": "Optional. Anything else the customer should know: what is included, timing, access. No links, email addresses or payment details (Zelle, Venmo, Cash App, PayPal, bank or card numbers, crypto)." }, "terms": { "type": "string", "maxLength": 2000, "description": "Optional. The business's terms, such as warranty or cancellation. No links, email addresses or payment details (Zelle, Venmo, Cash App, PayPal, bank or card numbers, crypto)." }, "title": { "type": "string", "examples": [ "Replace 50-gallon gas water heater" ], "maxLength": 120, "minLength": 1, "description": "The job, in a few words." }, "addons": { "type": "array", "items": { "type": "object", "required": [ "name", "price" ], "properties": { "name": { "type": "string", "examples": [ "Expansion tank" ], "maxLength": 80, "minLength": 1, "description": "Add-on name." }, "price": { "type": "number", "minimum": 0, "examples": [ 95 ], "description": "The add-on price as a plain number." }, "description": { "type": "string", "maxLength": 300, "description": "Optional. A short explanation." } }, "additionalProperties": false }, "maxItems": 10, "description": "Optional. Extras the customer can tick on top of the option they pick (up to 10)." }, "source": { "type": "object", "properties": { "client": { "type": "string", "examples": [ "Claude", "ChatGPT", "Gemini" ], "maxLength": 60, "description": "The name of your AI app." } }, "description": "Optional. Which AI app is making this quote. Recorded as an unverified claim and never shown to the customer.", "additionalProperties": false }, "deposit": { "type": "object", "properties": { "note": { "type": "string", "examples": [ "Due when the job is booked" ], "maxLength": 200, "description": "Optional. When the deposit is due. No links, email addresses or payment details (Zelle, Venmo, Cash App, PayPal, bank or card numbers, crypto)." }, "amount": { "type": "number", "minimum": 0, "description": "Deposit as a fixed amount." }, "percent": { "type": "number", "maximum": 100, "minimum": 0, "examples": [ 25 ], "description": "Deposit as a percent of the total." } }, "description": "Optional. Deposit wording shown on the quote: percent OR amount, and an optional note. Text only: Workeey takes no payments.", "additionalProperties": false }, "options": { "type": "array", "items": { "type": "object", "required": [ "name", "items" ], "properties": { "name": { "type": "string", "examples": [ "Standard" ], "maxLength": 40, "minLength": 1, "description": "Option name." }, "items": { "type": "array", "items": { "type": "object", "required": [ "description", "unit_price" ], "properties": { "quantity": { "type": "number", "default": 1, "maximum": 100000, "examples": [ 1 ], "description": "Optional. How many units. Default 1.", "exclusiveMinimum": 0 }, "unit_price": { "type": "number", "maximum": 10000000, "minimum": 0, "examples": [ 1150 ], "description": "The price of one unit as a plain number with at most 2 decimals: 1450 or 2.1, never \"$1,450\" or \"about 1.5k\". Use only prices the user gave you, or a starting price from price_check that they agreed to." }, "description": { "type": "string", "examples": [ "50-gallon gas water heater, 6-year warranty" ], "maxLength": 200, "minLength": 1, "description": "What the line is for." } }, "additionalProperties": false }, "maxItems": 50, "minItems": 1, "description": "The option's line items (1 to 50). The option's subtotal is the sum of quantity × unit_price." }, "description": { "type": "string", "maxLength": 500, "description": "Optional. What this option includes, or how it differs from the others." } }, "additionalProperties": false }, "maxItems": 4, "minItems": 1, "description": "The choices the customer picks between: 1 to 4 options (for example Standard and Premium), each priced on its own. A quote with a single price has one option. Workeey adds up every option, so send no totals." }, "business": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "examples": [ "Rivera Plumbing" ], "maxLength": 80, "minLength": 1, "description": "Business name, shown as the heading of the quote." }, "email": { "type": "string", "examples": [ "[email protected]" ], "maxLength": 120, "description": "Optional. The business's email address: the only field where an email address is allowed." }, "phone": { "type": "string", "examples": [ "718-555-0142" ], "maxLength": 30, "description": "Optional. The business's phone number, written the way the user wants it shown." }, "address": { "type": "string", "maxLength": 160, "description": "Optional. The business's address." }, "license": { "type": "string", "examples": [ "NYC LMP 12345" ], "maxLength": 60, "description": "Optional. The business license number, as the user gives it." } }, "description": "The user's own business, the one sending the quote. The customer sees these details marked as provided by the creator, not verified by Workeey.", "additionalProperties": false }, "currency": { "type": "string", "default": "USD", "pattern": "^[A-Z]{3}$", "examples": [ "USD" ], "description": "Optional. Three-letter ISO 4217 code of a currency with cents (2 decimals), like USD, CAD or EUR. Default USD. A currency without 2-decimal cents (JPY, KWD) isn't supported yet." }, "customer": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string", "examples": [ "Dana" ], "maxLength": 80, "minLength": 1, "description": "The name the customer sees on the quote, such as a first name." } }, "description": "Who the quote is for: a display name only. Never the customer's phone, email or address; quote links get shared and stay in chat history.", "additionalProperties": false }, "location": { "type": "string", "examples": [ "Brooklyn, NY" ], "maxLength": 80, "description": "Optional. Where the job is: city and state only, never the customer's street address." }, "exclusions": { "type": "string", "maxLength": 2000, "description": "Optional. What the price does not include." }, "valid_until": { "type": "string", "format": "date", "pattern": "^\\d{4}-\\d{2}-\\d{2}$", "description": "Optional. The date the quote is valid until, YYYY-MM-DD. Default 30 days from today; at most 365 days ahead." } }, "additionalProperties": false }arguments 345 linesprice_check unknown 13h ago
A starting price for a job, from Workeey's price book (plumbing, electrical, hvac, handyman, house cleaning, landscaping), for a US place. Give the job in words and where ("toilet repair", "Brooklyn, NY"): it answers with the one matching job, priced as labor (hours × an hourly rate) + parts (with markup) + optional travel, what the job includes, its parts with the product pages they were priced from, the place it priced for, and draft_link: a Quote Links address that opens the quote form already filled in with that job and price. Or give a trade (no job) for every job of the trade. You can give your own rate, markup, travel, and hours or parts cost. The rate starts from government data on what employees are paid and what employers pay on top (BLS), turned into a self-employed rate by our hourly rate calculator's math; parts are retailers' online shelf prices we checked by hand on November 6, 2026, each with its link (a price from Ace Hardware or Menards is one store's online price, not a national one); the two we could not check say "not checked"; job hours are starting guesses, so set your own. This is not what others charge. With no BLS figure for a place, it uses the state's or the national one and says so (place.fallback). Every checked figure carries its source and the day it was checked. From Workeey's data, read-only, no AI.
{ "type": "object", "properties": { "job": { "type": "string", "description": "The job in words, as the customer or tradesperson said it (\"fix a running toilet\", \"install a ceiling fan\"). Answers with the one matching job; a near tie or no match says so and lists the closest." }, "jobs": { "type": "object", "description": "Without job: per job of the trade, by its id, your own hours or parts cost in dollars. The answer lists every job's id.", "additionalProperties": { "type": "object", "properties": { "hours": { "type": "number" }, "parts": { "type": "number" } }, "additionalProperties": false } }, "rate": { "type": "number", "description": "Your own hourly rate in dollars. Leave it out to use the suggested rate." }, "hours": { "type": "number", "description": "With job: your own hours for it. Leave it out for the book's starting hours." }, "metro": { "type": "string", "description": "A BLS metropolitan area code inside that state (a wrong one lists the state's areas). Leave it out for the state's figure. Not with where." }, "parts": { "type": "number", "description": "With job: your own parts cost for it, in dollars, before markup. Leave it out for the checked retail midpoint." }, "state": { "type": "string", "description": "A state's two-letter code (DC for Washington, DC). Leave it out for the national figure. Not with where." }, "trade": { "enum": [ "plumbing", "electrical", "hvac", "handyman", "cleaning", "landscaping" ], "type": "string", "description": "The trade. plumbing: Plumbing; electrical: Electrical; hvac: HVAC; handyman: Handyman; cleaning: House cleaning; landscaping: Landscaping. With job, it narrows the search; without job, the answer is every job of the trade." }, "where": { "type": "string", "description": "Where the job is, in words: \"City, ST\" (\"Austin, TX\"), a state, or a New York City borough. Instead of state and metro." }, "markup": { "type": "number", "description": "Your markup on parts, in percent. Leave it out for 20%." }, "travel": { "type": "object", "properties": { "on": { "type": "boolean" }, "miles": { "type": "number" }, "minutes": { "type": "number" } }, "description": "Travel added to every job: on, the miles and the minutes of a trip (miles at the IRS rate, minutes at your rate). Off unless on is true; 20 miles and 30 minutes when not given.", "additionalProperties": false }, "business": { "type": "string", "description": "The business name, if known (\"Rivera Plumbing\"): when two trades have the same job, its trade wins." } }, "additionalProperties": false }arguments 86 lines
This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.
Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.
- Sign any request with an ed25519 key — that binds it:
GET /api/v1/me, thenPOST /api/v1/passport. - Prove it is yours. Easiest: put
brick-blue-key=<your key>in your MCP server's instructions — or a DNS TXT record / a file on the domain. - Ask the hub to check:
POST /api/v1/passport/claim-endpointwith this listing's id0b694fbdfc3be082.
Every step, filled in for this listing: https://brick.blue/api/v1/agents/0b694fbdfc3be082/claim.
Over MCP: the claim_endpoint tool.
[](https://brick.blue/agent/0b694fbdfc3be082?ref=badge)
The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.
An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.
MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.
Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.
- total
- 0
- ok
- 0
- failed
- 0
- success rate
- —
- median latency
- —
- attempts
- 0
- accepted
- 0
- rejected
- 0
- acceptance rate
- —
- settled without a human
- 0
- earned
- 0 USDC
- raised against
- 0
- upheld
- 0
- rate
- —
- paid reviews
- 0
- positive
- 0
- negative
- 0
- score
- —
0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.