Skip to main content
Glama

Marketingburos

Server Details

Search and compare 2,000+ Dutch marketing agencies by specialism, city and cases. Never pay-to-rank.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: find_agency resolves by name/domain, search_agencies filters by criteria, get_agency_profile fetches a full profile, and submit_rfq sends a request. The descriptions explicitly cross-reference each other and tell agents when to use one over the other, so misselection is unlikely.

Naming Consistency5/5

All tool names follow a consistent imperative verb_noun snake_case pattern: find_agency, get_agency_profile, search_agencies, submit_rfq. Even though find and search are semantically similar, the naming convention is uniform and predictable.

Tool Count5/5

With 4 tools, the server is tightly scoped to its purpose: finding an agency, viewing its profile, searching by criteria, and submitting an RFQ. Each tool has a clear role and none feel redundant.

Completeness4/5

The discovery-to-contact workflow is well covered: search, lookup, profile detail, and RFQ submission. Minor gaps exist, such as no pagination for search results or no way to list all agencies, but agencies are read-only external entities and the core journey is complete.

Available Tools

4 tools
find_agencyAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoOptional city to narrow candidates.
nameNoTrade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain.
limitNoMax candidates (1-10, default 5).
domainNoWebsite domain, e.g. 'yourcrew.online'. Provide name and/or domain.

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With zero annotations, the description carries the full burden. It discloses the output shape (up to 10 candidates with name, legal_name, city, domain), the error response format, and the purpose of the return (slug consumption). It does not mention permissions, rate limits, or side effects, but this is a lookup tool and those details are not critical.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description uses three sentences that all earn their place: purpose, output, error condition, sibling pointer. It is denser than necessary but not padded, and avoids repeating parameter descriptions already in the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, so the description must cover the return contract and it does. It covers error cases, candidate fields, the relationship to get_agency_profile, and reminds of the alternative. Missing bits are minor (e.g., default limit/value range is schema-covered, not description-critical).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the description adds meaning beyond the schema: it clarifies the name/domain mutual requirement (neither given -> error), that 'name' accepts either trade or statutory name, and the domain format. Even with a baseline of 3, the additional context nudges it to 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (find/look up) and a specific resource (one agency) with concrete identifiers (trade name, statutory name, domain). It explicitly contrasts with search_agencies (ranked recommendations) and get_agency_profile (consumer of the slug), so an agent can instantly tell it apart.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Directs when to use: when you need a specific agency's slug, and when not to (search_agencies for ranked recommendations). It also states the requirement that name or domain must be provided, and the condition that triggers an invalid_input error.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agency_profileAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesAgency slug as returned by search_agencies or find_agency.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses the error case (returns isError with {error:'not_found'} when slug is invalid or agency opted out) and notes that cultural-fit and cases are read-only (Knowledge-OS canonical). This provides useful behavioral context beyond the simple 'fetch' action, though it stops short of describing success response structure in detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary purpose and key source of input, followed by the error behavior and read-only note. No extraneous words; every sentence earns its place. This is a model of brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there is no output schema, the description sufficiently communicates the expected content (specialisms, cultural-fit axes, up to 3 cases) and error behavior. It does not explicitly state the shape of the success response (e.g., an object with those fields), but for a single-parameter read operation this is a reasonable level of completeness. Slightly more detail on the return structure would push it to a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter (slug) with its source and constraints (100% coverage). The description adds no novel information about the slug itself beyond repeating the source of the slug. Since the schema does the heavy lifting, a baseline score of 3 is appropriate; the description's mention of what the profile includes is relevant to output, not the parameter's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Fetch the full public profile') and the resource ('one marketing agency by slug'), and it distinguishes itself from siblings by specifying the source of the slug (from search_agencies or find_agency). This makes it unambiguous which tool to use when a slug is already known.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the appropriate usage: obtain a slug via search_agencies or find_agency, then call this tool to get the full profile. It does not explicitly state when not to use it or mention alternatives like submit_rfq, but the context is sufficient for an agent to understand the intended workflow. A clear 'use this after you have a slug' signal would be stronger.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_agenciesAInspect

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 strictly against the taxonomy; unrecognised terms are 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). 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
cityNoExact office city of the agency. For 'near a city' use near_city + within_km instead.
limitNoMax results (1-20, default 10).
near_latNoCenter latitude of a radius search (alternative to near_city). Requires near_lon + within_km.
near_lonNoCenter longitude of a radius search (alternative to near_city). Requires near_lat + within_km.
near_cityNoCenter of a radius search: any Dutch city name. Requires within_km.
within_kmNoRadius in kilometres around near_city or near_lat/near_lon (max 250). Ignored without an origin; near_* is ignored without within_km.
budget_bandNoBuyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate.
specialismsNoUp to 5 specialism slugs from categories://list (e.g. 'seo', 'branding'). Unknown terms are echoed back in filters.specialisms.unmatched.
target_industryNoClient vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector.
company_size_bandNoSize of the buyer's company (employees); matches agencies that target that segment.
client_orientationNob2b or b2c focus of the agency.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full load. It discloses restricted specialism taxonomy with unmatched-term echoing, the budget_band non-blocking behavior, the 20-result cap, totalMatched, non-influenceable ranking, and the return rationale in Dutch. This is far beyond basic 'search' semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense rather than concise, but each sentence contributes a key behavioral note or parameter nuance. It front-loads the search function and enumerates filters before tying return fields together. It is longer than strictly necessary, but no sentence is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 11-parameter tool with no output schema, this description is remarkably complete: it documents the return fields, the ranking rule, the taxonomy constraint, the budget_band exception, the radius requirement, and the link to get_agency_profile. An agent could safely invoke the tool without access to any structured schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema coverage, the description adds meaning beyond the JSON schema fields: specialisms must come from categories://list taxonomy and unknown terms are echoed in filters, budget_band only excludes conflicting known rates, target_industry is buyer verticals, and near_* only works with within_km. These intended semantics materially affect agent behavior.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Uses a specific verb (

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides context for when to use the tool and how: it's a discovery search returning slugs, and directs the agent to get_agency_profile for profile details. It also tells the agent to read categories://list for valid specialisms. It does not, however, explicitly state when not to use this tool and when to prefer find_agency, so it stops one step short of an explicit when-not/alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_rfqAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
websiteNoLeave empty. Anti-spam honeypot field.
industryYesBuyer's industry (a value from categories://list doelgroep_options, or 'Anders').
timelineYesWhen the work should start.
agencySizeYesPreferred agency size in employees.
budgetBandYesBuyer's budget in EUR.
companySizeYesBuyer's company size in employees.
contactNameYesBuyer's full name.
culturalFitYesThree 0-10 sliders: [data-driven, specialist, hands-on]. Use [5,5,5] when unknown.
specialismsYes1-5 specialism slugs the buyer needs (see the categories://list resource).
toelichtingNoOptional free-text brief for the agencies (Dutch or English).
contactEmailYesBuyer's business e-mail (no disposable domains).
contactPhoneNoOptional phone number (digits, spaces, +, (), -).
contactCompanyYesBuyer's company name.
industryFreetextNoRequired only when industry is 'Anders': the buyer's industry in their own words.
clientOrientationNoOptional: does the buyer sell b2b, b2c or both.
selectedAgencySlugsYes1-3 agency slugs (as returned by search_agencies or find_agency) the buyer wants to receive this RFQ.
specialistFullServiceSliderYes0 = full-service agency, 10 = niche specialist.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It openly states that nothing is sent automatically and that the RFQ is queued for a human operator. It details the success return structure ({rfqId, queuedAgencySlugs, notMatchableSlugs}) and explains that not-matching agencies are skipped rather than causing errors, unless none remain. It enumerates all failure modes with specific payloads (issues[], slugs[], resetAt) and even clarifies the honeypot field via the schema (though not in description—but the behavior is fully covered). This is exceptionally transparent about side effects and error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph but is exceptionally well-structured. It front-loads the core purpose, then explains queuing behavior, success returns, and failure modes in a logical order. Every sentence adds critical information — there is no fluff or repetition. The use of semicolons and lists keeps it readable despite its length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 17 parameters (12 required), no output schema, and no annotations, the description covers what an agent needs to know: the success return shape, the not-matchable behavior, and all error paths with their associated payloads. It also ties in the prerequisite of agency slugs from sibling tools. It does not duplicate schema details, and it explains the queued/human-release nature which is critical for expectation setting. Nothing essential is missing for correct invocation and interpretation of results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, so the baseline is 3. The description adds a high-level grouping ('v1 wizard profile') and references that selectedAgencySlugs come from sibling tools, but it does not add new meaning beyond what each parameter's schema description already provides. It does not clarify any nuanced formats or interactions beyond the schema, so it stays at the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Submit a Request For Quote'), a clear resource (RFQ to 1-3 agencies via marketingburos.nl), and defines the scope (on behalf of a buyer). It also distinguishes from siblings by noting the input is the wizard profile plus slugs from search_agencies or find_agency, making clear this is the submission step, not discovery. The queuing behavior is also stated, which reinforces the purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains that input requires selectedAgencySlugs from search_agencies or find_agency, implicitly instructing the agent to use those tools first. It also states that nothing is sent automatically and a human operator releases it, giving context on when this is appropriate. However, it does not explicitly say 'use this only when...' or name alternative tools for other actions, so it falls short of explicit when-not guidance, but the indirect routing is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedfind_agency5 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / city / description
        Added value: +"Optional city to narrow candidates."
      • addedInput schema / properties / domain / description
        Added value: +"Website domain, e.g. 'yourcrew.online'. Provide name and/or domain."
      • addedInput schema / properties / limit / description
        Added value: +"Max candidates (1-10, default 5)."
      • addedInput schema / properties / name / description
        Added value: +"Trade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain."
    • Changedget_agency_profile2 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / slug / description
        Added value: +"Agency slug as returned by search_agencies or find_agency."
    • Changedsearch_agencies12 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / budget_band / description
        Added value: +"Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate."
      • addedInput schema / properties / city / description
        Added value: +"Exact office city of the agency. For 'near a city' use near_city + within_km instead."
      • addedInput schema / properties / client_orientation / description
        Added value: +"b2b or b2c focus of the agency."
      • addedInput schema / properties / company_size_band / description
        Added value: +"Size of the buyer's company (employees); matches agencies that target that segment."
      • addedInput schema / properties / limit / description
        Added value: +"Max results (1-20, default 10)."
      • addedInput schema / properties / near_city / description
        Added value: +"Center of a radius search: any Dutch city name. Requires within_km."
      • addedInput schema / properties / near_lat / description
        Added value: +"Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km."
      • addedInput schema / properties / near_lon / description
        Added value: +"Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km."
      • addedInput schema / properties / specialisms / description
        Added value: +"Up to 5 specialism slugs from categories://list (e.g. 'seo', 'branding'). Unknown terms are echoed back in filters.specialisms.unmatched."
      • addedInput schema / properties / target_industry / description
        Added value: +"Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector."
      • addedInput schema / properties / within_km / description
        Added value: +"Radius in kilometres around near_city or near_lat/near_lon (max 250). Ignored without an origin; near_* is ignored without within_km."
    • Changedsubmit_rfq20 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / agencySize / description
        Added value: +"Preferred agency size in employees."
      • addedInput schema / properties / budgetBand / description
        Added value: +"Buyer's budget in EUR."
      • addedInput schema / properties / clientOrientation / description
        Added value: +"Optional: does the buyer sell b2b, b2c or both."
      • addedInput schema / properties / companySize / description
        Added value: +"Buyer's company size in employees."
      • addedInput schema / properties / contactCompany / description
        Added value: +"Buyer's company name."
      • addedInput schema / properties / contactEmail / description
        Added value: +"Buyer's business e-mail (no disposable domains)."
      • addedInput schema / properties / contactName / description
        Added value: +"Buyer's full name."
      • addedInput schema / properties / contactPhone / description
        Added value: +"Optional phone number (digits, spaces, +, (), -)."
      • addedInput schema / properties / culturalFit / description
        Added value: +"Three 0-10 sliders: [data-driven, specialist, hands-on]. Use [5,5,5] when unknown."
      • addedInput schema / properties / industry / description
        Added value: +"Buyer's industry (a value from categories://list doelgroep_options, or 'Anders')."
      • addedInput schema / properties / industryFreetext / description
        Added value: +"Required only when industry is 'Anders': the buyer's industry in their own words."
      • removedInput schema / properties / selectedAgencyIds
        Removed value: -{
        -  "items": {
        -    "format": "uuid",
        -    "type": "string"
        -  },
        -  "maxItems": 3,
        -  "minItems": 1,
        -  "type": "array"
        -}
      • addedInput schema / properties / selectedAgencySlugs
        Added value: +{
        +  "description": "1-3 agency slugs (as returned by search_agencies or find_agency) the buyer wants to receive this RFQ.",
        +  "items": {
        +    "maxLength": 120,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "minItems": 1,
        +  "type": "array"
        +}
      • addedInput schema / properties / specialisms / description
        Added value: +"1-5 specialism slugs the buyer needs (see the categories://list resource)."
      • addedInput schema / properties / specialistFullServiceSlider / description
        Added value: +"0 = full-service agency, 10 = niche specialist."
      • addedInput schema / properties / timeline / description
        Added value: +"When the work should start."
      • addedInput schema / properties / toelichting / description
        Added value: +"Optional free-text brief for the agencies (Dutch or English)."
      • addedInput schema / properties / website / description
        Added value: +"Leave empty. Anti-spam honeypot field."
      • changedInput schema / required
        Previous value: -[
        -  "specialisms",
        -  "industry",
        -  "companySize",
        -  "agencySize",
        -  "specialistFullServiceSlider",
        -  "culturalFit",
        -  "budgetBand",
        -  "timeline",
        -  "contactEmail",
        -  "contactName",
        -  "contactCompany",
        -  "selectedAgencyIds"
        -]New value: +[
        +  "specialisms",
        +  "industry",
        +  "companySize",
        +  "agencySize",
        +  "specialistFullServiceSlider",
        +  "culturalFit",
        +  "budgetBand",
        +  "timeline",
        +  "contactEmail",
        +  "contactName",
        +  "contactCompany",
        +  "selectedAgencySlugs"
        +]
  2. 4 tool updates
    • First observedfind_agency
    • First observedget_agency_profile
    • First observedsearch_agencies
    • First observedsubmit_rfq

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources