accueil / serveurs / Données & BDD / com.vinktar/mcp
com.vinktar/mcp
serveur MCP (Model Context Protocol) · vinktar 1.0.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 com.vinktar/mcp est sûr ?
Au dernier audit MCP Hub, le serveur MCP « com.vinktar/mcp » 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 31 outils
- add_panel≈ 7199 tokens
Add a panel to a board. Each panel answers one question and reads at a glance: a number, a line or a bar. Build it from the structured types; `sql` is the last resort. Choose in this order: `funnel` for conversion through ordered events (viewed pricing → started checkout → paid), with a breakdown for conversion per segment (per shop, per plan): always a funnel, never a query or trend lines per step. `retention` for whether people come back. `trends` for everything that counts or sums events: `chart` "scalar" for one number (revenue, installs, failed charges; several numbers are several scalar panels, never one wide table), "line" for a metric over time, "bar" to compare segments over time, "hbar" to rank them, "share" for parts of a whole, "heatmap" for when in the week; set `display.format` to "currency" for money and "percent" for a rate. A series can carry its own `breakdown`, so one panel shows signups by plan beside checkouts by country; reach for that before SQL. A table only when the rows themselves are the point (the operations or shops to look at), with at most four columns. `issues` for the top errors, `text` for a heading over a row of panels: a single "## Heading" line renders as a slim section title. `sql` only when none of those can show it (a ratio between two measures), with at most four columns, the board's range as `{from}`/`{to}` rather than now(), and `sqlReason` saying why. A funnel and retention count the project's identified users: if the people in the question are not them, say so in a text panel instead. The spec is exactly what query_trends, query_funnel, query_retention or run_sql just ran (same field names), so check the numbers with that tool first. The panel is run once before it is saved: one that fails or breaks these rules is refused and nothing is saved, so follow the message and call again. The board is a grid: a panel joins the last row when it is the same kind and there is room (numbers up to four to a row, charts two, a table or text on its own), and every row shares its width equally at one height. Add panels in the order they should read; to change the rows afterwards, use update_board with `rows`.
Paramètres, retour & exemple (14)
Paramètresname· string · requis
Panel title as the team will read it.text· string · optionnel
For type "text": the Markdown body. A heading for a row of panels, or a short note on how to read them. Your own words only: never paste captured data (error messages, payloads, URLs) into it.type· string · requis · funnel | retention | trends | issues | text | sql
funnel, retention and trends first; sql only when they cannot express it.view· string · optionnel · steps | timeToConvert | trend | compare | bar | table
Funnels only: steps (default, the drop-off per step), compare (each step beside the period before, for "did the change help"), timeToConvert, trend (conversion rate over time), bar or table.chart· string · optionnel · line | area | bar | hbar | share | heatmap | scalar | table
For trends: line (default) over time; area for a total made of parts over time (stacked with `display.stacked`); bar to compare segments over time; hbar to rank segments by their total (long names, top pages, plans); share for each segment's part of the whole (a breakdown over the window, up to six slices); heatmap for when one series happens across the week (weekday × hour, UTC; one series, no breakdown); scalar for one number; table for rows. For retention: table (default, the cohort grid) or line (the average curve). For sql: table (default), line or bar.query· string · optionnel
For type "sql": the VinktarQL SELECT.funnel· object · optionnelissues· object · optionnel
For type "issues": the top error issues inside the board's window. Every field is optional.trends· object · optionneldisplay· object · optionnel
How the panel reads. format, stacked and legend are for trends and sql; thresholds and note for any panel but text.projects· array · optionnel
The projects this panel reads, by handle or id: a panel keeps its own set, so one board can hold panels over different apps. Leave out for every project this connection reaches.retention· object · optionnelsqlReason· string · optionnel
For type "sql", required: why no funnel, retention or trends panel can show this.dashboardId· string · requis
The board, from list_boards or create_board.
Exemple d'appel{"name": "add_panel", "arguments": {"name": "texte", "type": "funnel", "dashboardId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - browse_events≈ 744 tokens
Raw events, newest first, under simple filters: event names, one user (distinctId), page search, property filters or a VinktarQL WHERE expression. Use it to see what one user did, or to inspect real payloads. Pass `eventId` instead to get that one event in full, every column and the whole payload. Windows longer than 30 days are narrowed to their last 30. For counts, use query_trends or run_sql instead of paging.
Paramètres, retour & exemple (13)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.limit· integer · optionnel
Default 25.names· array · optionnel
Only these event names.cursor· string · optionnelsearch· string · optionnel
Case-insensitive substring of page_path or page_url.eventId· string · optionnel
One event in full, by the event_id a listing or run_sql returned. Every other argument is ignored.filters· array · optionnel
Each {key, op, value}: key is a column (country, page_path, release…) or "properties.<key>"; op EQ, NEQ, CONTAINS, NOT_CONTAINS, GT, LT, GTE, LTE.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.distinctId· string · optionnel
One person: matches user_id, distinct_id or device_id exactly.expression· string · optionnel
A VinktarQL boolean expression, e.g. "properties.plan = 'pro' AND country = 'DE'".
Exemple d'appel{"name": "browse_events", "arguments": {"to": "texte", "from": "texte", "last": "texte", "limit": 1, "names": [], "cursor": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - check_fix≈ 375 tokens
After a fix for an issue ships, start a server-side check of whether it comes back: occurrences on the fix release (or the next release seen) and later, against how many sessions reached that release, over a horizon of up to 14 days. It keeps running after this session. Read the result later with get_alert. The result is never "fixed": it is recurred, no recurrence in N sessions, or not enough evidence.
Paramètres, retour & exemple (5)
ParamètresissueId· string · requis
The issue id (from list_issues) or its Vinktar URL, as a person would paste it.release· string · optionnel
The release that carries the fix, exactly as the SDK reports it. Omit to alert the next release first seen after now.environment· string · optionnel
Only this environment, e.g. "production". Omit for every environment.horizonDays· integer · optionnel
How long to alert once the release is seen. Default 7.minExposure· integer · optionnel
Sessions (or events) the release must reach before a clean result counts. Default 100.
Exemple d'appel{"name": "check_fix", "arguments": {"issueId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_alert≈ 1904 tokens
Create an alert: what to read, when it is news, and who hears it. Subjects: issues (the whole error stream: new_issue, regression, spike, occurrences, users_affected), issue (one issue: regression, spike, occurrences, users_affected), panel (a board panel from get_board: threshold, change, anomaly), board (every panel on a board: change), event (one event's count or unique users, no panel needed: threshold, change, anomaly; "below 1 per hour" means it stopped arriving), query (a VinktarQL value; use {from} and {to} for the window: threshold, change, anomaly). Timing: everyMinutes and pendingFor (checks in breach before it fires); once it fires it stays quiet for a cooldown (one window for a number, an hour per issue for errors) rather than repeating. Who hears it: recipients (workspace members by address), channels (saved channel ids from get_alert, or "#name" in the connected Slack), notifyTeam; with none, the owners and admins. You cannot name a webhook, a URL or an outside address: a person adds those in Vinktar. For a fix, use check_fix. Only create an alert when the user asked for one.
Paramètres, retour & exemple (36)
Paramètressql· string · optionnel
subject query: VinktarQL whose last column is the value; filter with {from} and {to}.name· string · requis
What it alerts on, as a person would say it: "Signups dropping", "New issues in production".event· string · optionnel
subject event: the event name, from get_schema.links· array · optionnel
Links shown with every message, e.g. the team's runbook page: a label and an http or https URL each. Replaces the list.labels· array · optionnelwindow· string · optionnel · hour | day
Shorthand for windowMinutes 60 or 1440.boardId· string · optionnel
subject board: the board, from list_boards.compare· string · optionnel · previous | week
change: against the window before (default) or the same time a week ago.groupBy· string · optionnel
subject event: an event property to split by; each value is judged on its own (up to 20).issueId· string · optionnel
The issue id (from list_issues) or its Vinktar URL, as a person would paste it.panelId· string · optionnel
subject panel: the panel, from get_board.percent· number · optionnel
change: how far it has to move, in percent. Default 50.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.reducer· string · optionnel · sum | avg | min | max | last
Number alerts: how the window's buckets become one value. Default sum.release· string · optionnel
Error alerts: only issues last seen on this release; a trailing * matches a prefix, e.g. "web@2.*".subject· string · optionnel · issues | issue | panel | board | event | query
What is read.channels· array · optionnel
Where it posts: saved channel ids from get_alert, or a Slack channel of the connected Slack as "#name".minLevel· string · optionnel · fatal | error | warning | info
Error alerts: the least severe level that counts.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.severity· string · optionnel · info | warning | critical
How urgent its news is. Default warning.condition· string · optionnel · new_issue | regression | spike | occurrences | users_affected | threshold | change | anomaly
What counts as news: new_issue, regression, spike (against the 7-day baseline), occurrences, users_affected for error subjects; threshold (crosses a line), change (moves against the window before or a week ago), anomaly (far from its own recent history).direction· string · optionnel · above | below | at_least | at_most | outside | inside | up | down
threshold: above (default), below, at_least, at_most, outside or inside a range. change and anomaly: up, down or either (default).threshold· number · optionnel
threshold: the line (the bottom of the range for outside and inside).notifyTeam· boolean · optionnel
Also tell the owners and admins. Default: on when no recipients or channels are given.pendingFor· integer · optionnel
Consecutive checks in breach before it fires, so one bad minute is not news. Default 1.recipients· array · optionnel
Workspace members to email, by address. Outside addresses are refused: a person adds those in Vinktar.aggregation· string · optionnel · total | unique_users
subject event: count every event (default) or the people doing it.environment· string · optionnel
Error alerts: only this environment, e.g. "production". Omit for all.sensitivity· number · optionnel
anomaly: standard deviations from its last 24 windows that count as unusual. Default 3.everyMinutes· integer · optionnel
How often it is checked. Default 1 for error alerts, 5 for number alerts.textContains· string · optionnel
Error alerts: only issues whose title, type or culprit contains this.spikeMinCount· integer · optionnel
spike: a floor, so a quiet issue going from 1 to 4 is not a spike (default 50). occurrences, users_affected: the line (default 100).windowMinutes· integer · optionnel
Number alerts: the trailing window in minutes. Default 60.upperThreshold· number · optionnel
threshold with outside or inside: the top of the range.spikeMultiplier· number · optionnel
spike only: how many times the baseline counts as a spike. Default 3.spikeWindowMinutes· integer · optionnel
spike, occurrences, users_affected: the window in minutes. Default 10 for spike, 60 otherwise.
Exemple d'appel{"name": "create_alert", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - create_board≈ 726 tokens
Create an empty board in the workspace, to leave the user a view of what you found; fill it with add_panel, where each panel says which projects it reads. First decide what kind of board the request is, from the decision the user wants to make with it: "launch" when one feature or release just shipped: is it used, by whom, does it convert, did it break anything; "conversion" when a funnel someone cares about: where people drop and which segment converts; "growth" when the business at a glance: new people, active people, conversions and money over time; "engagement" when how much and how often people use the product, and whether they come back; "revenue" when money: how much, from whom, and the path to paying; "acquisition" when where people come from and which channels bring the ones who sign up; "reliability" when what is breaking and whether it hurts the flows that matter; "custom" when none of the above: a board shaped around one specific question. The result is a plan for that kind, filled in with the project's own signup, activation, conversion and revenue events: follow it, dropping what the user did not ask about. If the request fits none, ask the user what the board is for before building. Pass `expiresInDays` for a board built for one launch, so it deletes itself afterwards instead of staying forever. Only do this when the user asked for a board or agreed to one.
Paramètres, retour & exemple (6)
Paramètreskind· string · requis · launch | conversion | growth | engagement | revenue | acquisition | reliability | custom
What the board is for; decides the plan that comes back.name· string · requisproject· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.description· string · optionnel
One sentence saying what the board is for, at most 100 characters. It is the line under the board's title; a person can edit it in Vinktar.expiresInDays· integer · optionnel
Delete the board this many days from today. Leave it out for a board that stays. A person can change or clear the date in Vinktar.
Exemple d'appel{"name": "create_board", "arguments": {"kind": "launch", "name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - define_event≈ 756 tokens
Define an event in the project's tracking plan: what it means, its role, the properties it carries (type, unit, whether every send must include it, an example) and where the code sends it. Call it in the same step as adding or changing a track() call, before any data arrives; and for existing events once you have read the code that sends them. It takes effect at once, labelled as written by an agent, and the team can correct it in Vinktar. get_setup_status then reports defined events that never arrive and sends missing a required property. Conventions (get_install_guide with section "conventions" has them all): new event names and property keys are snake_case, object then past-tense action (signed_up, report_exported); a description is one sentence of at most 100 characters and a longer one is refused; an event already shipping under another spelling is defined as it is sent, never renamed unasked. Do not overwrite a description the team wrote unless the user asks. Setup call: never counted.
Paramètres, retour & exemple (6)
Paramètresrole· string · optionnel · signup | activation | conversion | revenue | none
The business moment it stands for, if any: signup, activation, conversion, revenue. "none" clears it.event· string · requis
The name exactly as the code sends it. For an event you are adding: snake_case, object then past-tense action, like report_exported.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.properties· array · optionneldescription· string · optionnel
What happened and when it fires: one sentence, at most 100 characters. Longer is refused.code_location· string · optionnel
Where the code sends it, as a repo path and line: "src/checkout/pay.ts:88".
Exemple d'appel{"name": "define_event", "arguments": {"event": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_board≈ 155 tokens
Delete a board with its panels. Only when the user asked for it, or agreed when you proposed it; name the board before you do. A person can restore it in Vinktar from the boards page for 30 days.
Paramètres, retour & exemple (1)
ParamètresdashboardId· string · requis
The board, from list_boards.
Exemple d'appel{"name": "delete_board", "arguments": {"dashboardId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - delete_panel≈ 160 tokens
Remove a panel from its board. Only when the user asked for it, or agreed when you proposed it; say which panel before you do. The panel id is in get_board. A person can restore it in Vinktar from the boards page for 30 days.
Paramètres, retour & exemple (1)
ParamètrespanelId· string · requis
The panel, from get_board.
Exemple d'appel{"name": "delete_panel", "arguments": {"panelId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_alert≈ 310 tokens
Read alerts and what they said. Pass alertId for one alert: whether it is on or snoozed, its timing, who hears it and what it said recently; a fix check reports awaiting_release, watching, recurred, no_recurrence, not_enough_evidence or stopped with exposure and recurrences on the fix release. issueId gives that issue's latest fix check; neither lists every alert in the project, what fired in the last 24 hours, and the saved channels an alert can post to. An alert is any standing question: the error stream, an issue, a panel, a board, an event or a query.
Paramètres, retour & exemple (3)
ParamètresalertId· string · optionnelissueId· string · optionnel
The issue id (from list_issues) or its Vinktar URL, as a person would paste it.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.
Exemple d'appel{"name": "get_alert", "arguments": {"alertId": "texte", "issueId": "texte", "project": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_board≈ 266 tokens
Read a board: every panel computed over a window with the change against the previous period, as headline numbers. The quickest way to answer "how are we doing" in the terms the team already tracks. Each panel shows its id, for update_panel and delete_panel.
Paramètres, retour & exemple (4)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.dashboardId· string · requis
From list_boards.
Exemple d'appel{"name": "get_board", "arguments": {"dashboardId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_install_guide≈ 333 tokens
The step-by-step guide for setting Vinktar up in the app you are working in: which SDK fits the stack (with current versions), the recommended file layout and environment variables, defining the tracking plan as you add events, proving it with get_setup_status, and the handover telling the person where each variable goes. Call this first when asked to install, set up or audit Vinktar, and follow it. It ends with Vinktar's conventions (event and property naming, descriptions, how an event changes, releases and environments, identifying users and connecting the browser visit to the server); pass section "conventions" for those alone before adding or changing a track() call in an app that is already set up. It answers before sign-in too, and then starts with where the person signs in from each app. Setup call: never counted.
Paramètres, retour & exemple (1)
Paramètressection· string · optionnel · all | conventions
"conventions" returns only the naming and tracking conventions. Default: the whole guide, which includes them.
Exemple d'appel{"name": "get_install_guide", "arguments": {"section": "all"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_issue≈ 320 tokens
Everything needed to debug one error issue: what it is, its status and history, how often and for whom it happens in the window (by release, environment, browser, URL, tag), the latest occurrence's stack trace (source-mapped when available, each in-app frame linking to its file in the repository once the project's repository URL is set), breadcrumbs and request, and the product events that user sent in the 30 minutes before it.
Paramètres, retour & exemple (4)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.issueId· string · requis
The issue id (from list_issues) or its Vinktar URL, as a person would paste it.
Exemple d'appel{"name": "get_issue", "arguments": {"issueId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_project_keys≈ 226 tokens
The keys installing Vinktar needs: the project's public write key (VINKTAR_KEY) with the ingest host, the Sentry-compatible DSN and the Bugsnag-compatible endpoints, and whether a source-map upload key (VINKTAR_CLI_KEY, a secret) exists, with where a person creates one. The secret is never returned: tell the person to add it as a CI secret. Needs a read and write connection. Setup call: never counted.
Paramètres, retour & exemple (1)
Paramètresproject· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.
Exemple d'appel{"name": "get_project_keys", "arguments": {"project": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_schema≈ 512 tokens
What a project tracks (or several, with `projects`, each under its own heading): event names with their volume over the last 30 days, the payload properties each event carries, user trait keys, and the columns and functions VinktarQL (run_sql) accepts. Call before any query so names are real. Pass `event` to see every property of one event, or `propertyKey` to see that property's most common values, which is how you find the exact spelling of one before filtering on it.
Paramètres, retour & exemple (7)
Paramètresevent· string · optionnel
Show only this event, with all of its property keys.limit· integer · optionnel
With `propertyKey`: how many values, default 30.search· string · optionnel
With `propertyKey`: a case-insensitive substring to narrow the values.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.propertyKey· string · optionnel
Instead of the schema: the most frequent values of this property over the last 90 days, most common first. E.g. "plan" (scope event), "country" (scope context), "company" (scope user).propertyScope· string · optionnel · event | context | user
Where `propertyKey` lives. Default "event" (a payload property).
Exemple d'appel{"name": "get_schema", "arguments": {"event": "texte", "limit": 1, "search": "texte", "project": "texte", "projects": [], "propertyKey": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_setup_status≈ 226 tokens
Check a project's Vinktar install from the data that actually arrived: events and errors received, users identified, releases and environments tagged, source maps for the latest release, items the SDK dropped, and key events described. Each gap comes with the next step. Call it after installing, and again after each fix, until nothing is left to do. Setup call: never counted against the agent allowance.
Paramètres, retour & exemple (1)
Paramètresproject· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.
Exemple d'appel{"name": "get_setup_status", "arguments": {"project": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - get_start_status≈ 181 tokens
Whether events and errors have arrived for a project started with start_project, by its write key, and whether the person has claimed it yet. Call it after installing the SDK and sending a first event. Projects someone already claimed answer only after sign-in, through get_setup_status.
Paramètres, retour & exemple (1)
Paramètreskey· string · requis
The write key start_project returned.
Exemple d'appel{"name": "get_start_status", "arguments": {"key": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_boards≈ 234 tokens
The boards whose panels read from a project, or from any of several with `projects`. A board shows what the team already decided matters; read one with get_board.
Paramètres, retour & exemple (2)
Paramètresproject· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.
Exemple d'appel{"name": "list_boards", "arguments": {"project": "texte", "projects": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_issue_occurrences≈ 220 tokens
Recent individual occurrences of one issue, newest first: when, which user and session, release, environment, page, browser and OS. Use it to spot a pattern (one browser, one release, one customer) or to pick a user or session to follow in browse_events.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Default 15.cursor· string · optionnelissueId· string · requis
The issue id (from list_issues) or its Vinktar URL, as a person would paste it.
Exemple d'appel{"name": "list_issue_occurrences", "arguments": {"issueId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_issues≈ 559 tokens
Error-tracking issues (errors grouped by fingerprint) for a project, or across several with `projects`, with occurrences and affected users inside the window. Default: open issues (unresolved + regressed) sorted by occurrences over the last 14 days. Follow up with get_issue for the stack trace.
Paramètres, retour & exemple (13)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.sort· string · optionnel · occurrences | users | last_seen | first_seen
Default "occurrences"; "first_seen" surfaces new issues.level· array · optionnellimit· integer · optionnel
Default 20.cursor· string · optionnelsearch· string · optionnel
Matches title, error type or message.status· string · optionnel · open | unresolved | regressed | resolved | ignored | all
Default "open".project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.release· string · optionnelprojects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.environment· string · optionnel
Exemple d'appel{"name": "list_issues", "arguments": {"to": "texte", "from": "texte", "last": "texte", "sort": "occurrences", "level": [], "limit": 1}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - list_projects≈ 131 tokens
List the Vinktar projects this connection can read (a project is one app or site sending events and errors), with the workspace plan and what this connection is allowed to do. Call this first when you do not know the project handle.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "list_projects", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - query_funnel≈ 2536 tokens
Conversion through an ordered sequence of events (e.g. view_pricing → start_checkout → purchase): how many entered, how many reached each step, where they dropped, how long converting took, optionally by segment.
Paramètres, retour & exemple (10)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.order· string · optionnel · ordered | strict | any
"ordered" (default): steps in sequence, other events allowed between; "strict": nothing between; "any": any order.steps· array · requis
Ordered steps: {event, label?, filters?}.filters· object · optionnel
Filters combined with AND/OR: {combinator: "AND", filters: [{property: {scope, key}, op, values: [..]}], groups: [nested groups]}. Ops: eq, neq, in, contains, gt, lt, is_set. Values are strings.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.breakdown· object · optionnel
{scope, key}. scope "event" = payload property, "context" = built-in dimension (country, browser, page_path, utm_source…), "session", "user" = user trait.conversionWindow· object · optionnel
How long an entrant has to finish, e.g. {value: 1, unit: "day"}. Default 1 day.
Exemple d'appel{"name": "query_funnel", "arguments": {"steps": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - query_retention≈ 1374 tokens
Cohort retention: users who did targetEvent in a period form a cohort, and the table shows what share of each cohort did returningEvent in each later period. Use it for "do people come back" and "did retention improve after the change".
Paramètres, retour & exemple (10)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.period· string · optionnel · day | week | month
Cohort granularity. Default "week".filters· object · optionnel
Filters combined with AND/OR: {combinator: "AND", filters: [{property: {scope, key}, op, values: [..]}], groups: [nested groups]}. Ops: eq, neq, in, contains, gt, lt, is_set. Values are strings.periods· integer · optionnel
Periods each cohort is tracked for. Default 8.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.targetEvent· string · requis
The event that puts a user in a cohort (e.g. "signup").returningEvent· string · requis
The event that counts as coming back (e.g. "session_start").
Exemple d'appel{"name": "query_retention", "arguments": {"targetEvent": "texte", "returningEvent": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - query_trends≈ 2710 tokens
Metrics over time: event counts, unique users or sessions, the sum, average or p95 of a numeric property, optionally split by a property (one breakdown for every series, or each series by its own) and compared to the previous period. The workhorse for "how many / how much / is it growing" questions. interval "total" returns one de-duplicated number per series for the whole window.
Paramètres, retour & exemple (10)
Paramètresto· string · optionnel
Window end, ISO 8601. Default now.from· string · optionnel
Window start, ISO 8601 (e.g. "2026-09-01" or "2026-09-01T12:00:00Z").last· string · optionnel
Relative window ending now, e.g. "1h", "24h", "7d", "30d", "90d". Default "14d". Ignored when `from` is given.series· array · requis
One to five metrics. Each: {event, aggregation, property?, filters?, label?, breakdown?}. `property` is required for sum, avg and p95.compare· boolean · optionnel
Also compute the previous period of equal length.filters· object · optionnel
Filters combined with AND/OR: {combinator: "AND", filters: [{property: {scope, key}, op, values: [..]}], groups: [nested groups]}. Ops: eq, neq, in, contains, gt, lt, is_set. Values are strings.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.interval· string · optionnel · hour | day | week | month | total
Bucket size. Default chosen from the window (hour ≤2d, day ≤120d, week beyond).projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.breakdowns· array · optionnel
Split every series without its own `breakdown` by one property.
Exemple d'appel{"name": "query_trends", "arguments": {"series": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - run_sql≈ 460 tokens
Run a read-only VinktarQL SELECT over the project's `events` table, for anything query_trends, query_funnel and query_retention cannot express; start with those, since what they run is what a board panel should be. A ClickHouse-flavoured subset: WHERE, GROUP BY, HAVING, ORDER BY, LIMIT, DISTINCT, IN, LIKE and allowlisted functions (count, uniq, sum, avg, quantile, countIf, toStartOfDay…); no joins, subqueries, CTEs or INTERVAL, so filter time as `timestamp > now() - 86400 * 7`. Payload properties are `properties.<key>`, user traits `user.<key>`. Tenant scoping and plan retention are applied automatically. Call get_schema first for columns, functions and property names, and aggregate in SQL rather than paging through raw rows.
Paramètres, retour & exemple (5)
Paramètreslimit· integer · optionnel
Rows per page, default 100.query· string · requis
One SELECT statement over `events`.cursor· string · optionnel
The cursor from a previous page, to continue.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.
Exemple d'appel{"name": "run_sql", "arguments": {"query": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - set_project_notes≈ 262 tokens
Write the project's notes for AI agents: what the product does and for whom, the flows that matter (signup, activation, the paid action), what counts as an active user, and anything that makes the data easy to misread. Write them from the codebase during setup, in plain sentences, up to 2,000 characters; they replace the current notes, so read them in get_schema first and keep what the team wrote. Every later agent reads them before the data. Setup call: never counted.
Paramètres, retour & exemple (2)
Paramètresnotes· string · requisproject· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.
Exemple d'appel{"name": "set_project_notes", "arguments": {"notes": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - start_project≈ 300 tokens
Before the person has signed in to Vinktar: start a project for their app now, so setup can run and data can arrive before anyone makes an account. Returns the project's write key (public, safe in browser code) and a claim link that only the person should open: it signs them in, or makes them an account, and keeps the project with its data. Unclaimed, the project takes up to 10,000 events and is deleted with its data after 7 days. Only call it when the person has not signed in and the other tools ask for sign-in; once signed in, use list_projects and get_project_keys instead.
Paramètres, retour & exemple (2)
Paramètresname· string · requis
What the person calls the app, e.g. the repository or product name.platform· string · optionnel
The stack, e.g. "nextjs", "laravel", "node", "browser".
Exemple d'appel{"name": "start_project", "arguments": {"name": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_alert≈ 1228 tokens
Change an alert from get_alert: its lines, window, timing, severity, recipients (workspace members) and channels (saved ids or "#name" in the connected Slack). Or hold its news with snoozeMinutes (0 ends a snooze; a week at most). What it reads and what it alerts on are fixed; switching an alert off or deleting it is a person's, in Vinktar. Only change an alert when the user asked.
Paramètres, retour & exemple (26)
Paramètresname· string · optionnel
What it alerts on, as a person would say it: "Signups dropping", "New issues in production".links· array · optionnel
Links shown with every message, e.g. the team's runbook page: a label and an http or https URL each. Replaces the list.labels· array · optionnelalertId· string · requiscompare· string · optionnel · previous | week
change: against the window before (default) or the same time a week ago.percent· number · optionnel
change: how far it has to move, in percent. Default 50.reducer· string · optionnel · sum | avg | min | max | last
Number alerts: how the window's buckets become one value. Default sum.release· string · optionnel
Error alerts: only issues last seen on this release; a trailing * matches a prefix, e.g. "web@2.*".channels· array · optionnel
Where it posts: saved channel ids from get_alert, or a Slack channel of the connected Slack as "#name".minLevel· string · optionnel · fatal | error | warning | info
Error alerts: the least severe level that counts.severity· string · optionnel · info | warning | critical
How urgent its news is. Default warning.direction· string · optionnel · above | below | at_least | at_most | outside | inside | up | down
threshold: above (default), below, at_least, at_most, outside or inside a range. change and anomaly: up, down or either (default).threshold· number · optionnel
threshold: the line (the bottom of the range for outside and inside).notifyTeam· boolean · optionnel
Also tell the owners and admins. Default: on when no recipients or channels are given.pendingFor· integer · optionnel
Consecutive checks in breach before it fires, so one bad minute is not news. Default 1.recipients· array · optionnel
Workspace members to email, by address. Outside addresses are refused: a person adds those in Vinktar.environment· string · optionnel
Error alerts: only this environment, e.g. "production". Omit for all.sensitivity· number · optionnel
anomaly: standard deviations from its last 24 windows that count as unusual. Default 3.everyMinutes· integer · optionnel
How often it is checked. Default 1 for error alerts, 5 for number alerts.textContains· string · optionnel
Error alerts: only issues whose title, type or culprit contains this.snoozeMinutes· integer · optionnelspikeMinCount· integer · optionnel
spike: a floor, so a quiet issue going from 1 to 4 is not a spike (default 50). occurrences, users_affected: the line (default 100).windowMinutes· integer · optionnel
Number alerts: the trailing window in minutes. Default 60.upperThreshold· number · optionnel
threshold with outside or inside: the top of the range.spikeMultiplier· number · optionnel
spike only: how many times the baseline counts as a spike. Default 3.spikeWindowMinutes· integer · optionnel
spike, occurrences, users_affected: the window in minutes. Default 10 for spike, 60 otherwise.
Exemple d'appel{"name": "update_alert", "arguments": {"alertId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_board≈ 592 tokens
Rename a board, rewrite the line under its title, change when it deletes itself, or lay its panels out. A board is a grid: every row spans the full width, its panels share it (one to four) at one height, equally unless you give widths. Pass `rows` to set the layout outright, top to bottom, as rows of panel ids from get_board; panels you leave out keep their order after them. Or pass `arrange` to straighten the rows as they read now. Pass only what changes. Panels are changed with update_panel and delete_panel.
Paramètres, retour & exemple (6)
Paramètresname· string · optionnelrows· array · optionnel
The rows, top to bottom, e.g. [["12","13","14","15"],{"panels":["16","17"],"widths":[8,4]},["18"]]: numbers up to four to a row, charts two, a table or text on its own. A row is its panel ids, shared equally, or {panels, widths} with widths in twelfths summing to 12 (each at least 2): a wide main chart beside a narrow one, or a chart beside its number.arrange· boolean · optionnel
Straighten the rows in their current order: numbers together, charts in pairs, one height per row.dashboardId· string · requis
The board, from list_boards.description· string · optionnel
One sentence saying what the board is for, at most 100 characters. Empty clears it.expiresInDays· integer · optionnel
Delete the board this many days from today; 0 keeps it for good.
Exemple d'appel{"name": "update_board", "arguments": {"dashboardId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_issue≈ 386 tokens
Change an error issue's status or assignee: resolve it (optionally in the release that ships the fix, or in the next release when it has not shipped yet, so a later occurrence reopens it as a regression), ignore it, reopen it, or assign it to a teammate. Only act on an issue when the user asked you to.
Paramètres, retour & exemple (6)
Paramètresstatus· string · optionnel · resolved | ignored | unresolvedissueId· string · requis
The issue id (from list_issues) or its Vinktar URL, as a person would paste it.assignee· string · optionnel
"me", a teammate's email, or "none" to unassign.environment· string · optionnel
With status "ignored" or "unresolved": act in this environment only (ignore it in staging, keep it live in production).resolvedInRelease· string · optionnel
With status "resolved": the release the fix ships in. Default: the last release it was seen in.resolvedInNextRelease· boolean · optionnel
With status "resolved": the fix has not shipped yet. The issue pins whichever release is seen next and only an occurrence on that release reopens it.
Exemple d'appel{"name": "update_issue", "arguments": {"issueId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - update_panel≈ 6764 tokens
Change a panel on a board: its title, how it draws, its number format or what it shows. Pass only what changes; the rest stays as it is. The panel id is in get_board. To turn it into another type, pass `type` with the full spec for it, the same fields as add_panel. A changed panel is run and held to the same rules as add_panel before it is saved (structured types before SQL, one question per panel, the board's time range), and one that breaks them is refused with nothing changed.
Paramètres, retour & exemple (14)
Paramètresname· string · optionnel
Panel title as the team will read it.text· string · optionnel
For type "text": the Markdown body. A heading for a row of panels, or a short note on how to read them. Your own words only: never paste captured data (error messages, payloads, URLs) into it.type· string · optionnel · funnel | retention | trends | issues | text | sql
funnel, retention and trends first; sql only when they cannot express it.view· string · optionnel · steps | timeToConvert | trend | compare | bar | table
Funnels only: steps (default, the drop-off per step), compare (each step beside the period before, for "did the change help"), timeToConvert, trend (conversion rate over time), bar or table.chart· string · optionnel · line | area | bar | hbar | share | heatmap | scalar | table
For trends: line (default) over time; area for a total made of parts over time (stacked with `display.stacked`); bar to compare segments over time; hbar to rank segments by their total (long names, top pages, plans); share for each segment's part of the whole (a breakdown over the window, up to six slices); heatmap for when one series happens across the week (weekday × hour, UTC; one series, no breakdown); scalar for one number; table for rows. For retention: table (default, the cohort grid) or line (the average curve). For sql: table (default), line or bar.query· string · optionnel
For type "sql": the VinktarQL SELECT.funnel· object · optionnelissues· object · optionnel
For type "issues": the top error issues inside the board's window. Every field is optional.trends· object · optionneldisplay· object · optionnel
How the panel reads. format, stacked and legend are for trends and sql; thresholds and note for any panel but text.panelId· string · requis
The panel, from get_board.projects· array · optionnel
The projects this panel reads, by handle or id: a panel keeps its own set, so one board can hold panels over different apps. Leave out for every project this connection reaches.retention· object · optionnelsqlReason· string · optionnel
For type "sql", required: why no funnel, retention or trends panel can show this.
Exemple d'appel{"name": "update_panel", "arguments": {"panelId": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - whats_changed≈ 330 tokens
Start here. One project's window, or several pooled with `projects` (every row then names its project), compared with the one before it, across analytics and errors: traffic (events, active users, sessions), the events that rose, fell, appeared or stopped, error volume, new, regressed and fastest-growing issues, and the releases that shipped, and what the project's alerts said. Each row names the tool to go deeper.
Paramètres, retour & exemple (3)
Paramètreslast· string · optionnel · 24h | 7d | 30d
Default "7d", compared with the 7 days before.project· string · optionnel
Project handle (as in list_projects) or id. Optional when this connection is limited to one project or the workspace has only one.projects· array · optionnel
Project handles (as in list_projects) or ids, to read across several apps. Leave out for every project this connection can reach. For one project use `project`; never pass both.
Exemple d'appel{"name": "whats_changed", "arguments": {"last": "24h", "project": "texte", "projects": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
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é ».