- Spot MCP clients or agents that are erroring repeatedly.
- See which tools are actually in use and which aren’t.
- Investigate a specific tool call — inspect the exact arguments and error message.
- Answer questions like “who is calling our MCP server, and from where?”.
Where to find it
Open Organization Settings → Ask AI → MCP. The tab is visible to users with an AI admin role:- Org-level AI admins see every MCP tool call in the organization, including calls made outside any project.
- Project-scoped AI admins see only tool calls made against their projects. Calls made without a project (for example, admin tools) are visible to org-level admins only.
Overview panel
The overview panel at the top of the page summarizes MCP usage across whatever the page is filtered to:- Total calls, success rate, and error count as headline tiles.
- Top tools — the six most-called tools with proportional usage bars.
- Active agents — per-agent call counts, plus a bucket for tool calls made without an agent (for example, direct MCP client sessions).
- Recent errors — the five most recent failing tool calls. Click one to open the same detail drawer as a row in the activity feed.
Activity feed
Below the overview is a paginated feed of every recorded MCP tool call. The feed loads more rows as you scroll and each row shows the tool name, status, user, agent, project, MCP client, timestamp, and duration.Session grouping
When sorted by time, tool calls are grouped into sessions — one client connection to the MCP server. Each group has a header row showing the short session id, the MCP client name and version, the number of calls and errors in the session, and the time of the latest call. Click the header to collapse or expand the group. A session is split into segments whenever there’s a 1-hour gap with no activity, so a client that reconnects the next day appears as a new group at the top of the feed instead of hoisting old calls out of place. Calls without a session id are collected under a No session ID header. This happens when the MCP client doesn’t participate in session tracking (see How sessions are tracked below). A single sessionless call renders as a plain row. Sorting the feed by duration falls back to a flat, ungrouped view.How sessions are tracked
Session ids are minted server-side using the Streamable HTTP transport’s standardMcp-Session-Id mechanism:
- On
initialize, the Lightdash MCP server returns anMcp-Session-Idresponse header. - Spec-compliant clients echo that header on every subsequent request, and Lightdash records the id on each resulting tool call.
- Clients that don’t echo the header still work — their tool calls are recorded but appear under No session ID instead of grouped.
Filtering and sorting
Filters live above the table and are persisted in the URL, so you can share a filtered view by copying the link. You can filter by:- Project
- Agent
- Tool
- MCP client
- Status — success or error
- Date range
Per-call detail drawer
Click any row to open a drawer with the full details of that tool call:- Tool arguments — the full JSON payload the MCP client sent.
- Error message — the exception or protocol error returned to the client, if the call failed.
- Duration — how long the tool took to execute.
- Client identity — the MCP client’s name and version as reported in the MCP handshake, the raw user agent, the auth method used, and the MCP protocol version.
- Session — the full session id this call belongs to, when the client participated in session tracking.
Admin API
Both endpoints back the settings page and are available on the Lightdash API for scripting and integrations. They require an AI admin role and follow the same visibility rules as the UI: org-level admins see all activity, project-scoped admins see only their projects.List MCP activity
Example:
sessionId and a sessionGroup describing the session segment the call belongs to (segment key, total calls, and errors). When sorted by createdAt, results are ordered by session segment so calls from the same session stay contiguous; sorting by durationMs returns flat chronological order.
MCP activity stats
status — the response already breaks results down by status and recentErrors is always error-only, so status is deliberately not accepted.
Example:
Related
- Connecting MCP servers — attach external MCP servers to your agents.
- Lightdash MCP — the MCP server whose activity is recorded here.