Skip to main content
Notra runs a hosted MCP server at https://mcp.usenotra.com/mcp (streamable HTTP) so AI agents can work with your workspace. Connected agents can manage brand identities, generate and edit content, connect integrations and manage schedules, chats and skills. They can also use every GEO feature: projects, prompts, competitors, scans, visibility, content briefs, agent readiness and AI traffic. This page covers two things:
  • Notra’s MCP server. Give an AI client (Claude, Cursor, ChatGPT, Codex and others) access to Notra.
  • External MCP servers. Give Notra’s chat agent access to your own tools by connecting servers under Integrations > MCP Servers.

Authentication

The server accepts bearer credentials in the Authorization header, either as an OAuth access token or as a Notra API key.

Connect an AI client

With OAuth

Add the server URL without any headers, and the client detects the OAuth metadata and opens the sign-in flow.
In ChatGPT, add a custom connector with the URL https://mcp.usenotra.com/mcp and complete the sign-in when prompted.

With an API key

If your client supports add-mcp, install the server with a header override:
Or add the header to the client config by hand:

Local stdio server

The same server is published on npm as @usenotra/mcp for clients that only speak stdio. It needs Node.js 20 or newer and an API key in NOTRA_API_KEY:
The hosted server gets updates first and the npm package can lag behind it, so prefer the hosted URL when your client supports remote servers.

Available tools

Tool names match exactly what the server registers, although some clients prefix them with the server name. Posts
  • list_posts
  • get_post
  • update_post
  • delete_post
  • generate_post
  • get_post_generation_status
When update_post changes the title, slug or markdown of a blog post or changelog with a linked GitHub pull request, Notra saves the article and updates that PR using the same publishing logic as the dashboard, without creating a new PR. Status-only changes do not trigger a GitHub update. If the PR update fails, the tool returns an error stating that Notra saved the post. A rate-limited GitHub sync returns 429 with Retry-After, so wait before retrying the content update. A timeout returns 504 with an unknown sync outcome, and because the PR update may still finish, check the PR before retrying, as you should after any other unconfirmed sync error. If the PR is closed or merged, resolve it in the dashboard before Notra can sync it again. Brand identities
  • list_brand_identities
  • get_brand_identity
  • update_brand_identity
  • delete_brand_identity
  • generate_brand_identity
  • get_brand_identity_generation_status
Integrations
  • list_integrations
  • create_github_integration
  • delete_integration
Schedules
  • list_schedules
  • create_schedule
  • update_schedule
  • delete_schedule
Chats
  • list_chats
  • get_chat
  • get_chat_by_external_channel
  • create_chat
  • post_chat_message
Skills
  • list_skills
  • get_skill
  • create_skill
  • update_skill
  • delete_skill
GEO projects and settings
  • list_projects
  • get_project
  • create_project
  • update_project
  • delete_project
  • get_geo_settings
  • update_geo_settings
GEO prompts and sequences
  • list_geo_prompts
  • create_geo_prompt
  • update_geo_prompt
  • delete_geo_prompt
  • import_geo_prompts
  • list_geo_sequences
  • create_geo_sequence
  • update_geo_sequence
  • delete_geo_sequence
  • run_geo_sequence
GEO competitors
  • list_geo_competitors
  • upsert_geo_competitor
  • suggest_geo_competitors
  • delete_geo_competitor
  • import_geo_competitors
GEO scans and visibility
  • create_geo_scan
  • list_geo_scans
  • get_geo_scan
  • get_geo_visibility_overview
  • get_geo_visibility_timeseries
  • get_geo_prompt_results
  • get_geo_competitor_share
  • get_geo_language_share
  • get_geo_competitor_detail
GEO content gaps and briefs
  • list_geo_content_gaps
  • list_geo_content_briefs
  • plan_geo_content_brief
  • get_geo_content_brief
  • approve_geo_content_brief
Agent readiness
  • get_geo_agent_readiness
  • start_geo_agent_readiness_scan
AI traffic
  • get_geo_traffic_overview
  • get_geo_traffic_log
  • list_geo_traffic_journeys
  • get_geo_traffic_journey
  • list_geo_traffic_pages
  • get_geo_ingest_setup
  • issue_geo_ingest_token
  • rotate_geo_ingest_token
Feedback
  • submit_feedback sends a bug report, feature request, question or praise to the Notra team and needs no credentials. See Agent feedback.
create_geo_scan, run_geo_sequence and plan_geo_content_brief use billed AI credits and can take minutes, so the server instructs agents to confirm with you before starting them.

Connect external MCP servers to Notra

Notra’s chat agent can also use tools from MCP servers you run or subscribe to. Open Integrations > MCP Servers in the dashboard (or press C on that page) and add a server.
1

Describe the server

Give it a name, the server URL (for example mcp.example.com/mcp) and a short description of what tools or context Notra should use it for. The agent uses the description to decide when to use the server.
2

Choose authentication

Pick one of three options:
  • None for public servers without credentials.
  • API key to send one or more custom headers, such as Authorization: Bearer ....
  • OAuth to sign in with the server’s own OAuth flow, which Notra opens in a popup.
3

Test and save

Notra tests the connection before saving and reports whether it could reach the server. With OAuth, the button reads Connect & Authorize and Notra saves the server once authorization completes.
After saving, Notra indexes the server’s tools and shows the tool count on the server card, where you can refresh the tool index, enable or disable the server, reauthorize an expired OAuth grant or delete it. The Notra chat agent searches the indexed tools and activates the ones it needs for a conversation.

Composio

If you want to use the Notra MCP server through Composio, upvote the request at request.composio.dev/boards/tool-requests/posts/notra so the Composio team sees demand for a Notra integration.

Notes

  • Prefer OAuth for personal clients so tokens rotate and can be revoked per session.
  • Keep API keys in a server-side or local secret store, and do not commit MCP config files that contain live bearer tokens.
  • Revoke and replace a key immediately if it is exposed.
Last modified on October 8, 2026