{"serverId":"mcp-registry/nl.marketingburos/marketingburos","tools":[{"name":"find_agency","fixed":{"name":"find_agency","description":"Look up one specific agency by trade name, statutory name or domain (e.g. name='Yourcrew' or domain='yourcrew.online') to get its slug for get_agency_profile. Returns up to 10 candidates with public trade name (name), legal_name when the statutory name differs, city and domain. Returns isError with {error:'invalid_input'} when neither name nor domain is given. For ranked agency recommendations by criteria use search_agencies.","inputSchema":{"type":"object","properties":{"city":{"type":"string","maxLength":120,"minLength":1,"description":"Optional city to narrow candidates."},"name":{"type":"string","maxLength":160,"minLength":2,"description":"Trade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain."},"limit":{"type":"integer","default":5,"maximum":10,"minimum":1,"description":"Max candidates (1-10, default 5)."},"domain":{"type":"string","maxLength":160,"minLength":4,"description":"Website domain, e.g. 'yourcrew.online'. Provide name and/or domain."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":285,"tokensAfter":285},{"name":"get_agency_profile","fixed":{"name":"get_agency_profile","description":"Fetch the full public profile of one marketing agency by slug (from search_agencies or find_agency). Includes specialisms, cultural-fit axes and up to 3 cases; cultural-fit and cases are read-only (Knowledge-OS canonical). Returns isError with {error:'not_found'} when the slug does not exist or the agency opted out of MCP.","inputSchema":{"type":"object","required":["slug"],"properties":{"slug":{"type":"string","maxLength":120,"minLength":1,"description":"Agency slug as returned by search_agencies or find_agency."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":158,"tokensAfter":158},{"name":"search_agencies","fixed":{"name":"search_agencies","description":"Search Dutch marketing agencies by specialisms, target_industry (the client vertical the agency serves), city, B2B/B2C, company size, budget band and an optional radius (near_city = any Dutch city, or near_lat/near_lon, always combined with within_km in kilometres). specialisms filters against the taxonomy; a term outside it is mapped to the nearest specialism when the match is clear (shown in filters.specialisms.interpreted_as), otherwise echoed in filters.specialisms.unmatched (all unknown → 0","inputSchema":{"type":"object","properties":{"city":{"type":"string","maxLength":120,"minLength":1,"description":"Exact office city of the agency. For 'near a city' use near_city + within_km instead."},"limit":{"type":"integer","default":10,"maximum":20,"minimum":1,"description":"Max results (1-20, default 10)."},"near_lat":{"type":"number","maximum":90,"minimum":-90,"description":"Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km."},"near_lon":{"type":"number","maximum":180,"minimum":-180,"description":"Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km."},"near_city":{"type":"string","maxLength":120,"minLength":1,"description":"Center of a radius search: any Dutch city name. Requires within_km."},"within_km":{"type":"number","maximum":250,"description":"Radius in kilometres around near_city or near_lat/near_lon (max 250). Ignored without an origin; near_* is ignored without within_km.","exclusiveMinimum":0},"budget_band":{"enum":["<10k","10k-25k","25k-50k","50k-100k","100k+"],"type":"string","description":"Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate."},"specialisms":{"type":"array","items":{"type":"string","maxLength":120,"minLength":1},"maxItems":5,"description":"Up to 5 specialism slugs from categories://list (e.g. 'seo', 'branding'). A term outside the taxonomy is mapped to the nearest specialism when the match is clear (filters.specialisms.interpreted_as), otherwise echoed back in filters.specialisms.unmatched."},"target_industry":{"enum":["B2B SaaS","Bouw & vastgoed","E-commerce","Financiële dienstverlening","Gezondheidszorg","Industrie & maakindustrie","Logistiek & transport","Media & uitgeverij","Non-profit & overheid","Onderwijs","Professional services","Reizen & toerisme","Retail & consumer","Tech & IT-services","Telecom & utilities","Anders"],"type":"string","description":"Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector."},"company_size_band":{"enum":["1-10","11-50","51-200","201-500","500+"],"type":"string","description":"Size of the buyer's company (employees); matches agencies that target that segment."},"client_orientation":{"enum":["b2b","b2c"],"type":"string","description":"b2b or b2c focus of the agency."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":807,"tokensAfter":807},{"name":"submit_rfq","fixed":{"name":"submit_rfq","description":"Submit a Request For Quote (RFQ) on behalf of a buyer to 1-3 selected marketing agencies via marketingburos.nl. Input is the v1 wizard profile (specialisms, industry, company size, budget, timeline, ...) plus contact details and selectedAgencySlugs (slugs from search_agencies or find_agency). Nothing is sent to agencies automatically: the RFQ is queued and a human operator releases it. Success returns {rfqId, queuedAgencySlugs, notMatchableSlugs}: a selected agency that is not in the match pool ","inputSchema":{"type":"object","required":["specialisms","industry","companySize","agencySize","specialistFullServiceSlider","culturalFit","budgetBand","timeline","contactEmail","contactName","contactCompany","selectedAgencySlugs"],"properties":{"website":{"type":"string","maxLength":500,"description":"Leave empty. Anti-spam honeypot field."},"industry":{"type":"string","maxLength":80,"minLength":1,"description":"Buyer's industry (a value from categories://list doelgroep_options, or 'Anders')."},"timeline":{"enum":["asap","1-3mnd","3-6mnd","flexibel"],"type":"string","description":"When the work should start."},"agencySize":{"enum":["1-9","10-49","50-249","250+","geen-voorkeur"],"type":"string","description":"Preferred agency size in employees."},"budgetBand":{"enum":["<10k","10k-25k","25k-50k","50k-100k","100k+"],"type":"string","description":"Buyer's budget in EUR."},"companySize":{"enum":["1-10","11-50","51-200","201-500","500+","geen-voorkeur"],"type":"string","description":"Buyer's company size in employees."},"contactName":{"type":"string","maxLength":120,"minLength":1,"description":"Buyer's full name."},"culturalFit":{"type":"array","items":false,"maxItems":3,"minItems":3,"description":"Three 0-10 sliders: [data-driven, specialist, hands-on]. Use [5,5,5] when unknown.","prefixItems":[{"type":"number","maximum":10,"minimum":0},{"type":"number","maximum":10,"minimum":0},{"type":"number","maximum":10,"minimum":0}]},"specialisms":{"type":"array","items":{"type":"string"},"maxItems":5,"minItems":1,"description":"1-5 specialism slugs the buyer needs (see the categories://list resource)."},"toelichting":{"type":"string","maxLength":2000,"description":"Optional free-text brief for the agencies (Dutch or English)."},"contactEmail":{"type":"string","format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","maxLength":254,"description":"Buyer's business e-mail (no disposable domains)."},"contactPhone":{"type":"string","pattern":"^[\\d\\s()+-]*$","maxLength":40,"description":"Optional phone number (digits, spaces, +, (), -)."},"contactCompany":{"type":"string","maxLength":160,"minLength":1,"description":"Buyer's company name."},"industryFreetext":{"type":"string","maxLength":80,"description":"Required only when industry is 'Anders': the buyer's industry in their own words."},"clientOrientation":{"enum":["b2b","b2c","both","geen-voorkeur"],"type":"string","description":"Optional: does the buyer sell b2b, b2c or both."},"selectedAgencySlugs":{"type":"array","items":{"type":"string","maxLength":120,"minLength":1},"maxItems":3,"minItems":1,"description":"1-3 agency slugs (as returned by search_agencies or find_agency) the buyer wants to receive this RFQ."},"specialistFullServiceSlider":{"type":"integer","maximum":10,"minimum":0,"description":"0 = full-service agency, 10 = niche specialist."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":960,"tokensAfter":960}],"toolsChanged":4,"tokensSaved":0,"todo":[],"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."}