{"name":"ai.hostingbrain/intelligence","slug":"hostingbrain-intelligence","title":"HostingBrain Intelligence","description":"Market research on European hosting and domains: ownership, structure, pricing, technology adoption.","url":"https://mcp.market/server/hostingbrain-intelligence","rating":null,"grade":"C","score":56,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":6,"ok":6,"last_checked_at":"2026-09-20T19:25:55.643Z","last_ok_at":"2026-09-20T19:25:55.643Z","latency_ms":573},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://hostingbrain.ai","version":"0.9.2","remotes":[{"type":"streamable-http","url":"https://mcp.hostingbrain.ai/mcp"}],"packages":[],"tools":[{"name":"book_health","description":"The quality of an operator's book, not its size: dead-page share, modern-email and SaaS-web\nadoption, geographic and industry concentration, plus tenure and churn.\nArguments: operator = a consumer BRAND, a nameserver operator, or a consolidator GROUP; brand names resolve\nautomatically (ionos to united_internet, domeneshop to miss_group) and prefer the group rollup, so a\nwhole consolidator's book health is one call. chart=true adds a branded book-composition SVG.\nPopulation: the named book; the 'grain' field on each row says whether it is a single operator book or\na folded group.\nMetric definitions: definitions(section='book_metrics').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operator":{"type":"string"},"chart":{"default":false,"type":"boolean"}},"required":["operator"]}},{"name":"consolidation_landscape","description":"THE INDUSTRY MAP of hosting consolidation — every consolidator group side\nby side: live-business footprint, integration quality, sponsor and hold status, and acquisition\nactivity including the hosting-versus-software mix and latest deal. The one-call orientation on who is\nconsolidating the European hosting market and how well.\nArguments: none required.\nPopulation: the mapped consolidator groups; each row states the book its footprint is measured on, and\na measurement we do not stand behind for a given group is withheld with the reason attached rather\nthan served.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"consolidator_scorecard","description":"Scorecard for ONE consolidator group (group.one, team.blue, your.online,\nunited_internet, ovhcloud…) — raw versus integrated book, integration quality, and the customer base's\nindustry mix, when the question is about one owner rather than the whole landscape.\nArguments: group = the consolidator, or a brand that resolves to one.\nPopulation: the group's folded book; each figure states the book it is measured on. For the whole\nmarket side by side, use consolidation_landscape.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"group":{"type":"string"}},"required":["group"]}},{"name":"coverage_calibration","description":"How complete HostingBrain's universe is — the honest answer to \"what share\nof the market do you actually see?\", calibrated against PUBLIC REGISTRY totals (Norid .no, SIDN .nl\nand similar), plus operator-level calibration examples.\nArguments: include_history=True returns the full dated series (the coverage trend); the default\nreturns the latest calibration per market and metric.\nPopulation: our observed web-provisioned population against officially registered totals for the same\nmarket.\nMethod: definitions(term='coverage_calibration').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"include_history":{"default":false,"type":"boolean"}}}},{"name":"customer_faithfulness","description":"Whether a provider's customers keep all their domains with it or spread\nthem across several — a book-QUALITY signal no single provider can measure about itself, for a\nretention question.\nArguments: no argument = the aggregate loyalty distribution (free): share of owners with a single\nprovider, average wallet share, and the cross-border cut. provider= a consolidator or a brand that\nresolves to one returns its named exclusivity score against peers (analyst tier). chart=true returns\na branded SVG.\nPopulation: owners identified from shared analytics or advertising accounts only, which is\nhost-independent; certificate-based ownership detection is confounded with single-hosting and is\nexcluded. is_layer marks CDN and DNS providers, where low exclusivity is expected.\nMethod and caveats: definitions(section='faithfulness').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"provider":{"default":"","type":"string"},"chart":{"default":false,"type":"boolean"}}}},{"name":"definitions","description":"The canonical HostingBrain glossary — every dataset, coverage tier, attribution\nlayer, metric and evidence grade in one authoritative place, so nobody conflates our terms. Consult it\nwhenever a term's exact meaning, denominator or confidence grade matters; it is the source every other\ntool's response points back to.\nArguments: no arguments = the full grouped overview; term='<key or phrase>' = one definition with its\ncaveats (e.g. 'hhi', 'web_active', 'own_network_serving_share_pct', 'operator_switch', 'ownership');\nsection='<name>' = one part of the glossary (coverage_tiers, attribution_layers, book_metrics,\nconcentration, switching, momentum, saas, email_security, ownership, access, method).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"term":{"default":"","type":"string"},"section":{"default":"","type":"string"}}}},{"name":"dossier","description":"ONE-CALL DOSSIER on a hosting operator or consolidator group — the packaged\ndecision-support view when the question is \"brief me on this company\" rather than one metric:\nexecutive summary, market position, book quality, stability, SaaS attach, email-security posture,\nintegration status with the acquisition ledger, assembled risks and a peer table.\nArguments: target = a consumer brand ('ionos'), an operator ('domeneshop') or a group ('group.one');\ndetail='summary' (default: executive summary + risks), 'standard' or 'full'; or sections=\n'pricing,integration,…' for exactly those. meta.sections lists what is available and what was returned.\nPopulation: every count is labelled with the book it is measured on, and the response reconciles the\nbooks it mixes; known measurement notices are declared with the figures they qualify.\nIt is market research built from public signals: an input to the reader's own analysis, not\ninvestment advice and not a substitute for diligence. What each section measures: definitions(term='dossier').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"target":{"type":"string"},"detail":{"default":"summary","type":"string","enum":["summary","standard","full"]},"sections":{"default":"","type":"string"}},"required":["target"]}},{"name":"email_security","description":"Email-authentication posture across a market or an operator's book — SPF and\nDMARC adoption and, more importantly, STRICTNESS: how much of the published policy actually rejects\nspoofed mail rather than merely monitoring it.\nArguments: market grain ('global', 'europe', or a European TLD) is open; operator-book grain is a\nnamed-provider feature.\nPopulation: the mail-carrying part of the active-domains book — every percentage is of the active domains\nthat carry mail, not of all websites. A count of policies published in the wrong place is reported\nseparately as a misconfiguration, never as adoption.\nField definitions and the 'protection theatre' reading: definitions(section='email_security').","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"default":"","type":"string"},"operator":{"default":"","type":"string"}}}},{"name":"feedback","description":"Report a problem or suggestion so HostingBrain can improve — for the calling model or a\nuser. Use it when a number looks WRONG or contradicts another tool, when a tool was confusing or\nmissing, or when you have a suggestion.\nArguments: kind = data_error | confusing | missing | suggestion | other; about = the tool or topic it\nconcerns; reference = the specific value or entity in question (e.g. 'team.blue hosting_footprint',\n'one.com DK price', 'market_concentration dk').\nLogged against the current data release for human review and returns a receipt id. Data-error reports\nthat name a specific tool AND value are the most actionable.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"message":{"type":"string"},"kind":{"default":"other","type":"string","enum":["data_error","confusing","missing","suggestion","other"]},"about":{"default":"","type":"string"},"reference":{"default":"","type":"string"}},"required":["message"]}},{"name":"fetch","description":"Fetch full detail for a search result id — the companion to the search tool.\nArguments: id = 'def:<term>' (a canonical definition with its caveats), 'brief:<slug>' (a published\nanalyst brief summary and link), or 'operator:<group>' (a free-tier aggregate view).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}},{"name":"group_movement","description":"How much a consolidator moves customers WITHIN its own portfolio — the \"is this\nowner reorganizing its book\" question, kept separate from wins and losses against other groups\n(migration_flows).\nArguments: group = a consolidator or a brand that resolves to one; empty = the groups with the most\ninternal movement. Deal tier. chart=true returns a branded SVG.\nPopulation: two intent-neutral tiers on the group's own book — the share that moved between the\ngroup's OWN provider identities over 90 and 365 days, and the subset attributable to distinct known\nbrands as neutral observations (volume, shape, timing). We do NOT label a flow 'consolidation' — that\ninference is yours; the acquisition ledger is cross-referenced only as corroboration.\nDefinitions: definitions(section='group_movement').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"group":{"default":"","type":"string"},"chart":{"default":false,"type":"boolean"}}}},{"name":"header_adoption","description":"What INFRASTRUCTURE the European web runs on — CDN, origin cache, web server,\ncontrol panel, PaaS and runtime — read from the server's own response headers. Answers \"who runs\nVarnish, LiteSpeed, Plesk, IIS, OpenResty\" by operator, market or overall. Its neighbour\ntechnology_adoption reads the PAGE instead, on a different population: do not add or compare the two.\nArguments: no category/provider/operator = adoption across the categories (free); naming category or\nprovider = the per-provider breakdown (Pro). market = national-market TLD ('de','nl'); operator = an\noperator or consolidator book ('ionos','group.one' — brands resolve); grain = 'group' (default, the\nconsolidator book) or 'operator' (that brand's own nameserver book); scope = 'all' (default) or\n'content' (the homepage and commerce cut).\nPopulation: websites carrying at least one recognized infrastructure header — NOT the operator's whole\nbook. Every share is a floor: absence of a header is absence of evidence, never evidence of absence.\nCaveats and method: definitions(term='header_adoption'). Examples: header_adoption() ;\nheader_adoption(provider='varnish', operator='group.one') ; header_adoption(category='cache') ;\nheader_adoption(provider='varnish', operator='one.com', grain='operator').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"default":"","type":"string"},"provider":{"default":"","type":"string"},"market":{"default":"","type":"string"},"operator":{"default":"","type":"string"},"grain":{"default":"group","type":"string","enum":["group","operator"]},"scope":{"default":"all","type":"string","enum":["content","all"]},"chart":{"default":false,"type":"boolean"}}}},{"name":"hosting_momentum","description":"Where NEW websites start versus where the installed base sits, by hosting-front\nclass — the leading-indicator question for share shift, ahead of anything the installed base shows.\nArguments: scope = 'global', 'europe', 'europe_screened' (bulk moves excluded — the organic headline),\nor per-market rows; empty = all. chart=true returns a branded SVG.\nPopulation: domains newly observed in the trailing eight complete weeks. That cohort is paced by when a\ndomain enters our view, not by when it was registered. A market where a single nameserver holds an\noutsized share of the new cohort is flagged as a bulk event rather than read as momentum.\nDefinitions: definitions(section='momentum').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"scope":{"type":"string","enum":["global","europe","europe_screened"]},"chart":{"default":false,"type":"boolean"}}}},{"name":"independent_operators","description":"List INDEPENDENT hosting operators - well-integrated and not owned by any consolidator the\nownership ledger maps - by size and market. A description of the independent segment, not a\nrecommendation.\nArguments: country_tld filters by the operator's dominant market; min_live sets the size floor and\nmax_results the page size.\nPopulation: independent operators above the infrastructure-cohesion floor, above the size floor, and\nnot owned by any consolidator the ownership ledger maps.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"min_live":{"default":25000,"type":"integer","minimum":0},"country_tld":{"default":"","type":"string"},"max_results":{"default":20,"type":"integer","minimum":1}}}},{"name":"integration_depth","description":"HOW WELL a consolidator actually consolidates — the post-acquisition\nintegration question. No argument returns the scoreboard: what share of the\nportfolio sits on group platforms, and how deeply ledger-matched acquisitions were integrated (a low\nscore is a buy-and-hold FINDING, not an error).\nArguments: group = a consolidator or a brand that resolves to one, returns the per-brand breakdown with\nacquisition dates and two drill-down levels that must not be conflated — how much of each brand's book\nalready serves from the group backbone, and which machines serve it (a brand can be moved onto the\ngroup network while still running on its legacy fleet);\ninclude_network_map_detail = ask for the per-node and per-adjacency LISTS inside each brand's\nnetwork_map. Off by default because this answer is large: the map's accounting (counts, namer mix,\nroles, placement rule) always ships and every block states how many nodes and adjacencies it read,\nso nothing is held back — the lists are asked for rather than sent unconditionally.\nPopulation: the group's brands, each placed in one integration stage from its own dominant serving,\nmail and DNS identity against the group's shared platforms. Weekly dating makes trajectories readable.\nStage vocabulary, weights and worked examples: definitions(term='integration_depth').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"group":{"default":"","type":"string"},"chart":{"default":false,"type":"boolean"},"include_network_map_detail":{"default":false,"type":"boolean"}}}},{"name":"layer_stickiness","description":"How sticky each layer of the hosting stack ACTUALLY is — measured switching\nrates, for a churn-assumption or land-and-expand question. This is the proof behind \"front doors\nmigrate quickly, trust migrates slowly\".\nArguments: scope = 'global' or 'europe'; empty = both. chart=true returns a branded SVG.\nPopulation: the active-domains book over the trailing 26 weeks, annualized. A true\nprovider switch is distinguished from onboarding and lapse journeys, aftermarket rotation, a serving\nmove that left the customer relationship intact, and a provider's own address housekeeping — so the\nrate is not inflated by movement that is not switching.\nMetric definitions: definitions(section='switching').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"scope":{"type":"string","enum":["global","europe"]},"chart":{"default":false,"type":"boolean"}}}},{"name":"market_concentration","description":"How concentrated a hosting market really is — HHI and structure per market\nand layer, for a competition or market-entry question. Named provider shares are market_structure's\njob; this tool answers how tight the market is, not who is in it.\nArguments: market = 'global', 'europe', or a European market TLD ('dk'); empty = all rows.\nactor_scope selects which actor base leads the control-plane rows. chart=true returns a branded SVG.\nPopulation: the active-domains book, at two layers — control_plane (ownership-folded\ncustomer relationships) and hosting (visible serving network, CDN-masked origins excluded). A named\nmarket's control-plane row serves BOTH actor\nbases side by side — market_power (hosting competitors only, the default headline) and\ncontrol_plane_ecosystem (infrastructure providers counted alongside) — each with the book it is\nmeasured on. Returns HHI with its conventional bands, effective_n, top1 and top3.\nBand and actor-base definitions: definitions(section='concentration').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"default":"","type":"string"},"chart":{"default":false,"type":"boolean"},"actor_scope":{"default":"hosting_relationship","type":"string","enum":["hosting_relationship","control_plane"]}}}},{"name":"market_digitization","description":"How digitized a market's small businesses are — modern email plus SaaS web\nadoption in one index, as macro context for a market comparison or a whitespace question.\nArguments: market_grain='country' = the like-for-like national ranking; 'generic_tld' = generic\nnamespaces (.io/.shop/…); '' = both, each row still labelled with its grain. market='pl' (a country\ncode, or a namespace like 'com.au') returns that market's own row and its rank within the full\nranking, wherever it sits — the ranking page is capped by top_n, a named market is not.\nPopulation: the active-domains book of each market.\nScore formula and caveats: definitions(term='market_digitization').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"top_n":{"default":20,"type":"integer","minimum":1},"market_grain":{"type":"string","enum":["country","generic_tld"]},"market":{"default":"","type":"string"}}}},{"name":"market_pricing","description":"Where a market's price level sits, without naming operators — the aggregate view\nfor benchmarking a price point or sizing a repricing opportunity. Returns per-market medians that must\nnot be conflated (storefront, ownership-group, share-weighted, and a like-for-like entry-rung median),\nthe share of the market priced as an introductory teaser, and hosting AND domain renewal-cliff\nstatistics side by side, plus a named list of operators pricing far below the market's entry median\nwhile renewing far above its cliff median.\nArguments: category = shared_hosting (default) | managed_wordpress | vps | dedicated | email |\ndomain_registration | website_builder | ssl | addon; market = one country.\nPopulation: persistent priced products in that category and market. A statistic publishes only where\nthe market carries enough independently priced operators; market_weight_pct ships with every median\nand thin_operator_base flags the concentration-qualified case.\nNamed operators: pricing_profile. Per-operator domain cliffs: tld_pricing(view='cliffs').\nWhich median means what, the publication test, and when a cliff is withheld:\ndefinitions(section='pricing').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"default":"","type":"string"},"category":{"default":"shared_hosting","type":"string","enum":["shared_hosting","managed_wordpress","website_builder","vps","dedicated","email","domain_registration","ssl","addon"]},"chart":{"default":false,"type":"boolean"}}}},{"name":"market_structure","description":"Named provider shares for one national market — who holds the market, and how\nmuch, at a chosen layer. For how CONCENTRATED the market is rather than who is in it, use\nmarket_concentration.\nArguments: market = TLD ('de','nl'); layer = control_plane | hosting | email | web; offset= walks the\nfull ranking (an analyst-tier feature — free and pro receive the top 50 plus a tail bucket).\nmeta.pagination carries the total, has_more and next_offset.\nPopulation: the active-domains book of that market; shares are of that denominator, which\nships with the response.\nLayer definitions: definitions(section='attribution_layers').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"type":"string"},"layer":{"default":"control_plane","type":"string","enum":["control_plane","hosting","email","web"]},"offset":{"default":0,"type":"integer","minimum":0}},"required":["market"]}},{"name":"migration_flows","description":"Who is winning and losing customers against WHOM — direction-labelled migration\nflows involving a consolidator group, for a competitive-dynamics question. Movement WITHIN one\ngroup's own portfolio is group_movement's job, not this one's.\nArguments: subject = a consolidator group; layer = ns (the customer relationship) | host (the serving\nnetwork).\nPopulation: observed provider changes between the two dated readings. Magnitudes are DIRECTION-ONLY\nuntil the longitudinal panel calibrates them — read the direction, not the size.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"subject":{"type":"string"},"layer":{"default":"ns","type":"string","enum":["ns","host"]},"chart":{"default":false,"type":"boolean"}},"required":["subject"]}},{"name":"operator_profile","description":"Full profile of ONE hosting operator — footprint, geography, infrastructure\nsignature and cohesion, ownership check, book health and industry mix.\nArguments: brand_or_operator = an NS brand ('kasserver.com') or a provider id.\nPopulation: that operator's own book. For the packaged one-call decision-support view across all\nsections and its peers, use the dossier tool instead.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"brand_or_operator":{"type":"string"}},"required":["brand_or_operator"]}},{"name":"ownership_evidence","description":"Which websites appear to be run by the same operator, and HOW STRONG the\nevidence is — the corroboration question behind an undisclosed-ownership or shared-operation claim.\nUse it for evidence about a cluster of domains; for a hosting group's book use consolidator_scorecard\nor dossier.\nArguments: domain= finds the cluster containing that domain; operator= takes a cluster's\nrepresentative domain key.\nPopulation: clusters built from public corroborating signals — shared certificates and shared\nanalytics or advertising accounts. Every result carries a grade family that is LOAD-BEARING and must\nnot be overstated: ownership evidence, ownership plus a shared account (highest confidence), and\nshared operations only — the last is the same digital operation, which may be one owner, a franchise\nor a shared agency, and is NOT a legal-ownership claim.\nAnalyst tier. Corroborating evidence, never legal proof. Grades: definitions('ownership').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"domain":{"default":"","type":"string"},"operator":{"default":"","type":"string"}}}},{"name":"peer_compare","description":"Side-by-side comparison of 2-6 named operators on footprint, book health and\nstability — for ranking a shortlist on one screen.\nArguments: operators = a list of 2-6 names; brands resolve to the group that owns them.\nPopulation: each operator's own book, each figure labelled with the book it is measured on so unlike\nbooks are not silently ranked against each other.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operators":{"items":{"type":"string"},"type":"array","minItems":2,"maxItems":6}},"required":["operators"]}},{"name":"pricing_moves","description":"Whether an operator's prices actually moved, and what kind of move it was — the\ndated event feed behind a repricing or renewal-conduct question. Each event compares two consecutive\nobservations of the SAME persistent product; change_class says what moved (economics = a comparable\nprice, merchandising = promotional presentation only, observation = neither), and alert_grade is true\nonly for a confirmed economics event.\nArguments: brand_or_group and market narrow the feed to one operator or country; category narrows to\none product taxonomy — a market query otherwise mixes shared hosting,\ndomains and email in one feed; change_type names the non-commercial classes, which are excluded by\ndefault; include_all=true adds the underlying per-observation rows, labelled, which are not validated\ncommercial intelligence; offset pages a total order, so the same request over the same priced data\nreturns the same events in the same order and total_matching says what the page left out.\nPopulation: priced products we hold at least two dated observations for. The series is short by\nconstruction and an empty early feed is the honest state.\nEvent classes, confidence grades, and how two prices are made comparable before they are compared:\ndefinitions(term='pricing_moves').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"brand_or_group":{"default":"","type":"string"},"market":{"default":"","type":"string"},"change_type":{"default":"","type":"string"},"validation_tier":{"type":"string","enum":["observation_event","candidate_commercial_event","confirmed_commercial_event"]},"category":{"type":"string","enum":["shared_hosting","managed_wordpress","website_builder","vps","dedicated","email","domain_registration","ssl","addon"]},"include_all":{"default":false,"type":"boolean"},"offset":{"default":0,"type":"integer","minimum":0}}}},{"name":"pricing_profile","description":"The published offers of one named brand or consolidator group — the per-operator\nprice sheet behind a competitive-pricing question. One row per persistent product identity,\ncategory-labelled, each carrying its ladder rung (rung 1 = the entry offer, the cross-brand comparison\nunit — plan names are merchandising), entitlements, commitment and invoicing terms, and full economics\nin local currency, each figure marked as stated terms or estimate. Group queries add a posture per\nbrand and market.\nArguments: brand_or_group = the brand or consolidator; market='XX' for the full per-market set;\ncategory narrows to one product taxonomy; include_all=true returns the underlying source observations. Responses cap at 50 offers and say so when the cap is hit.\nPopulation: the offers we currently hold for that brand. renewal_unobserved means NO renewal price was\nseen — flat-versus-teaser is unknown, never read it as flat.\nField, posture and confidence vocabulary: definitions(term='pricing_profile'). Price changes over\ntime: pricing_moves.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"brand_or_group":{"type":"string"},"market":{"default":"","type":"string"},"category":{"type":"string","enum":["shared_hosting","managed_wordpress","website_builder","vps","dedicated","email","domain_registration","ssl","addon"]},"chart":{"default":false,"type":"boolean"},"include_all":{"default":false,"type":"boolean"}},"required":["brand_or_group"]}},{"name":"provenance","description":"How fresh the data behind an answer is — the public freshness summary for the current\nanalytical release, for when a number's date matters to the decision.\nArguments: none.\nReturns the external metadata only. Term-level methodology and book-type definitions are available\nthrough definitions(term=…).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"saas_adoption","description":"Which SaaS categories an operator's customers have adopted — the attach-rate view\nfor an upsell, whitespace or book-quality question, per hosting book rather than per market.\nArguments: grain='group' (default) rolls up to the consolidator that owns the book; grain='operator'\ndrills to one nameserver book. operators = 1-3 comma-separated names to compare; a name with no book\nat the requested grain falls back to its group and the response says so. chart=true returns a branded\nSVG.\nPopulation: the MEASURED part of each book — the active domains of it we hold a page\nobservation for — published on every row beside the book's size and its measured share. Compare books\nonly at similar measured share; the response warns when a compared set spans a wide range.\nCategory definitions and the coverage caveat: definitions(section='saas').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"operators":{"default":"","type":"string"},"grain":{"default":"group","type":"string","enum":["group","operator"]},"chart":{"default":false,"type":"boolean"}}}},{"name":"saas_diversification","description":"WHO, WHEN and WHAT in the industry's move up-stack — hosting consolidators\nbranching into SaaS and adjacent software: the dated non-hosting deal timeline, each group's\nhosting-versus-software acquisition mix, and the acquisition clusters the deals fall into.\nArguments: none.\nPopulation: the curated acquisition ledger — publicly reported deals, each carrying the date its\nsource states. It is a record of what was ANNOUNCED, not of everything that happened.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"search","description":"Search HostingBrain's hosting-market intelligence — canonical definitions, published\nanalyst briefs, and provider or consolidator names — when you need to find the right term, brief or\nentity before asking a numeric question.\nArguments: query = what to look for; results carry ids usable by the fetch tool, plus\nmeta.suggested_tool, an\nintent-routed pointer into the dedicated analytical tools, which give richer structured answers.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]}},{"name":"search_visibility","description":"WHO OWNS SEARCH for a market's head hosting term — the customer-acquisition\nchannel view. A large host that is invisible here is leaving search to its competitors. It answers a\ndifferent question from market_structure's ownership view; compare them, do not substitute one.\nArguments: view = leaders (per group: best rank and page-one listings) | rankings (the folded page-one\nlist) | leads (ranked hosts we do not yet recognize as operators — coverage gaps and onboarding\nleads); market = ISO country code, any case.\nPopulation: page-one (top-ten) results for the market's head term, folded to brand AND owning group\nthrough the same operator registry the market-structure tools use.\nMethod and caveats: definitions(term='search_visibility').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"default":"","type":"string"},"view":{"default":"leaders","type":"string","enum":["leaders","rankings","leads"]}}}},{"name":"stack_profile","description":"Where the EMAIL of a website population lives once its front door has moved to a\nSaaS builder — the cross-layer wallet-fragmentation view, and the analysis behind the brief \"the\nhosting stack didn't disappear — it fragmented\".\nArguments: market (TLD, e.g. 'no'); operator (control-plane key, e.g. 'hyp.net') — the operator filter\nis a named-provider feature.\nPopulation: the active-domains book overall, and the builder-fronted subset of it, reported\nside by side so the two are never read as one.\nMethod: definitions(term='stack_profile').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"default":"","type":"string"},"operator":{"default":"","type":"string"}}}},{"name":"technology_adoption","description":"What technology the European web runs on — CMS, e-commerce, analytics,\nmarketing, CRM, consent, support chat, security, anti-bot, backend, hosting, site builder, AI builder\nand AI API adoption, plus social presence — read from the page itself. Its neighbour header_adoption\nreads server response headers on a different population; vendor_adoption reads the DNS relationship\nlayer. The three are not additive.\nArguments: no category/provider/operator = adoption across every category published (free); naming\ncategory or provider = the per-provider breakdown (Pro; WordPress vs Wix vs Shopify). market =\nnational-market TLD ('de','nl'); operator = a hosting operator or consolidator book ('ionos',\n'team.blue' — brands resolve); grain = 'group' (default) or 'operator'; scope = 'content' (default,\npages classified homepage or commerce) or 'all' (every measured website, including pages carrying\nnone of those markers).\nPopulation: the active domains we hold a page observation for — a measurement subset\nof the book, not a billing count; the coverage is stated in every response.\nBenchmarks, the content classification and caveats: definitions(term='technology_adoption').\nExamples: technology_adoption() ; technology_adoption(category='social') ;\ntechnology_adoption(provider='shopify', market='nl') ;\ntechnology_adoption(provider='wordpress', operator='hostnet.nl', grain='operator').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"category":{"default":"","type":"string"},"provider":{"default":"","type":"string"},"market":{"default":"","type":"string"},"operator":{"default":"","type":"string"},"grain":{"default":"group","type":"string","enum":["group","operator"]},"scope":{"default":"content","type":"string","enum":["content","all"]},"chart":{"default":false,"type":"boolean"}}}},{"name":"tld_pricing","description":"Domain-name pricing per registrar brand and market — register, renew, transfer, and\nthe domain renewal cliff (renew divided by register), the first-year-teaser signal on the domain side\nof the bill. Use it for a named-brand domain price; use market_pricing for a market's aggregate level.\nArguments: view = cheapest (register ranked per market and TLD) | cliffs (steepest measured renewal\nmultiples) | matrix (register/renew/transfer per brand); market = ISO country code, any case; tld =\n'.com' or 'com'.\nPopulation: a curated per-market reference set — the local country TLD(s), .com, .info and a short\ngeneric tail — not every TLD in existence. cliff_status says which case a row is and\ncliff_suppression_reason why a withheld one is withheld; never compute renew divided by register\nyourself on a withheld row.\nThe reference set, the cliff statuses and the two grounds for withholding a ratio:\ndefinitions(term='tld_pricing').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"market":{"default":"","type":"string"},"tld":{"default":"","type":"string"},"view":{"default":"cheapest","type":"string","enum":["cheapest","cliffs","matrix"]}}}},{"name":"vendor_adoption","description":"WHO uses WHICH SaaS vendor, read from DNS rather than from the page — the\nrelationship layer complementing technology_adoption. Two mechanisms answer two different questions:\nmechanism='verification' = domain-verification records, evidence the relationship was ESTABLISHED;\nmechanism='spf_include' = which platform SENDS the domain's email.\nArguments: vendor = a name fragment ('openai','sendgrid'); mechanism = verification | spf_include;\nmarket = TLD ('de','nl'); top_n caps the rows; default = the all-markets rollup, most adopted first.\nPopulation: mechanism-specific and stated on every row — for verification, websites publishing such a\nrecord; for spf_include, those publishing a sending policy. An established relationship, not a\nbilling count.\nMethod and caveats, including what these records do and do not prove: definitions(term='vendor_adoption').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"vendor":{"default":"","type":"string"},"mechanism":{"type":"string","enum":["verification","spf_include"]},"market":{"default":"","type":"string"},"top_n":{"default":25,"type":"integer","minimum":1},"chart":{"default":false,"type":"boolean"}}}}],"scan":{"score":56,"grade":"C","scanned_at":"2026-09-19T20:15:38.422Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:15:38.309Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2960ms"]},"poisoning":{"score":15,"max":15,"notes":["35 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.hostingbrain.ai/mcp","reachable":true,"authRequired":false,"latencyMs":2960,"serverInfo":{"name":"hostingbrain-intelligence","version":"04f6395f"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://hostingbrain.ai/favicon.svg","source":"registry"},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}