{"version":3,"summary":"Notra exposes an HTTP API, a hosted MCP server, and a CLI for tracking AI visibility, comparing competitors, analyzing AI traffic, and turning content gaps into articles in a saved brand voice.","credentials":{"notra_api_key":{"type":"api_key","label":"Notra API key","generateUrl":"https://app.usenotra.com","setup":"Open Developer, then API Keys, in the Notra dashboard and create a key scoped to the resources you need. Store it as NOTRA_API_KEY and send it as an Authorization bearer token."},"notra_oauth":{"type":"oauth2","label":"Notra OAuth 2.1","setup":"Read the protected resource metadata at https://mcp.usenotra.com/.well-known/oauth-protected-resource to find the authorization server, register a client at https://oauth.usenotra.com/oauth2/register, and run the authorization code flow with PKCE. Request openid and include offline_access when you need a refresh token. The user selects a workspace and an access level (Read only, Write only, or Full access) on the consent screen. Headless clients can use the device authorization grant instead, which is what notra auth login does. Send the access token as an Authorization bearer token."}},"surfaces":[{"slug":"notra-api","name":"Notra API","type":"http","docs":"https://docs.usenotra.com/api/getting-started","spec":"https://api.usenotra.com/openapi.json","url":"https://api.usenotra.com","basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"},"auth":{"status":"required","entries":[{"use":[{"id":"notra_api_key","mechanics":{"source":"http","in":"header","headerName":"Authorization","scheme":"Bearer"}}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"}},{"use":[{"id":"notra_oauth","mechanics":{"source":"well-known"}}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"}}]}},{"slug":"notra-mcp-server","name":"Notra MCP server","type":"mcp","docs":"https://docs.usenotra.com/devtools/mcp","url":"https://mcp.usenotra.com/mcp","transports":["streamable-http"],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"},"auth":{"status":"required","entries":[{"use":[{"id":"notra_oauth","mechanics":{"source":"well-known"}}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"}},{"use":[{"id":"notra_api_key","mechanics":{"source":"http","in":"header","headerName":"Authorization","scheme":"Bearer"}}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"}}]}},{"slug":"notra-cli","name":"Notra CLI","type":"cli","docs":"https://docs.usenotra.com/devtools/cli","command":"notra","packages":[{"registryType":"npm","identifier":"notra","runtimeHint":"npx"}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"},"auth":{"status":"required","entries":[{"use":[{"id":"notra_oauth","mechanics":{"source":"cli","command":"notra auth login"}}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"}},{"use":[{"id":"notra_api_key","mechanics":{"source":"cli","command":"notra init","env":["NOTRA_API_KEY"]}}],"basis":{"via":"declared","source":"https://www.usenotra.com/.well-known/integrations.json"}}]}}]}