Levo MCP Server
The Levo MCP server lets an AI assistant work with your Levo data. It uses the Model Context Protocol (MCP), so any client that supports remote MCP servers can connect: Claude, ChatGPT, Cursor, VS Code, OpenAI Codex, Gemini CLI, Grok and others.
Once connected, you can ask the assistant things like:
- "Which applications in production have unauthenticated endpoints that return PII?"
- "Summarize the critical vulnerabilities found in last night's test run and suggest fixes."
- "Explain why this DAST scan found nothing."
- "Mark vulnerability 1234 as a false positive and add a comment saying why."
- "Run the BOLA tests against the payments application in staging."
The assistant reads and changes data as you: it can see and do only what your Levo account can.
Prerequisites
- A Levo account. You sign in with the same login you use for the Levo app (email and password, Google, Microsoft, GitHub or your company SSO). The MCP server does not create accounts. If you do not have one yet, ask your Levo administrator to invite you or contact support@levo.ai.
- An MCP client that supports remote (HTTP) servers. Every client on this page does.
Server URL
The MCP server URL for the Levo app at app.levo.ai is:
https://mcp.levo.ai/mcp
The URLs and snippets on this page are for that region. If you log in to the Levo app in a different region, read these docs on that region's docs site so they show its URL, or copy the URL from the Levo MCP Server page in the Levo app.
Add your organization ID to the URL, for example https://mcp.levo.ai/mcp?org=<organization id>.
See Multiple organizations.
Connect your AI assistant
You only need the URL. The first time the client connects, it opens a browser window where you sign in to Levo. See How sign-in works.
The Levo MCP Server page in the Levo app (Administration → Levo MCP Server) shows the same instructions with your region's URL and organization ID already filled in.
- Claude
- Cursor
- VS Code
- ChatGPT
- OpenAI Codex
- Gemini CLI
- Grok
- Other clients
claude.ai and Claude Desktop
- Open Settings → Connectors.
- Click Add custom connector.
- Enter a name (
Levo) and the URLhttps://mcp.levo.ai/mcp, then click Add. - Click Connect and sign in to Levo in the browser window that opens.
- In a chat, open the tools menu and make sure Levo is turned on.
On Team and Enterprise plans, an owner may need to add the connector for the organization first.
Claude Code
Install the Levo plugin. It adds the MCP server together with Levo's levo skill and the /levo-triage,
/levo-scan-status and /levo-run-scan commands:
claude plugin marketplace add levoai/levo-ai-plugins
claude plugin install levo@levo # India: levo-india@levo
Or add only the MCP server:
claude mcp add --transport http levo https://mcp.levo.ai/mcp
Then start claude, run /mcp, select levo and choose Authenticate to sign in.
Cursor
Add Levo to CursorThe link installs the MCP server only. For the full plugin with the skill and commands, install Levo from the Cursor Marketplace once it is listed.
Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"levo": {
"url": "https://mcp.levo.ai/mcp"
}
}
}
Open Settings → Tools & MCP. Next to levo, click Connect (or Needs login) and sign in to Levo.
VS Code (GitHub Copilot)
Add the server from a terminal:
code --add-mcp '{"name":"levo","type":"http","url":"https://mcp.levo.ai/mcp"}'
Or add it to .vscode/mcp.json in your workspace, or run MCP: Open User Configuration from the
command palette to add it for every workspace:
{
"servers": {
"levo": {
"type": "http",
"url": "https://mcp.levo.ai/mcp"
}
}
}
Click Start above the server entry, or run MCP: List Servers and start levo. VS Code asks you to allow the sign-in and opens a browser window for it. The tools then appear in Copilot Chat's agent mode.
ChatGPT
Once Levo is listed in the ChatGPT plugin directory, search for Levo, add it and sign in. You can also
add the Levo marketplace with Codex (see the OpenAI Codex tab) and install levo or levo-india from the
Plugins Directory in the ChatGPT desktop app.
Or add it as a custom connector. This needs a plan that allows developer mode, and on business plans an admin may have to allow custom connectors:
- Open Settings → Apps & Connectors → Advanced settings and turn on Developer mode.
- Back in Apps & Connectors, click Create.
- Enter a name (
Levo) and the MCP server URLhttps://mcp.levo.ai/mcp, choose OAuth authentication, and confirm that you trust the server. - Sign in to Levo in the window that opens.
- In a chat, turn on Levo from the tools menu (+ → More).
OpenAI Codex
Install the Levo plugin:
codex plugin marketplace add levoai/levo-ai-plugins
Then open the Plugins Directory, choose the Levo marketplace and install levo (India: levo-india).
Or add only the MCP server to ~/.codex/config.toml:
[mcp_servers.levo]
url = "https://mcp.levo.ai/mcp"
Then sign in:
codex mcp login levo
Gemini CLI
Install the Levo extension:
gemini extensions install https://github.com/levoai/levo-ai-plugins
This installs the US extension. For India, clone the repository and run
gemini extensions install ./plugins/levo-india.
Or add the server to ~/.gemini/settings.json (all projects) or .gemini/settings.json (one project):
{
"mcpServers": {
"levo": {
"httpUrl": "https://mcp.levo.ai/mcp"
}
}
}
Start gemini. If it does not ask you to sign in, run /mcp auth levo.
Grok
On grok.com, open the connectors settings, add a custom connector with the URL https://mcp.levo.ai/mcp, and
sign in to Levo when prompted.
In Grok Build, once Levo is in the xAI catalog, type /marketplace and install levo, or run
grok plugin install levo --trust.
Other clients
Any MCP client that supports the Streamable HTTP transport and MCP authorization (OAuth) can connect.
Give it the URL https://mcp.levo.ai/mcp and let it start the sign-in.
The server does not offer the older SSE transport. A client that speaks only stdio can connect through a bridge
such as mcp-remote (npx -y mcp-remote ).https://mcp.levo.ai/mcp
How sign-in works
The Levo MCP server uses standard MCP authorization, which is based on OAuth 2.1:
- Your client connects to the MCP server URL. The server answers that sign-in is required and tells the client
where Levo's sign-in service (
auth.levo.ai) is. - The client opens a browser window with the normal Levo login page. Sign in the way you always do: email and password, Google, Microsoft, GitHub or your company SSO.
- Levo hands the client an access token for your account. The client sends it with every request and renews it on its own, so you normally sign in once per client.
You never copy a password or token into the client. To disconnect, remove the server or connector in the client.
Multiple organizations
If your Levo account belongs to one organization, the server uses it.
If it belongs to several, the server cannot guess which one you mean, and it rejects requests with an error that lists your organizations and their IDs. Add the one you want to the URL:
https://mcp.levo.ai/mcp?org=<organization id>
The Levo MCP Server page in the Levo app shows the URL with your current organization's ID. You can also
find your organization ID in your user settings. To work with two
organizations, add the server twice under different names (for example levo-acme and levo-acme-eu), each
with its own ?org=.
Tools
The assistant decides which tools to call from your request. The tools fall into three groups.
Read tools
These only read data.
| Area | Tools |
|---|---|
| Applications and endpoints | ListApplications, GetApplicationsLite, GetApplicationById, ListEndpoints, GetApiEndpoints, GetApiEndpointsLite, GetApiEndpointsSlim, GetEndpoint, GetEndpointById, GetSpecVersions, GetEndpointSpecVersionFiles, GetAllEnvironments, GetDefaultWorkspace |
| Auth analysis | AuditAuthSchemes, AuditEndpointInventory, GetAllAuthCombos |
| Vulnerabilities | GetVulnerabilities, GetVulnerabilityDetails, GetVulnerabilityComments, GetTestCaseAttachment |
| Traffic | GetTracesForEndpoint, GetTracesByIds, GetFindingTraceIds |
| Test runs | GetTestRuns, GetTestRunDetails, GetTestSuiteRuns, GetTestCaseRuns, TestRunStatus, GetEndpointsTestRunCategories, CustomTestResults, GetCustomTestCode |
| DAST scans | ListWebAppScans, GetWebAppScanDetails, GetScanStats, GetScanFindings, GetScanLogs |
| Custom test authoring | GetAuthoringContext, ScaffoldTestBundle, ValidateTestBundle (these build and check a test without saving it) |
| Skills | ListSkills, GetSkill |
| Schema | introspect, search, validate |
Write tools
These change data in Levo.
| Tool | What it changes |
|---|---|
UpdateVulnerabilityStatus | Sets a vulnerability's status (for example Ignored as a false positive, or Closed) with an optional note. |
AddVulnerabilityComment | Adds or edits a comment on a vulnerability. |
CreateCustomTestPlan, UpdateCustomTestPlan | Saves a custom test as a test plan, or replaces its code. |
ApproveTestPlan | Approves a custom test plan so it can run. |
UpsertAuthCombos, AssignAuthComboToEndpoint | Creates or updates auth combos and attaches them to endpoints. |
MarkEndpointAuthOptional | Marks endpoints as optionally authenticated. |
RefreshEndpointAuthSchemes | Asks your Satellite to re-detect endpoints' auth schemes from stored traffic. |
execute | Runs a GraphQL operation the assistant writes itself. It can read or change anything your account is allowed to. |
Tools that launch scans
| Tool | What it does |
|---|---|
RunTestsFromCatalog | Starts a security test run against endpoints in your API catalog. |
RunTestPlan | Runs an approved custom test plan. |
RunTestsFromCatalog and RunTestPlan launch active security tests against the target URL and environment
you name. Run them only against systems you are allowed to test, and check the target before you approve the call.
Staying in control of writes
The Levo MCP server does not ask for confirmation itself: when a tool is called, it runs with your permissions. Approval happens in your client. Claude, ChatGPT, Cursor, VS Code, Codex and Gemini CLI all show each tool call and ask you to approve it unless you have chosen to allow it automatically.
- Keep approval on for write tools,
executeand the scan tools. Allow read tools automatically if you like. - The Levo plugins add a skill that tells the assistant to show you the exact change, or a scan's target and scope, and wait for your go-ahead before calling a write or scan tool.
- Read the arguments before approving, especially the environment, target URL and vulnerability IDs.
- Your Levo role still applies. A tool call fails if your account is not allowed to do the same thing in the Levo app.
Skills
Skills are Levo's packaged instructions for multi-step work, such as triaging a test run's findings or writing a
custom test. ListSkills returns the skills your organization is entitled to, and GetSkill loads one.
The assistant uses them when your request matches. Which skills you see depends on your Levo plan; contact
support@levo.ai to turn on more.
The Levo plugins also add /levo-triage, /levo-scan-status and /levo-run-scan commands in Claude Code,
Cursor and Gemini CLI.
Data handling and privacy
- Your permissions, your data. Every request runs as your Levo user, in your organization, with your role. The server cannot reach data your account cannot.
- Data goes to your AI provider. What a tool returns, such as endpoint details, vulnerabilities, or captured request and response samples, is sent to the AI client you connected, and from there to its model provider. Their terms apply to it. Captured traffic can contain sensitive values, so connect only clients your company allows for this data.
- What the Levo MCP server keeps. It does not keep the data tools return or your conversations. To serve requests, it holds a short-lived Levo access token and your organization and workspace IDs in memory only, keyed by a one-way hash of your credential, until the token expires (about an hour). Nothing is written to disk, and tokens are never logged.
- What the client keeps. Your MCP client stores the sign-in tokens Levo issued it, so it can reconnect. Remove the server or connector from the client to sign it out.
Read Levo's privacy policy for more.
Troubleshooting
| Error | Cause | Fix |
|---|---|---|
401 Unauthorized | You have not signed in yet, or your sign-in expired or was revoked. | Sign in again: Claude Code /mcp → levo → Authenticate; Codex codex mcp login levo; Gemini CLI /mcp auth levo; elsewhere disconnect and reconnect the server. |
400 that lists several organizations | Your account belongs to more than one organization and the URL does not say which. | Add ?org=<organization id> to the URL. See Multiple organizations. |
403 "does not belong to any Levo organization" | You signed in with an identity that has no Levo account, or has not accepted its invitation yet. | Sign in with the account you use for the Levo app, or ask your administrator to invite you. |
403 "is not one this account belongs to" | The ?org= value is wrong or you were removed from that organization. | Check the ID in your user settings. |
503 "already handling … concurrent streams" | The server is busy. | Retry after a moment. |
| Tools are listed but some calls fail with a permission error | Your Levo role does not allow that action. | Ask your administrator for the role, or do it in the Levo app with an account that has it. |
ListSkills returns nothing | Your organization is not entitled to skills. | Contact support@levo.ai. |
| The client never opens a sign-in window | The client does not support MCP authorization. | Update the client, or use a refresh token. |
Use a refresh token instead
For clients that cannot sign in through a browser, such as CI jobs, scripts or older clients, send your Levo refresh token in a header instead:
- In the Levo app, open Administration → Levo MCP Server and expand Use a refresh token instead. The snippets there contain your token and organization ID. You can also generate a CLI authorization key.
- Configure your client to send these headers to
https://mcp.levo.ai/mcp:
x-levo-auth-key: <your Levo refresh token>
x-levo-organization-id: <organization id>
For example, in Claude Code:
claude mcp add --transport http levo https://mcp.levo.ai/mcp \
--header "x-levo-auth-key: <your Levo refresh token>" \
--header "x-levo-organization-id: <organization id>"
x-levo-organization-id is needed only if you belong to more than one organization.
The token is long-lived and acts as you. Do not commit it to a repository, paste it into a chat, or share it in screenshots. If it leaks, contact support@levo.ai to revoke it.
Need help?
Contact support@levo.ai.