API keys are the fastest way to authenticate with Navis Ops. You create one in Settings, copy it once, and use it as a bearer token in every request. API keys work with any HTTP client, any AI assistant, and any language — no OAuth flow required. The token starts withDocumentation Index
Fetch the complete documentation index at: https://docs.navisops.com/llms.txt
Use this file to discover all available pages before exploring further.
nops_ so you can identify it easily in configuration files and logs.
Creating an API key
Create a new key
Click Create API key. Give the key a descriptive name — for example, “Claude Desktop” or “CI pipeline” — so you know what it is for when you need to revoke it later.
Pick a scope
Choose the level of access the key needs:
| Scope | Label in UI | What it grants |
|---|---|---|
mcp:read | Read | Read access to all workspace data |
mcp:write | Read + Write | Read access plus the ability to create, update, and delete data |
mcp:write implies mcp:read. There is no per-tool access control — a write-scoped key grants every write operation. If you want a key that can only read data, choose Read.Set an expiration (optional)
You can set an expiration date at creation time. API keys do not expire by default — they stay active until you revoke them. Set an expiration if you want the key to stop working automatically after a certain date.
Using an API key in requests
Pass the token in theAuthorization header as a bearer credential on every request:
Example: calling the MCP server
Example: AI client configuration
Most AI clients accept a static header for MCP server authentication. The exact configuration format varies by client — check your client’s documentation for its MCP config file syntax. The key fields are always:- Server URL:
https://<your-supabase-project>.supabase.co/functions/v1/mcp-server-v2 - Authorization header:
Bearer nops_your_token_here
- Claude Desktop (claude_desktop_config.json)
- Generic HTTP client
Managing API keys
Viewing active keys
All your active API keys appear in Settings → Connected Apps. Each row shows the key name, scope, creation date, expiration date (if set), and the last time the key was used.Revoking a key
To revoke a key, click Revoke next to it in Settings → Connected Apps. Revocation is immediate — the next request using that key returns a401 Unauthorized response.
Best practices
- One key per client. Create a separate key for each AI assistant, script, or integration. This makes it easy to revoke access for one client without disrupting others.
- Use read-only scope when possible. If your integration only needs to read data, create a
mcp:readkey. Reservemcp:writekeys for integrations that need to create or modify workspace data. - Set an expiration for temporary use. If you’re creating a key for a short-lived script or test, set an expiration date so the key automatically becomes inactive when you no longer need it.
- Store keys as environment variables. Never hard-code an API key in source code. Use environment variables or a secrets manager.
- Revoke keys you no longer use. Inactive keys still grant access. Revoke them when the integration is retired.