Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted just now
teppi

Server definition

Hash
sha256:91be79494d3eb46183c68dd67453d7661837489dde5d17a4d8b1c63f04201e06
What it is
What a remote MCP server returned when asked what it offers: 5 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "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": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "city": { "description": "Optional city to narrow candidates.", "maxLength": 120, "minLength": 1, "type": "string" }, "domain": { "description": "Website domain, e.g. 'yourcrew.online'. Provide name and/or domain.", "maxLength": 160, "minLength": 4, "type": "string" }, "limit": { "default": 5, "description": "Max candidates (1-10, default 5).", "maximum": 10, "minimum": 1, "type": "integer" }, "name": { "description": "Trade or statutory name (fuzzy), e.g. 'Yourcrew'. Provide name and/or domain.", "maxLength": 160, "minLength": 2, "type": "string" } }, "type": "object" }, "name": "find_agency", "outputSchema": null }, { "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": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "slug": { "description": "Agency slug as returned by search_agencies or find_agency.", "maxLength": 120, "minLength": 1, "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_agency_profile", "outputSchema": null }, { "description": "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).", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "brief": { "description": "The buyer's own words (NL or EN, 20-2000 chars). Pass the question, not a summary.", "maxLength": 2000, "minLength": 20, "type": "string" }, "budget_band": { "description": "Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate.", "enum": [ "<10k", "10k-25k", "25k-50k", "50k-100k", "100k+" ], "type": "string" }, "city": { "description": "Exact office city of the agency. For 'near a city' use near_city + within_km instead.", "maxLength": 120, "minLength": 1, "type": "string" }, "client_orientation": { "description": "b2b or b2c focus of the agency.", "enum": [ "b2b", "b2c" ], "type": "string" }, "company_size_band": { "description": "Size of the buyer's company (employees); matches agencies that target that segment.", "enum": [ "1-10", "11-50", "51-200", "201-500", "500+" ], "type": "string" }, "limit": { "default": 10, "description": "Max results (1-20, default 10).", "maximum": 20, "minimum": 1, "type": "integer" }, "near_city": { "description": "Center of a radius search: any Dutch city name. Requires within_km.", "maxLength": 120, "minLength": 1, "type": "string" }, "near_lat": { "description": "Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km.", "maximum": 90, "minimum": -90, "type": "number" }, "near_lon": { "description": "Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km.", "maximum": 180, "minimum": -180, "type": "number" }, "target_industry": { "description": "Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector.", "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" }, "within_km": { "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, "maximum": 250, "type": "number" } }, "required": [ "brief" ], "type": "object" }, "name": "match_brief", "outputSchema": null }, { "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 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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "budget_band": { "description": "Buyer's budget in EUR. Only excludes agencies whose known rates conflict; most agencies have no known rate.", "enum": [ "<10k", "10k-25k", "25k-50k", "50k-100k", "100k+" ], "type": "string" }, "city": { "description": "Exact office city of the agency. For 'near a city' use near_city + within_km instead.", "maxLength": 120, "minLength": 1, "type": "string" }, "client_orientation": { "description": "b2b or b2c focus of the agency.", "enum": [ "b2b", "b2c" ], "type": "string" }, "company_size_band": { "description": "Size of the buyer's company (employees); matches agencies that target that segment.", "enum": [ "1-10", "11-50", "51-200", "201-500", "500+" ], "type": "string" }, "limit": { "default": 10, "description": "Max results (1-20, default 10).", "maximum": 20, "minimum": 1, "type": "integer" }, "near_city": { "description": "Center of a radius search: any Dutch city name. Requires within_km.", "maxLength": 120, "minLength": 1, "type": "string" }, "near_lat": { "description": "Center latitude of a radius search (alternative to near_city). Requires near_lon + within_km.", "maximum": 90, "minimum": -90, "type": "number" }, "near_lon": { "description": "Center longitude of a radius search (alternative to near_city). Requires near_lat + within_km.", "maximum": 180, "minimum": -180, "type": "number" }, "specialisms": { "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.", "items": { "maxLength": 120, "minLength": 1, "type": "string" }, "maxItems": 5, "type": "array" }, "target_industry": { "description": "Client vertical the agency serves (e.g. the buyer's own industry). Not the agency's own sector.", "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" }, "within_km": { "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, "maximum": 250, "type": "number" } }, "type": "object" }, "name": "search_agencies", "outputSchema": null }, { "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 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.", "inputSchema": { "$schema": "http://json-schema.org/draft-07/schema#", "properties": { "agencySize": { "description": "Preferred agency size in employees.", "enum": [ "1-9", "10-49", "50-249", "250+", "geen-voorkeur" ], "type": "string" }, "budgetBand": { "description": "Buyer's budget in EUR.", "enum": [ "<10k", "10k-25k", "25k-50k", "50k-100k", "100k+" ], "type": "string" }, "clientOrientation": { "description": "Optional: does the buyer sell b2b, b2c or both.", "enum": [ "b2b", "b2c", "both", "geen-voorkeur" ], "type": "string" }, "companySize": { "description": "Buyer's company size in employees.", "enum": [ "1-10", "11-50", "51-200", "201-500", "500+", "geen-voorkeur" ], "type": "string" }, "contactCompany": { "description": "Buyer's company name.", "maxLength": 160, "minLength": 1, "type": "string" }, "contactEmail": { "description": "Buyer's business e-mail (no disposable domains).", "format": "email", "maxLength": 254, "type": "string" }, "contactName": { "description": "Buyer's full name.", "maxLength": 120, "minLength": 1, "type": "string" }, "contactPhone": { "description": "Optional phone number (digits, spaces, +, (), -).", "maxLength": 40, "pattern": "^[\\d\\s()+-]*$", "type": "string" }, "culturalFit": { "description": "Three 0-10 sliders: [data-driven, specialist, hands-on]. Use [5,5,5] when unknown.", "items": [ { "maximum": 10, "minimum": 0, "type": "number" }, { "maximum": 10, "minimum": 0, "type": "number" }, { "maximum": 10, "minimum": 0, "type": "number" } ], "maxItems": 3, "minItems": 3, "type": "array" }, "industry": { "description": "Buyer's industry (a value from categories://list doelgroep_options, or 'Anders').", "maxLength": 80, "minLength": 1, "type": "string" }, "industryFreetext": { "description": "Required only when industry is 'Anders': the buyer's industry in their own words.", "maxLength": 80, "type": "string" }, "selectedAgencySlugs": { "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" }, "specialisms": { "description": "1-5 specialism slugs the buyer needs (see the categories://list resource).", "items": { "type": "string" }, "maxItems": 5, "minItems": 1, "type": "array" }, "specialistFullServiceSlider": { "description": "0 = full-service agency, 10 = niche specialist.", "maximum": 10, "minimum": 0, "type": "integer" }, "timeline": { "description": "When the work should start.", "enum": [ "asap", "1-3mnd", "3-6mnd", "flexibel" ], "type": "string" }, "toelichting": { "description": "Optional free-text brief for the agencies (Dutch or English).", "maxLength": 2000, "type": "string" }, "website": { "description": "Leave empty. Anti-spam honeypot field.", "maxLength": 500, "type": "string" } }, "required": [ "specialisms", "industry", "companySize", "agencySize", "specialistFullServiceSlider", "culturalFit", "budgetBand", "timeline", "contactEmail", "contactName", "contactCompany", "selectedAgencySlugs" ], "type": "object" }, "name": "submit_rfq", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:91be79494d3eb46183c68dd67453d7661837489dde5d17a4d8b1c63f04201e06 | sha256sum