com.vinktar/mcp

Vinktar

Error tracking for small teams and their coding agents.

Endpointhttps://mcp.vinktar.com/mcp (streamable-http)
Registry version1.0.1
Now31 tools · grade F (45) · pin ts_4cc3dbe9687a8ab1625c9a64f610c213 · protocol 2025-06-18
First / last listed2026-10-27 00:07 UTC / 2026-10-27 00:07 UTC
Grade over time2026-10-27: F (45), 31 tools

Is this your server? Own a server? ToolFit hosted watch re-checks it every 24 h ($0.25 per 30 days) or 6 h ($0.60) and sends you an HMAC-signed webhook when its tools or grade change: POST https://api.youraitools.co/toolfit/v1/watch. To opt out, see About & opt-out.

Timeline

First listing · 2026-10-27 00:07 UTC
31 tools, grade F (45)

Tools: add_panel browse_events check_fix create_alert create_board define_event delete_board delete_panel get_alert get_board get_install_guide get_issue get_project_keys get_schema get_setup_status list_boards list_issue_occurrences list_issues list_projects query_funnel query_retention query_trends run_sql set_project_notes update_alert update_board update_issue update_panel whats_changed start_project get_start_status

Current tools (31)

add_panelAdd 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 ste
params: dashboardId*, name*, projects, type*, chart, view, display, trends, funnel, retention, query, sqlReason, issues, text
browse_eventsRaw 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 in
params: project, projects, eventId, names, distinctId, search, filters, expression, limit, cursor, last, from, to
check_fixAfter 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 and the issueId. The result is never "fixed": it is recurred, no recurrence in N sessions, o
params: issueId*, release, environment, horizonDays, minExposure
create_alertCreate an alert: a query (source events, errors or sql; measure count or unique_users; filters; an optional groupBy; a window in minutes), a condition (above or below a threshold, or changed by a percent against the window before, a week earlier or the trailing week) and who hears it (recipients among members, saved channels, the team by default). Each series is judged on its own and a series that
params: project, projects, name*, source, measure, event, sql, eventFilters, groupBy, environment, minLevel, release, textContains, issueId, lifecycle, windowMinutes, condition, threshold, changePercent, changeDirection, compare, floor, everyMinutes, pendingFor, recipients, notifyTeam, channels, links
create_boardCreate 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
params: name*, kind*, project, projects, description, expiresInDays
define_eventDefine 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 age
params: project, event*, description, role, code_location, properties
delete_boardDelete 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.
params: dashboardId*
delete_panelRemove 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.
params: panelId*
get_alertRead alerts and what they said. Pass alertId for one alert: its query and condition, whether it is on or snoozed, what its last check read per series, who hears it and what it said recently. issueId gives that issue's latest fix check (awaiting_release, watching, recurred, no_recurrence, not_enough_evidence or stopped, with exposure and recurrences on the fix release). Neither lists every alert in
params: alertId, issueId, project
get_boardRead 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.
params: dashboardId*, last, from, to
get_install_guideThe 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 i
params: section
get_issueEverything 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 se
params: issueId*, last, from, to
get_project_keysThe 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 coun
params: project
get_schemaWhat 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 value
params: project, projects, event, propertyKey, propertyScope, search, limit
get_setup_statusCheck 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 allo
params: project
list_boardsThe 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.
params: project, projects
list_issue_occurrencesRecent 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.
params: issueId*, limit, cursor
list_issuesError-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.
params: project, projects, status, level, environment, release, search, sort, limit, cursor, last, from, to
list_projectsList 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.
params: none
query_funnelConversion 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.
params: project, projects, steps*, order, conversionWindow, breakdown, filters, last, from, to
query_retentionCohort 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".
params: project, projects, targetEvent*, returningEvent*, period, periods, filters, last, from, to
query_trendsMetrics 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.
params: project, projects, series*, breakdowns, filters, interval, compare, last, from, to
run_sqlRun 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
params: project, projects, query*, limit, cursor
set_project_notesWrite 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.
params: project, notes*
update_alertChange an alert from get_alert: any part of its query, condition, timing, 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). Switching an alert off or deleting it is a person's, in Vinktar. Only change an alert when the user asked.
params: alertId*, snoozeMinutes, name, source, measure, event, sql, eventFilters, groupBy, environment, minLevel, release, textContains, issueId, lifecycle, windowMinutes, condition, threshold, changePercent, changeDirection, compare, floor, everyMinutes, pendingFor, recipients, notifyTeam, channels, links
update_boardRename 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 s
params: dashboardId*, name, description, expiresInDays, rows, arrange
update_issueChange 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.
params: issueId*, status, resolvedInRelease, resolvedInNextRelease, environment, assignee
update_panelChange 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
params: panelId*, name, projects, type, chart, view, display, trends, funnel, retention, query, sqlReason, issues, text
whats_changedStart 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
params: project, projects, last
start_projectBefore 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 d
params: name*, platform
get_start_statusWhether 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.
params: key*

Entries describe changes in tool definitions. They are not statements about a server, its quality or its author. The grade measures how the tool definitions fit model providers (token cost, schema compatibility, confusable names) as scored by the ToolFit engine at the time of the listing. JSON: append .json. Opt-out: how or hello@youraitools.co.