# Getting Started > Connect an MCP client to the VisualOne MCP, authenticate, and run your first report. This page walks through connecting an MCP client to the VisualOne MCP, authenticating, and confirming everything works. ## Prerequisites - A Visual One Intelligence account with access to at least one client (tenant). - An MCP-compatible AI client (for example, Claude Code, the Claude desktop app, or any client that supports the Model Context Protocol). - The connection details for the `VisualOneMCP` server, provided by your VOI administrator. ## Connect the server Add `VisualOneMCP` to your MCP client’s server list using the details supplied by your administrator. Once configured, your client authenticates and the five VisualOne tools become available in the session. > **Tip:** In Claude Code you can confirm connection status at any time by running the `/mcp` command. A successful connection reports *Authentication successful. Connected to VisualOneMCP.* ## Verify your connection ### 1. Check API health Ask the assistant to run a health check (this calls `visualone_health_check`): ``` { "tool": "visualone_health_check", "arguments": {} } ``` A healthy response looks like: ``` # VisualOne Health Check service: arbiter version: 6.0.0 mongoConnection: OK ``` ### 2. Confirm your session Ask for your session details (this calls `visualone_get_session`): ``` { "status": "authenticated", "expiresAt": "2026-01-01T00:00:00.000Z", "clientId": 1234, "role": "standard_user" } ``` - **clientId** — the tenant every report runs against. Resolved automatically from your session; you never need to type it. - **role** — `standard_user` or `super_user`. Super users can query on behalf of other clients. - **expiresAt** — when your access token expires. If calls start failing with authentication errors, re-authenticate. ## Your first report You don’t need to know report names or IDs. Just ask a question in natural language, and the assistant follows the standard pattern: **discover** the right report with `visualone_discover_reports`, then **run** it with `visualone_get_reports` using the returned `proc_name`. ``` // Step 1 - discover { "tool": "visualone_discover_reports", "arguments": { "query": "enterprise storage summary" } } // Step 2 - run the proc_name returned above { "tool": "visualone_get_reports", "arguments": { "action": "run_get", "proc_name": "enterprise_summary_proc" } } ``` `client_id` and `period_id` are filled in automatically. See [Core Concepts](https://visualoneintelligence.com/docs/voi-mcp-core-concepts/) to understand contexts, periods, and drilldowns, or the [Tool Reference](https://visualoneintelligence.com/docs/voi-mcp-tool-reference/) for every parameter. --- Source: https://visualoneintelligence.com/docs/voi-mcp-getting-started/