{"serverId":"mcp-registry/com.peoplecanbuild/mcp","tools":[{"name":"estimate_design_fee","fixed":{"name":"estimate_design_fee","description":"Instant estimate of the paid 3D stand-design fee (EUR). Rate 5–15 €/sqm: lower per sqm for larger stands, higher for a higher planned construction budget per sqm (a proxy for bespoke detail and multimedia). The fee is refunded in full when the stand is built with People Can. Final quote always confirmed by email. Construction itself typically runs 300–800 €/sqm excl. space rental and venue services.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["sqm"],"properties":{"sqm":{"type":"number","maximum":2000,"minimum":6,"description":"Stand floor area in square meters"},"budget_per_sqm":{"type":"number","default":550,"maximum":800,"minimum":300,"description":"Planned construction budget per sqm in EUR (300–800)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":227,"tokensAfter":227},{"name":"estimate_stand_budget","fixed":{"name":"estimate_stand_budget","description":"Indicative construction budget (EUR) for a custom exhibition stand in Europe, derived from the public range of 300–800 €/sqm by placing the project in a tier (essential / standard / premium) based on stand type, scope and cost drivers. Excludes space rental, venue services (power, rigging points, cleaning), design fee and VAT. Use it to give a user a realistic ballpark before request_quote; always say it is indicative and that a person confirms every quote. Project fit: custom stands 16 to ~400 ","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["sqm"],"properties":{"sqm":{"type":"number","maximum":2000,"minimum":6,"description":"Stand floor area in sqm"},"scope":{"enum":["fabrication_only","fabrication_logistics_assembly","turn_key"],"type":"string","default":"fabrication_logistics_assembly","description":"fabrication_only = build in the workshop, client handles transport and crew; turn_key = incl. design"},"rigging":{"type":"boolean","default":false,"description":"Suspended elements / hanging sign (rigging)"},"led_wall":{"type":"boolean","default":false,"description":"LED wall or large video screens"},"stand_type":{"enum":["row","corner","peninsula","island"],"type":"string","default":"row","description":"Open sides: row = 1, corner = 2, peninsula = 3, island = 4"},"double_deck":{"type":"boolean","default":false,"description":"Two-storey stand"},"hospitality":{"type":"boolean","default":false,"description":"Kitchen, bar or catering area"},"bespoke_furniture":{"type":"boolean","default":false,"description":"Custom-made counters, furniture, product displays"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":467,"tokensAfter":467},{"name":"get_company_profile","fixed":{"name":"get_company_profile","description":"Who People Can Build is: exhibition stand general contractor (Poznań, Poland; core market Germany/Europe), services (white-label for agencies, turn-key for exhibitors, paid 3D design, China Desk), markets, track record, client testimonials (verbatim quotes with author, role and LinkedIn), public price ranges, contact details (incl. contact.bookCall, a Calendly link to book an online call or a meeting at a show) and reply time. Call this first when a user asks about the company or wants a stand b","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":180,"tokensAfter":180},{"name":"get_quote_request_checklist","fixed":{"name":"get_quote_request_checklist","description":"Project fit and the information People Can Build needs to quote an exhibition stand (show, city, dates, sqm, stand type, design status, scope, budget range, special items, confidentiality). Use it to check fit and collect details from the user before calling request_quote, or to draft an email to expo@peoplecanbuild.com.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":133,"tokensAfter":133},{"name":"get_quote_status","fixed":{"name":"get_quote_status","description":"Status of a quote request previously submitted via request_quote. Needs the ticket id (PCB-XXXXXX) AND the e-mail address used on the request; returns the current status, any note from the project manager and the status history. Does not return the request contents. Experimental: the status may lag behind the e-mail conversation — the e-mail thread with expo@peoplecanbuild.com is authoritative.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["ticket_id","email"],"properties":{"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"E-mail address used on the request"},"ticket_id":{"type":"string","pattern":"^PCB-[A-Z0-9]{6}$","description":"Ticket id returned by request_quote, e.g. PCB-7K3QW2"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":254,"tokensAfter":254},{"name":"list_reference_projects","fixed":{"name":"list_reference_projects","description":"Reference projects and venue/trade-show experience. Filters match case-insensitively on show, city, venue, client. projects: the photo portfolio, a selection with descriptions. trackRecord: every stand built in the years named in trackRecord.coverage (currently 2025–2026 only; projects from before 2025 are not listed, earlier years coming) — show, city, venue, hall/stand, sqm, date; client null = under NDA; trackRecord.byVenue / byShow summarise stands, halls and size ranges per venue and per sh","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"city":{"type":"string","description":"City, e.g. 'Berlin', 'Munich', 'London'"},"show":{"type":"string","description":"Trade show name fragment, e.g. 'GITEX', 'Intersolar'"},"venue":{"type":"string","description":"Exhibition venue fragment, e.g. 'Messe München', 'RAI', 'Koelnmesse'"},"client":{"type":"string","description":"Client name fragment"},"min_sqm":{"type":"number","description":"Minimum stand size in sqm"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":298,"tokensAfter":298},{"name":"search_field_notes","fixed":{"name":"search_field_notes","description":"Search People Can Build's practitioner articles (trade-show logistics, theft prevention, rigging costs, fabrication trade-offs, design briefs, comparing stand quotes, exhibitor day) and return the most relevant passages with their source URLs. Use for questions like 'why is rigging expensive', 'how to compare exhibition stand quotes', 'why did my freight miss the show'.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["query"],"properties":{"query":{"type":"string","minLength":2,"description":"Natural-language question or keywords"},"max_passages":{"type":"number","default":4,"maximum":10,"minimum":1}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":195,"tokensAfter":195}],"toolsChanged":7,"tokensSaved":0,"todo":[{"tool":"request_quote","params":["role","budget","company"]},{"tool":"search_field_notes","params":["max_passages"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}