Marketingburos
Search and compare 2,000+ Dutch marketing agencies by specialism, city and cases. Never pay-to-rank.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"marketingburos": {
"url": "https://mcp.marketingburos.nl/mcp"
}
}
}远程端点
https://mcp.marketingburos.nl/mcpstreamable-http它能做什么
工具清单
工具(5)
🔴search_agencies(specialisms, target_industry, city, client_orientation, company_size_band, ...)
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.
输入模式
{
"type": "object",
"properties": {
"specialisms": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"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": {
"type": "string",
"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"
],
"description": "Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Exact office city of the agency. For 'near a city' use near_city + within_km instead."
},
"client_orientation": {
"type": "string",
"enum": [
"b2b",
"b2c"
],
"description": "b2b or b2c focus of the agency."
},
"company_size_band": {
"type": "string",
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"500+"
],
"description": "Size of the buyer's company (employees); matches agencies that target that segment."
},
"budget_band": {
"type": "string",
"enum": [
"<10k",
"10k-25k",
"25k-50k",
"50k-100k",
"100k+"
],
"description": "Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate."
},
"near_city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Center of a radius search: any Dutch city name. Requires within_km."
},
"near_lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km."
},
"near_lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km."
},
"within_km": {
"type": "number",
"exclusiveMinimum": 0,
"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."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10,
"description": "Max results (1-20, default 10)."
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢match_brief(brief, target_industry, city, client_orientation, company_size_band, ...)
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).
输入模式
{
"type": "object",
"properties": {
"brief": {
"type": "string",
"minLength": 20,
"maxLength": 2000,
"description": "The buyer's own words (NL or EN, 20-2000 chars). Pass the question, not a summary."
},
"target_industry": {
"type": "string",
"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"
],
"description": "Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Exact office city of the agency. For 'near a city' use near_city + within_km instead."
},
"client_orientation": {
"type": "string",
"enum": [
"b2b",
"b2c"
],
"description": "b2b or b2c focus of the agency."
},
"company_size_band": {
"type": "string",
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"500+"
],
"description": "Size of the buyer's company (employees); matches agencies that target that segment."
},
"budget_band": {
"type": "string",
"enum": [
"<10k",
"10k-25k",
"25k-50k",
"50k-100k",
"100k+"
],
"description": "Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate."
},
"near_city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Center of a radius search: any Dutch city name. Requires within_km."
},
"near_lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km."
},
"near_lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km."
},
"within_km": {
"type": "number",
"exclusiveMinimum": 0,
"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."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"default": 10,
"description": "Max results (1-20, default 10)."
}
},
"required": [
"brief"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢find_agency(name, domain, city, limit)
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.
输入模式
{
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 2,
"maxLength": 160,
"description": "Trade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain."
},
"domain": {
"type": "string",
"minLength": 4,
"maxLength": 160,
"description": "Website domain, e.g. 'yourcrew.online'. Provide name and/or domain."
},
"city": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Optional city to narrow candidates."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"default": 5,
"description": "Max candidates (1-10, default 5)."
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_agency_profile(slug)
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.
输入模式
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Agency slug as returned by search_agencies or find_agency."
}
},
"required": [
"slug"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡submit_rfq(specialisms, industry, industryFreetext, companySize, clientOrientation, ...)
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.
输入模式
{
"type": "object",
"properties": {
"specialisms": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 5,
"description": "1-5 specialism slugs the buyer needs (see the categories://list resource)."
},
"industry": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"description": "Buyer's industry (a value from categories://list doelgroep_options, or 'Anders')."
},
"industryFreetext": {
"type": "string",
"maxLength": 80,
"description": "Required only when industry is 'Anders': the buyer's industry in their own words."
},
"companySize": {
"type": "string",
"enum": [
"1-10",
"11-50",
"51-200",
"201-500",
"500+",
"geen-voorkeur"
],
"description": "Buyer's company size in employees."
},
"clientOrientation": {
"type": "string",
"enum": [
"b2b",
"b2c",
"both",
"geen-voorkeur"
],
"description": "Optional: does the buyer sell b2b, b2c or both."
},
"agencySize": {
"type": "string",
"enum": [
"1-9",
"10-49",
"50-249",
"250+",
"geen-voorkeur"
],
"description": "Preferred agency size in employees."
},
"specialistFullServiceSlider": {
"type": "integer",
"minimum": 0,
"maximum": 10,
"description": "0 = full-service agency, 10 = niche specialist."
},
"culturalFit": {
"type": "array",
"minItems": 3,
"maxItems": 3,
"items": [
{
"type": "number",
"minimum": 0,
"maximum": 10
},
{
"type": "number",
"minimum": 0,
"maximum": 10
},
{
"type": "number",
"minimum": 0,
"maximum": 10
}
],
"description": "Three 0-10 sliders: [data-driven, specialist, hands-on]. Use [5,5,5] when unknown."
},
"budgetBand": {
"type": "string",
"enum": [
"<10k",
"10k-25k",
"25k-50k",
"50k-100k",
"100k+"
],
"description": "Buyer's budget in EUR."
},
"timeline": {
"type": "string",
"enum": [
"asap",
"1-3mnd",
"3-6mnd",
"flexibel"
],
"description": "When the work should start."
},
"contactEmail": {
"type": "string",
"format": "email",
"maxLength": 254,
"description": "Buyer's business e-mail (no disposable domains)."
},
"contactName": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"description": "Buyer's full name."
},
"contactCompany": {
"type": "string",
"minLength": 1,
"maxLength": 160,
"description": "Buyer's company name."
},
"contactPhone": {
"type": "string",
"maxLength": 40,
"pattern": "^[\\d\\s()+-]*$",
"description": "Optional phone number (digits, spaces, +, (), -)."
},
"toelichting": {
"type": "string",
"maxLength": 2000,
"description": "Optional free-text brief for the agencies (Dutch or English)."
},
"selectedAgencySlugs": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"minItems": 1,
"maxItems": 3,
"description": "1-3 agency slugs (as returned by search_agencies or find_agency) the buyer wants to receive this RFQ."
},
"website": {
"type": "string",
"maxLength": 500,
"description": "Leave empty. Anti-spam honeypot field."
}
},
"required": [
"specialisms",
"industry",
"companySize",
"agencySize",
"specialistFullServiceSlider",
"culturalFit",
"budgetBand",
"timeline",
"contactEmail",
"contactName",
"contactCompany",
"selectedAgencySlugs"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}推荐提示词
search_agenciessearch_agenciesget_agency_profileget_agency_profilesearch_agenciesget_agency_profile社区
证据