Search and compare 2,000+ Dutch marketing agencies by specialism, city and cases. Never pay-to-rank.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Optional city to narrow candidates.
Trade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain.
Max candidates (1-10, default 5).
Website domain, e.g. 'yourcrew.online'. Provide name and/or domain.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Tool list last changed Oct 25, 2026.
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.
| Argument | Type | Description |
|---|---|---|
| city | string | Optional city to narrow candidates. |
| name | string | Trade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain. |
| limit | integer | Max candidates (1-10, default 5). |
| domain | string | Website domain, e.g. 'yourcrew.online'. Provide name and/or domain. |
{
"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."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Agency slug as returned by search_agencies or find_agency. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"maxLength": 120,
"minLength": 1,
"description": "Agency slug as returned by search_agencies or find_agency."
}
}
}Match a buyer's own question to Dutch marketing agencies. When the buyer already knows the required specialisms, prefer search_agencies with those specialisms; use match_brief when they need to be inferred from the brief. Pass the brief in the buyer's words (NL or EN, 20-2000 chars), optionally with the same hard filters as search_agencies (city, near_city + within_km, target_industry, client_orientation, company_size_band, budget_band). The brief is redacted for personal data first and never stored; a call takes a few seconds. Returns up to 20 ranked agencies (slug, name, 1-line Dutch rationale, via: specialism | brief | both) and `interpreted`: the specialisms and working style read from the brief, plus a follow-up question when the brief is unclear. Show `interpreted` to the buyer; if it is wrong, call search_agencies with explicit specialisms. Ranking ignores what an agency pays (never pay-to-rank).
| Argument | Type | Description |
|---|---|---|
| city | string | Exact office city of the agency. For 'near a city' use near_city + within_km instead. |
| brief* | string | The buyer's own words (NL or EN, 20-2000 chars). Pass the question, not a summary. |
| limit | integer | Max results (1-20, default 10). |
| near_lat | number | Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km. |
| near_lon | number | Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km. |
| near_city | string |
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 results + hint). budget_band only excludes agencies with a known conflicting rate (see filters.budget_band.note). target_industry matches the sectors an agency is known to serve; when fewer than 5 agencies match it, the list is filled with agencies that meet the other filters, the response says relaxed: ['target_industry'], and the first strictMatched results match every filter. Returns up to 20 ranked agencies with slug (use in get_agency_profile), public trade name (name, plus legal_name when the statutory name differs), a 1-line rationale in Dutch, and totalMatched (hits before the limit). Ranking ignores what an agency pays (never pay-to-rank). Read the categories://list resource for valid values.
| Argument | Type | Description |
|---|---|---|
| city | string | Exact office city of the agency. For 'near a city' use near_city + within_km instead. |
| limit | integer | Max results (1-20, default 10). |
| near_lat | number | Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km. |
| near_lon | number | Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km. |
| near_city | string |
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 for this buyer profile is skipped (listed in notMatchableSlugs), not an error, unless none remain. Failures return isError with one of: invalid_input (with issues[]), unknown_agency (with slugs[] that do not exist or cannot be contacted), rate_limit_ip / rate_limit_email (resetAt included when raised by this server), invalid / invalid_email / disposable_email (upstream validation), no_selection (no selected agency is in the match pool), upstream_failure.
| Argument | Type | Description |
|---|---|---|
| website | string | Leave empty. Anti-spam honeypot field. |
| industry* | string | Buyer's industry (a value from categories://list doelgroep_options, or 'Anders'). |
| timeline* | string | When the work should start. |
| agencySize* | string | Preferred agency size in employees. |
| budgetBand* | string | Buyer's budget in EUR. |
| companySize* |
| Center of a radius search: any Dutch city name. Requires within_km. |
| within_km | number | Radius in kilometres around near_city or near_lat/near_lon (max 250). Ignored without an origin; near_* is ignored without within_km. |
| budget_band | string | Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate. |
| target_industry | string | Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector. |
| company_size_band | string | Size of the buyer's company (employees); matches agencies that target that segment. |
| client_orientation | string | b2b or b2c focus of the agency. |
{
"type": "object",
"required": [
"brief"
],
"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."
},
"brief": {
"type": "string",
"maxLength": 2000,
"minLength": 20,
"description": "The buyer's own words (NL or EN, 20-2000 chars). Pass the question, not a summary."
},
"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."
},
"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."
}
}
}| Center of a radius search: any Dutch city name. Requires within_km. |
| within_km | number | Radius in kilometres around near_city or near_lat/near_lon (max 250). Ignored without an origin; near_* is ignored without within_km. |
| budget_band | string | Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate. |
| specialisms | array | 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 | string | Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector. |
| company_size_band | string | Size of the buyer's company (employees); matches agencies that target that segment. |
| client_orientation | string | b2b or b2c focus of the agency. |
{
"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."
}
}
}| string |
| Buyer's company size in employees. |
| contactName* | string | Buyer's full name. |
| culturalFit* | array | Three 0-10 sliders: [data-driven, specialist, hands-on]. Use [5,5,5] when unknown. |
| specialisms* | array | 1-5 specialism slugs the buyer needs (see the categories://list resource). |
| toelichting | string | Optional free-text brief for the agencies (Dutch or English). |
| contactEmail* | string | Buyer's business e-mail (no disposable domains). |
| contactPhone | string | Optional phone number (digits, spaces, +, (), -). |
| contactCompany* | string | Buyer's company name. |
| industryFreetext | string | Required only when industry is 'Anders': the buyer's industry in their own words. |
| clientOrientation | string | Optional: does the buyer sell b2b, b2c or both. |
| selectedAgencySlugs* | array | 1-3 agency slugs (as returned by search_agencies or find_agency) the buyer wants to receive this RFQ. |
| specialistFullServiceSlider* | integer | 0 = full-service agency, 10 = niche specialist. |
{
"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."
}
}
}