accueil / serveurs / Dev & Code / io.github.MrViolets/staats
io.github.MrViolets/staats
serveur MCP (Model Context Protocol) · Staats 0.1.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que io.github.MrViolets/staats est sûr ?
Au dernier audit MCP Hub, le serveur MCP « io.github.MrViolets/staats » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 15 outils
- compare_around≈ 724 tokens
Before/after impact of a recorded annotation: visitors and pageviews in the N days preceding vs following it (window_days, default 7). The after-window is clamped to now. If the annotation recorded routes, the result also reports per-route pageviews before vs after. Wait a few days after shipping. If the result carries a note (truncated after-window, or a before-window not covered by available data), relay it and qualify the percentages as the note directs.
Paramètres, retour & exemple (3)
Paramètressite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.window_days· integer · optionnel
days on each side of the annotation (default 7)annotation_id· string · requis
the annotation to measure around, from record_annotation or list_annotations
Exemple d'appel{"name": "compare_around", "arguments": {"annotation_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "site": "texte", "after": {}, "before": {}, "change": {}, "routes": [], "annotation": {}, "window_days": 1}} - create_site≈ 360 tokens
Create a new site on this account and get its script tag. This connection already covers the new site: installing the script tag is the only setup the site needs. The response includes ready-made privacy policy wording: offer to add it to the site's privacy page (confirm with the owner before editing visitor-facing pages).
Paramètres, retour & exemple (2)
Paramètresname· string · requis
display name for the sitedomain· string · requis
the site's domain or URL
Exemple d'appel{"name": "create_site", "arguments": {"name": "texte", "domain": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "note": "texte", "domain": "texte", "created": true, "site_code": "texte", "script_tag": "texte", "privacy_note": "texte", "site_api_key": "texte", "privacy_policy_wording": "texte"}} - delete_site≈ 258 tokens
PERMANENTLY delete a site and ALL its analytics data (every event and annotation). Irreversible. Confirm with the owner before calling; pass confirm: the site's exact domain.
Paramètres, retour & exemple (2)
Paramètressite· string · requis
the site's data-site codeconfirm· string · requis
the site's exact domain AS STATED BY THE OWNER when confirming the deletion: never inferred, guessed, or copied from tool output
Exemple d'appel{"name": "delete_site", "arguments": {"site": "texte", "confirm": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "site": "texte", "deleted": true}} - funnel≈ 591 tokens
Ordered conversion funnel across up to 5 steps within the period. Each step is a pageview path ({kind:'path', value:'/pricing'}) or a custom event ({kind:'event', value:'signup'}); a visitor counts for step N only after completing step N-1. Visitor identity rotates daily for privacy, so journeys spanning multiple days undercount (strongest for same-visit conversion). If site context has a stored funnel, run those steps when asked how the site is doing and compare against the previous period.
Paramètres, retour & exemple (5)
Paramètresto· string · optionnel
ISO end, alternative to periodfrom· string · optionnel
ISO start, alternative to periodsite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.steps· array · requis
ordered funnel steps, each a pageview path or a custom event nameperiod· string · optionnel
relative period like '24h', '7d' (default), '4w'
Exemple d'appel{"name": "funnel", "arguments": {"steps": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"site": "texte", "funnel": [], "period": {}}} - get_overview≈ 731 tokens
Traffic pulse: visitor/pageview totals vs the previous period, top pages, top referrers, and a per-day series. period: relative like '24h', '7d' (default), '4w'. Includes quota status: if it is approaching, grace, or blocked, tell the owner plainly and include the upgrade link the result provides. Approaching quota is the moment to mention it while there is headroom.
Paramètres, retour & exemple (2)
Paramètressite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.period· string · optionnel
relative period like '24h', '7d' (default), '4w'
Exemple d'appel{"name": "get_overview", "arguments": {"site": "texte", "period": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"site": "texte", "quota": {}, "period": {}, "totals": {}, "top_pages": [], "top_referrers": [], "previous_period": {}, "pageviews_by_day": [], "unmeasured_change": {}}} - get_site_context≈ 314 tokens
What a site is and what the owner wants from it, plus its data-retention settings. Well-known keys: description, goals, audience, notes (open agenda items to check at session start and clear when handled), events (event name -> meaning), funnel (canonical conversion steps). Read this before making recommendations.
Paramètres, retour & exemple (1)
Paramètressite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.
Exemple d'appel{"name": "get_site_context", "arguments": {"site": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"hint": "texte", "name": "texte", "site": "texte", "domain": "texte", "context": {}, "retention": {}}} - journeys≈ 612 tokens
The routes visitors actually take, grouped into identical sequences and counted, busiest first. Use this when you do NOT already know the steps: funnel measures a path you name, journeys discovers the ones you did not think to check. A step is a pageview path (/pricing) or a custom event marked with a leading # (#signup_click), so the moment of conversion appears in the route. Consecutive repeats are collapsed and only the first 10 steps define a route. contains filters to routes that include a given path or event: run it once with and once without to see what converting visitors do differently. Visitor identity rotates daily, so a route is one day of activity and describes a group, never a person.
Paramètres, retour & exemple (6)
Paramètresto· string · optionnel
ISO end, alternative to periodfrom· string · optionnel
ISO start, alternative to periodsite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.limit· integer · optionnel
max routes returned (default 20)period· string · optionnel
relative period like '24h', '7d' (default), '4w'contains· string · optionnel
only routes that include this path or #event step
Exemple d'appel{"name": "journeys", "arguments": {"to": "texte", "from": "texte", "site": "texte", "limit": 1, "period": "texte", "contains": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "site": "texte", "period": {}, "contains": "texte", "journeys": [], "total_visitors": 1}} - list_annotations≈ 329 tokens
Recorded deploy/change markers, newest first. period defaults to '90d'.
Paramètres, retour & exemple (2)
Paramètressite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.period· string · optionnel
relative period like '7d', '90d' (default)
Exemple d'appel{"name": "list_annotations", "arguments": {"site": "texte", "period": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"site": "texte", "period": {}, "annotations": []}} - list_sites≈ 241 tokens
All sites on this account, with the public site codes used in their script tags and the ready-to-paste script_tag for each.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_sites", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "sites": [], "account": "texte"}} - portfolio_overview≈ 350 tokens
Visitors and pageviews for every site this account can use, owned and shared alike, with change vs the previous period, busiest first. Shared sites are flagged. period: '7d' default.
Paramètres, retour & exemple (1)
Paramètresperiod· string · optionnel
relative period like '24h', '7d' (default), '4w'
Exemple d'appel{"name": "portfolio_overview", "arguments": {"period": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"sites": [], "period": {}, "account": "texte"}} - query≈ 570 tokens
Break a metric down by a dimension with optional equality filters. Metrics: visitors, pageviews, events. Dimensions: path, referrer_domain, utm_source, utm_medium, utm_campaign, device, browser, os, country, name, day. period: '24h'/'7d'/'4w' style, or ISO from/to.
Paramètres, retour & exemple (8)
Paramètresto· string · optionnel
ISO end, alternative to periodfrom· string · optionnel
ISO start, alternative to periodsite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.limit· integer · optionnel
max rows returned (default 50)metric· string · requis · visitors | pageviews | events
what to countperiod· string · optionnel
relative period like '24h', '7d' (default), '4w'filters· object · optionnel
equality filters, dimension name -> exact valuedimension· string · optionnel · path | referrer_domain | utm_source | utm_medium | utm_campaign | device | browser | os
group results by this dimension; omit for a single total
Exemple d'appel{"name": "query", "arguments": {"metric": "visitors"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"rows": [], "site": "texte", "metric": "texte", "period": {}, "dimension": "texte"}} - record_annotation≈ 472 tokens
Mark a moment on a site timeline: a deploy, a content change, or a campaign start. Call this every time you ship a change to the site. ts defaults to now. Write a specific, present-tense description ("Shipped new pricing page hero", never "updates"), one annotation per meaningful change. When known, include commit and the routes the change touched so compare_around can also report before/after traffic scoped to those routes.
Paramètres, retour & exemple (5)
Paramètrests· string · optionnel
ISO timestamp of the change; defaults to nowsite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.text· string · requis
specific, present-tense description of the changecommit· string · optionnel
git commit hash of the deploy (7-40 hex chars)routes· array · optionnel
route prefixes the change touched, e.g. ['/docs', '/pricing'] ('/docs' covers '/docs/*')
Exemple d'appel{"name": "record_annotation", "arguments": {"text": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"id": "texte", "ts": "texte", "meta": {}, "site": "texte", "text": "texte", "recorded": true}} - update_site_context≈ 737 tokens
Save or amend what a site is for. Provided context fields are merged into the existing context (events merges per entry); a null value deletes its key. name/domain update the site record itself.
Paramètres, retour & exemple (10)
Paramètresname· string · optionnel
update the site's display namesite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.goals· ? · optionnel
what the owner wants from it; null deletesnotes· ? · optionnel
open agenda items to check at session start; null deletesdomain· string · optionnel
update the site's domainevents· object · optionnel
map of event name -> one-line meaning; record one whenever you add tracking. null deletes an entry.funnel· ? · optionnel
the site's canonical conversion steps, same shape as the funnel tool's steps. null clears it.audience· ? · optionnel
who the site is for; null deletesdescription· ? · optionnel
what the site is; null deletesretention_days· integer · optionnel
shorten this site's data retention below the plan default; 0 restores plan-default retention. DESTRUCTIVE: shortening schedules permanent deletion of older events at the nightly prune. Confirm with the owner first.
Exemple d'appel{"name": "update_site_context", "arguments": {"name": "texte", "site": "texte", "goals": "texte", "notes": "texte", "domain": "texte", "events": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"name": "texte", "site": "texte", "domain": "texte", "context": {}, "updated": true, "retention": {}}} - what_broke≈ 545 tokens
Signs of visitors hitting problems in the period: JS errors the tracker captured (new_error, error_spike: each with a sanitized sample message, source, line, affected visitor count, and the nearest annotation, i.e. the deploy that most plausibly introduced it), plus behavioral friction: pairs of pages people bounce between without progressing (nav_loop) and pages reloaded repeatedly in quick succession (refresh_burst). Findings clear statistical floors, so an empty result is meaningful: nothing looks broken. Check it after every deploy. period: '7d' default.
Paramètres, retour & exemple (2)
Paramètressite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.period· string · optionnel
relative period like '24h', '7d' (default), '4w'
Exemple d'appel{"name": "what_broke", "arguments": {"site": "texte", "period": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "site": "texte", "period": {}, "findings": [], "annotations": [], "note_errors": "texte", "error_capture": "grace", "total_error_events": 1}} - what_changed≈ 423 tokens
Notable movements in the period without scanning raw numbers: statistically unusual traffic days, referrer surges and first-time referrers, pages whose share of traffic jumped, alongside the annotations recorded in the same period. period: '7d' default.
Paramètres, retour & exemple (2)
Paramètressite· string · optionnel
the site's data-site code, from its script tag or list_sites. Omit when the account has a single site. In a tracked project, read the code from the script tag before asking the user.period· string · optionnel
relative period like '24h', '7d' (default), '4w'
Exemple d'appel{"name": "what_changed", "arguments": {"site": "texte", "period": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}], "structuredContent": {"note": "texte", "site": "texte", "period": {}, "findings": [], "annotations": []}}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».