About Vinktar
Vinktar connects coding agents to error tracking data and the user actions preceding errors. Its MCP server, setup skill, and command support project setup and questions about errors, releases, and affected users.
Key features
- 01Read errors and preceding user actions
- 02Ask questions about error and release trends
- 03Set up project instrumentation with a skill
- 04Check that incoming data is received
- 05Control access by workspace and project
Use cases
- 01Find errors following a recent deployment
- 02Identify errors affecting the most users
- 03Instrument a repository and verify incoming events
- 04Review changes in error trends over a week
MCP support
Exposes Vinktar workspace and project data to MCP clients through `https://mcp.vinktar.com/mcp`, using browser sign-in and scoped permissions. The accompanying setup skill and `/vinktar` command help agents configure projects and query error data.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://mcp.vinktar.com/mcpclaude mcp add --transport http com-vinktar https://mcp.vinktar.com/mcp{"mcpServers":{"com-vinktar":{"type":"http","url":"https://mcp.vinktar.com/mcp"}}}Open in Cursor{"servers":{"com-vinktar":{"type":"http","url":"https://mcp.vinktar.com/mcp"}}}Open in VS Code{"mcpServers":{"com-vinktar":{"type":"http","url":"https://mcp.vinktar.com/mcp"}}}{"mcpServers":{"com-vinktar":{"serverUrl":"https://mcp.vinktar.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
31| Parameter | Type | Required | Description |
|---|---|---|---|
| name | string | Yes | Panel title as the team will read it. |
| text | string | No | 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 | enum | Yes | funnel, retention and trends first; sql only when they cannot express it.funnel | retention | trends | issues | text | sql |
| view | enum | No | 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.steps | timeToConvert | trend | compare | bar | table |
| chart | enum | No | 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.line | area | bar | hbar | share | heatmap | scalar | table |
| query | string | No | For type "sql": the VinktarQL SELECT. |
| funnel | object | No | |
| funnel.order | enum | No | "ordered" (default): steps in sequence, other events allowed between; "strict": nothing between; "any": any order.ordered | strict | any |
| funnel.steps | array | Yes | Ordered steps: {event, label?, filters?}. |
| funnel.filters | object | No | 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. |
| funnel.filters.groups | array | No | |
| funnel.filters.filters | array | No | |
| funnel.filters.combinator | enum | Yes | AND | OR |
| funnel.breakdown | object | No | {scope, key}. scope "event" = payload property, "context" = built-in dimension (country, browser, page_path, utm_source…), "session", "user" = user trait. |
| funnel.breakdown.key | string | Yes | |
| funnel.breakdown.scope | enum | Yes | event | context | session | user |
| funnel.conversionWindow | object | No | How long an entrant has to finish, e.g. {value: 1, unit: "day"}. Default 1 day. |
| funnel.conversionWindow.unit | enum | Yes | minute | hour | day | week | month |
| funnel.conversionWindow.value | integer | Yes | |
| issues | object | No | For type "issues": the top error issues inside the board's window. Every field is optional. |
| issues.sort | enum | No | Default "occurrences".occurrences | users | recent |
| issues.limit | integer | No | Rows shown, default 5. |
| issues.environment | string | No | Only this environment, e.g. "production". Omit for all. |
| trends | object | No | |
| trends.series | array | Yes | One to five metrics. Each: {event, aggregation, property?, filters?, label?, breakdown?}. `property` is required for sum, avg and p95. |
| trends.filters | object | No | 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. |
| trends.filters.groups | array | No | |
| trends.filters.filters | array | No | |
| trends.filters.combinator | enum | Yes | AND | OR |
| trends.breakdowns | array | No | Split every series without its own `breakdown` by one property. |
| display | object | No | How the panel reads. format, stacked and legend are for trends and sql; goal and note for any panel but text. |
| display.goal | number | No | The target the user named (a conversion rate, a revenue number, an error budget), in the panel's own unit: 0.25 for 25% with format percent. A chart draws it as a line, a number turns green or red against it. Only a target the user gave; never invent one. |
| display.note | string | No | One plain sentence under the title on how to read the panel or what changed. Your own words, never captured data. |
| display.format | enum | No | currency for money, percent for a rate; default count.count | currency | percent |
| display.legend | boolean | No | Line charts: show the legend. Default true. |
| display.stacked | boolean | No | Bar charts with several series: stack them. Default true. |
| display.goalDirection | enum | No | up (default) when more is better, down when less is (errors, load time).up | down |
| projects | array | No | 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 | No | |
| retention.period | enum | No | Cohort granularity. Default "week".day | week | month |
| retention.filters | object | No | 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. |
| retention.filters.groups | array | No | |
| retention.filters.filters | array | No | |
| retention.filters.combinator | enum | Yes | AND | OR |
| retention.periods | integer | No | Periods each cohort is tracked for. Default 8. |
| retention.targetEvent | string | Yes | The event that puts a user in a cohort (e.g. "signup"). |
| retention.returningEvent | string | Yes | The event that counts as coming back (e.g. "session_start"). |
| sqlReason | string | No | For type "sql", required: why no funnel, retention or trends panel can show this. |
| dashboardId | string | Yes | The board, from list_boards or create_board. |
Details
From the project READMEVinktar for coding agents
Vinktar is error tracking your coding agent can read, with what the user did right before each error. This plugin gives Claude Code, Cursor and Codex three things:
- The Vinktar MCP server (
https://mcp.vinktar.com/mcp). You sign in in the browser and choose a workspace, the projects it may reach, and read, build or configure. No key to paste. - The
setupskill. Run/vinktar:setupin Claude Code, or ask your agent to "set up Vinktar". It reads your repo, installs the SDK for your stack in a standard layout, fetches the project's write key over the connection, wires identify, errors and source maps, defines each event it tracks, checks what actually arrived, and ends with a list of every environment variable and where it goes. - The
/vinktarcommand. Type/vinktarto set Vinktar up in this repo, or once it is set up to hear what broke./vinktar what broke after the last deploy?asks a question directly.
Once it's installed, ask it things like "what changed this week?" or "which errors hit the most people since the last release?".
You don't need an account beforehand. Before anyone signs in, the agent can start a project on its
own (start_project), set the app up with its key and check that
data arrives; you then open the claim link it gives you, which signs you in or makes your account and
keeps the project with its data. Unclaimed, a project takes up to 10,000 events and is deleted with
its data after 7 days.
Install
Claude Code
claude plugin marketplace add vinktarhq/agent
claude plugin install vinktar@vinktar
Run /vinktar:setup. It can set the app up before you sign in; to ask questions about your data
later, run /mcp, pick vinktar and authenticate.
Claude (claude.ai, the desktop app, Cowork)
Adding the plugin does not connect Vinktar. After you add it:
- Open the plugin's Connectors tab, or claude.ai/customize/connectors, and choose Connect next to Vinktar.
- Sign in or make a free account in the browser, leave Build and Configure on, and approve.
- Start a new chat. A chat that was already open does not pick up the connection.
Then ask "what broke today?", or type /vinktar.
Cursor
Import this repository under Customize → Plugins → From GitHub Repository. Cursor asks you to sign in the first time it connects.
Codex
codex plugin marketplace add vinktarhq/agent
codex plugin add vinktar@vinktar
codex mcp add vinktar --url https://mcp.vinktar.com/mcp
The last line adds the connection and opens the sign-in in your browser.
Any other MCP client
Add https://mcp.vinktar.com/mcp as a Streamable HTTP server; it finds the sign-in on its own. Then
ask your agent to call get_install_guide. Setup for each client:
vinktar.com/docs/mcp.
A harness that reads skills but has no plugin format
Copy .agents/skills/setup/ into your repository (or your home directory, wherever your
tool looks). It is the same skill, at the path most tools agree on, and it needs the MCP server
added separately.
What it can and can't do
The agent sees what you'd see in the workspace and project you approved. The only things it can delete are boards and panels, and those stay restorable from the boards page for 30 days. It can't delete events, errors, issues or projects, create projects or keys once you are signed in, manage members or billing, or add somewhere new to send your data. Before sign-in it can start one project nobody owns until you claim it. Every call is logged on the project's AI agents page, and an admin can switch agents off.
Vinktar works on every plan, Free included. Data requests count against a monthly allowance; setting a project up never does, and nothing is charged per call.
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.