Understand.io runs a Model Context Protocol (MCP) server. MCP lets AI assistants such as Claude, ChatGPT, Cursor, VS Code and Windsurf read your errors, stack traces and logs directly.
Once connected, you can ask questions like "Show me the latest production errors" or "Why did this exception happen?" and the assistant looks up the answer in your Understand.io projects.
AI assistants are available on paid plans. They are not included in the free trial. If your project is on the trial, the project owner can upgrade from the subscription page.
You can find the server URL in your project under Settings → AI Assistants (MCP), with a copy button:
https://app.understand.io/mcp
Run this in your terminal:
claude mcp add --transport http understand https://app.understand.io/mcp
Then run /mcp in Claude Code, choose understand → Authenticate, and approve access in your browser.
Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": {
"understand": {
"url": "https://app.understand.io/mcp"
}
}
}
Open Cursor Settings → Tools & MCP, click Connect next to understand and approve access in your browser.
Add this to .vscode/mcp.json:
{
"servers": {
"understand": {
"type": "http",
"url": "https://app.understand.io/mcp"
}
}
}
Start the server from the file or the MCP view. VS Code asks you to sign in and opens the approval page. The file contains no secrets, so it is safe to commit.
Add this to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"understand": {
"serverUrl": "https://app.understand.io/mcp"
}
}
}
Click Refresh under Cascade → Manage MCPs and sign in when Windsurf asks.
Any MCP client that supports the Streamable HTTP transport with OAuth can connect:
| Setting | Value |
|---|---|
| URL | https://app.understand.io/mcp |
| Transport | Streamable HTTP (POST) |
| Authentication | OAuth 2.1 with PKCE and dynamic client registration (discovered automatically) |
To test the connection, run the MCP Inspector, choose Streamable HTTP, enter the URL and use Open Auth Settings → Quick OAuth Flow:
npx @modelcontextprotocol/inspector
The first time the assistant connects, it opens an Understand.io page in your browser. Log in if needed, check which assistant is asking, and click Allow access.
The assistant then acts as you: it sees the same projects you can see, and nothing else.
All tools are read-only. Times are in UTC, and every error and event includes a url back to the Understand.io dashboard. project_id is optional when you only have one project.
| Tool | Description |
|---|---|
get_projects |
Lists the projects you can read. Each has an id to pass as project_id to the other tools. |
get_project |
One project's details: platform, team size, connected issue tracker, open/fixed/ignored error counts and environments active in the last 30 days. |
get_recent_errors |
The most recently seen error groups, newest first, with occurrences, affected users, severity and a 14-day daily trend. Filter by environment and status (defaults to open). |
search_errors |
Finds error groups by keyword, environment, tag, time range (since, or from/to) or event field filters. |
search_logs |
Searches individual log events by keyword, request_id, correlation_id, user_id, session_id, severity, environment and time range. Use order: "oldest" with a request_id to read a request in order. |
summarize_error |
Incident summary for one error group: priority, impact, trend, the first application stack frame, root-cause hints, next steps and similar errors. |
get_error_details |
Everything about one error group: full stack trace with source code, request data (secrets masked), user, environment, breadcrumbs, tags, recent occurrences and team comments. |
Filters use the format field:operator:value, where the operator is ==, !=, >= or <=. For example:
["user_id:==:42", "method:==:post"]
A typical investigation goes like this:
get_projects to find the project id.get_recent_errors or search_errors to find an error_id.summarize_error for impact, trend and likely cause.get_error_details for the full stack trace and request data.search_logs with the request_id to see everything that happened during that request.| Resource | Description |
|---|---|
docs://errors |
Reference for assistants: projects, error groups and statuses, event fields, search syntax and the investigation workflow. |
project://{project_id}/settings |
Project configuration: name, platform, team members and roles, connected issue tracker and auto-ticketing. |
environment://{project_id}/{environment} |
Health of one environment over the last 7 days: event volume, error volume, last event time and the busiest error groups. |
errors://{project_id}/metadata |
Overview of a project's errors: totals by status, environments, busiest groups this week and the fields accepted by the search tools. |
Clients that support MCP prompts offer these as ready-made commands:
| Prompt | Description |
|---|---|
analyze-exception |
Root-cause analysis of one error group (error_id). Loads the error, stack trace, request data and impact, and asks for the root cause, a fix, affected components and a recommendation. |
triage-recent-errors |
Loads the most recent open errors of a project (optionally one environment) and asks for a prioritised list with likely causes and the first thing to fix. |
Go to Settings → AI Assistants (MCP) to see every assistant connected to your account and when it was connected. Click Disconnect to remove an assistant's access immediately.