# How to integrate Notra MCP with Atomic Agent

```json
{
  "title": "How to integrate Notra MCP with Atomic Agent",
  "toolkit": "Notra",
  "toolkit_slug": "notra",
  "framework": "Atomic Agent",
  "framework_slug": "atomic-agent",
  "url": "https://composio.dev/toolkits/notra/framework/atomic-agent",
  "markdown_url": "https://composio.dev/toolkits/notra/framework/atomic-agent.md",
  "updated_at": "2026-10-19T05:33:57.378Z"
}
```

## Introduction

Atomic Agent is an open-source AI agent that runs on your machine and supports local models through llama.cpp. Connect it to 1,500+ apps through Composio, including Notra.
This guide uses Atomic Agent's built-in Composio integration. You need Atomic Agent v0.5.6 or later, your own Composio API key, and a Notra account. See the [Atomic Agent documentation](https://atomicagent.io/docs/?cta_placement=atomic-agent-docs) for installation instructions.

## Also integrate Notra with

- [ChatGPT](https://composio.dev/toolkits/notra/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/notra/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/notra/framework/hermes-agent)

## TL;DR

### How Atomic Agent connects to Notra
Atomic Agent connects to Composio's Tool Router over Streamable HTTP MCP. It discovers the tools needed for your request, and Composio handles account authentication.
Execution and account-connection tools follow Atomic Agent's configured approval policy. Review any approval prompt before allowing an action on your connected account.

## Connect Notra to Atomic Agent

### Connect Notra to Atomic Agent
- Sign up or sign in to the [Composio dashboard](https://dashboard.composio.dev/?cta_placement=atomic-agent-api-key). Copy your API key.
- In Atomic Agent, open the Integrations tab and select Composio. Select API key, press e, paste the key, and press Enter. The tools become available immediately, without a restart.
- Ask Atomic Agent to do something in Notra. It searches Composio for the right tool.
- On first use, open the sign-in link returned in the chat. Connect your Notra account, then return to Atomic Agent to continue.
### Headless setup
Add the following line to ~/.atomic-agent/.env, replacing YOUR_COMPOSIO_API_KEY with your key. Start Atomic Agent after saving the file.

```bash
COMPOSIO_API_KEY=YOUR_COMPOSIO_API_KEY
```

## What is the Notra MCP server, and what's possible with it?

The Notra MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Notra account. It provides structured and secure access to Notra content, AI agent sessions, feedback, brand identities, GitHub automations, and generative engine optimization data, so your agent can create and manage posts, run AI chats and agent sessions, set up content workflows, track GEO performance, and review feedback on your behalf.
- AI content creation and publishing: Have your agent generate posts with Notra's AI, create drafts or published posts, and manage existing content.
- AI chats and agent sessions: Let the agent start Notra chats, maintain durable AI agent sessions, retrieve conversation history, and find chats linked to Discord or Slack channels.
- GitHub content workflows: Direct your agent to connect GitHub repositories, create recurring schedules, configure event triggers for releases or pushes, and manage automated content generation and publishing.
- GEO project tracking: Instruct your agent to create GEO projects, prompts, and sequences, queue scans, review agent readiness, and check competitor, language, and visibility data.
- Brand and feedback management: Have your agent generate or retrieve brand identities, review feedback entries, and manage the content workflows connected to your Notra projects.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `NOTRA_APPROVE_GEO_CONTENT_BRIEF` | Approve GEO Content Brief | Irreversibly approve a draft or failed brief and queue the paid Notra writer. This claims the brief and books writer work. |
| `NOTRA_CANCEL_POST_SCHEDULE` | Cancel Post Schedule | Destructively cancel every post destination that has not started and clear failed destinations. A destination already publishing cannot be interrupted; it finishes and is not retried, and in_progress reports this case. |
| `NOTRA_CREATE_AGENT_SESSION` | Create Agent Session | Starts a durable paid AI agent session with an initial user message and returns its session ID. Read subsequent output from the session event stream. This can consume credits and produce unbounded streamed model output; do not retry blindly after an ambiguous failure. |
| `NOTRA_CREATE_CHAT` | Create Chat | Create a paid Notra chat, persist the first message, and wait for the full assistant stream. The response is newline-delimited stream text rather than parsed message parts and may run for an unbounded model/tool duration. Limited with chat messages to 30 requests per minute per organization; retrying creates another chat and may repeat tool side effects. |
| `NOTRA_CREATE_EVENT_TRIGGER` | Create Event Trigger | Creates a persistent GitHub event automation that generates the selected content type for matching releases or pushes and can publish the result automatically. This is a paid operation. |
| `NOTRA_CREATE_GEO_PROJECT` | Create GEO Project | Create a persistent GEO project linked to a brand identity. Requires an active paid plan or positive AI credit balance and a GEO plan. |
| `NOTRA_CREATE_GEO_PROMPT` | Create GEO Prompt | Persist a custom prompt for future GEO scans. Requires paid access and an active GEO plan. |
| `NOTRA_CREATE_GEO_SCAN` | Create GEO Scan | Irreversibly queue a paid GEO scan that records checks against configured answer engines. The scan record is created before hand-off; poll the returned status URL. Requires sufficient plan or AI credits, rejects concurrent scans with 409, and is limited to 4 requests per hour per organization. |
| `NOTRA_CREATE_GEO_SEQUENCE` | Create GEO Sequence | Persist a one-to-five-turn GEO prompt sequence for tracked runs. Requires paid GEO access. |
| `NOTRA_CREATE_GITHUB_INTEGRATION` | Create GitHub Integration | Connect a GitHub repository to Notra, enabling changelog generation and creating a webhook secret. This paid operation stores a supplied personal access token for private repositories; never pass a token unless required. Limited to 20 requests per minute per API key. |
| `NOTRA_CREATE_POST` | Create Post | Create a draft or published Notra post directly from supplied content without invoking AI generation. |
| `NOTRA_CREATE_SCHEDULE` | Create Schedule | Creates a recurring schedule that generates one content type from the selected GitHub integrations. Times are in UTC. A schedule with the same source, targets, output, and lookback settings as an existing one is rejected with 409. This paid operation creates a persistent recurring automation that may generate and auto-publish content on future runs; review enabled and auto_publish before calling. |
| `NOTRA_CREATE_SKILL` | Create Skill | Creates a custom skill. Names must be unique within the organization. This paid operation creates a persistent agent skill. |
| `NOTRA_CREATE_WEBHOOK` | Create Webhook | Create a paid outbound webhook subscription that causes persistent external deliveries. The signing secret is returned only once and must be stored securely. |
| `NOTRA_DELETE_BRAND_IDENTITY` | Delete Brand Identity | Permanently delete a non-default brand identity and disable every schedule or event trigger that references it. The default identity cannot be deleted. |
| `NOTRA_DELETE_EVENT_TRIGGER` | Delete Event Trigger | Delete an event trigger. Permanently delete an event trigger and stop future matching events from running it. |
| `NOTRA_DELETE_GEO_COMPETITOR` | Delete GEO Competitor | Permanently stop tracking a competitor and return the remaining competitor list. |
| `NOTRA_DELETE_GEO_PROJECT` | Delete GEO Project | Permanently delete a GEO project and cascade-delete its settings, prompts, sequences, competitors, scans, checks, and reports, while cancelling pending scans. Feedback is detached, not deleted. The last project or a project with hosted Sites cannot be deleted. |
| `NOTRA_DELETE_GEO_PROMPT` | Delete GEO Prompt | Permanently stop tracking a GEO prompt. This destructive change removes it from future scans and requires an active GEO plan. |
| `NOTRA_DELETE_GEO_SEQUENCE` | Delete GEO Sequence | Permanently delete a tracked GEO prompt sequence so it can no longer be run. |
| `NOTRA_DELETE_INTEGRATION` | Delete Integration | Permanently delete a Notra GitHub or Linear integration and disable every schedule or event trigger that targets it. |
| `NOTRA_DELETE_POST` | Delete Post | Permanently delete one Notra post by ID. Use only when the post is no longer needed; this operation cannot be undone. |
| `NOTRA_DELETE_SCHEDULE` | Delete Schedule | Deletes the schedule and stops future runs. Posts generated by earlier runs are kept. Permanently delete a schedule and stop future runs; posts from previous runs remain. |
| `NOTRA_DELETE_SKILL` | Delete Skill | Deletes a custom skill. System skills cannot be deleted. Permanently delete an agent skill. |
| `NOTRA_DELETE_WEBHOOK` | Delete Webhook | Permanently remove a Notra webhook subscription and cancel all deliveries that have not yet been sent. |
| `NOTRA_GENERATE_BRAND_IDENTITY` | Generate Brand Identity | Create a brand identity immediately and queue a paid, irreversible website-analysis job that fills its company, tone, and audience fields. Poll NOTRA_GET_BRAND_IDENTITY_GENERATION; limited to 5 requests per minute per API key. |
| `NOTRA_GENERATE_POST` | Generate Post | Queue a paid, irreversible AI post-generation job. The call consumes plan capacity or credits even if later generation fails. Poll NOTRA_GET_POST_GENERATION until terminal; limited to 10 requests per minute per API key. |
| `NOTRA_GET_BRAND_IDENTITY` | Get Brand Identity | Get one Notra brand identity by ID. A missing identity is represented by a successful response with brand_identity set to null. |
| `NOTRA_GET_BRAND_IDENTITY_GENERATION` | Get Brand Identity Generation | Get a brand identity analysis job. Poll until status is completed or failed, then fetch job.brand_identity_id with NOTRA_GET_BRAND_IDENTITY. |
| `NOTRA_GET_CHAT` | Get Chat | Get one Notra chat and its complete message history by chat ID. |
| `NOTRA_GET_CHAT_BY_EXTERNAL_CHANNEL` | Get Chat By External Channel | Find the Notra chat linked to a Discord or Slack channel ID. |
| `NOTRA_GET_EVENT_TRIGGER` | Get Event Trigger | Returns one GitHub event trigger with its event filters, monitored repositories, generated content type, and publishing settings. |
| `NOTRA_GET_FEEDBACK` | Get Feedback | Returns one feedback entry with its classification, triage status, submission context, and timestamps. |
| `NOTRA_GET_GEO_AGENT_READINESS` | Get GEO Agent Readiness | Get the latest stored agent-readiness report, any newer run state, score history, and comparison for a GEO project's website without starting a scan. |
| `NOTRA_GET_GEO_COMPETITOR_SHARE` | Get GEO Competitor Share | Read paid-plan competitor share-of-voice metrics without starting a scan. |
| `NOTRA_GET_GEO_COMPETITOR_VISIBILITY` | Get GEO Competitor Visibility | Read one competitor's paid-plan mention history without starting a scan. |
| `NOTRA_GET_GEO_CONTENT_BRIEF` | Get GEO Content Brief | Read one stored paid-plan GEO content brief without approving or starting writer work. |
| `NOTRA_GET_GEO_INGEST_SETUP` | Get GEO Ingest Setup | Read paid-plan traffic installation snippets and endpoints. This does not issue or rotate credentials, but deploying the returned setup changes external traffic collection. |
| `NOTRA_GET_GEO_LANGUAGE_SHARE` | Get GEO Language Share | Read paid-plan GEO visibility by language without starting a scan. |
| `NOTRA_GET_GEO_PROJECT` | Get GEO Project | Get one GEO project. All GEO endpoints require an active GEO plan. |
| `NOTRA_GET_GEO_PROMPT_HISTORY` | Get GEO Prompt History | Read stored paid-plan checks for a tracked prompt without starting a scan. |
| `NOTRA_GET_GEO_PROMPT_RESULT_DETAIL` | Get GEO Prompt Result Detail | Read one stored paid-plan prompt result without starting a scan. |
| `NOTRA_GET_GEO_PROMPT_RESULTS` | Get GEO Prompt Results | Read stored paid-plan prompt answers and grounding data without starting or billing a scan. |
| `NOTRA_GET_GEO_SCAN` | Get GEO Scan | Get one GEO scan's status, progress and mentions by engine, including safe failure metadata. Legacy scans may have null planned totals. Requires an active GEO plan. |
| `NOTRA_GET_GEO_SENTIMENT` | Get GEO Sentiment | Read current and previous paid-plan GEO sentiment metrics without starting billed analysis. |
| `NOTRA_GET_GEO_SENTIMENT_ANALYSIS` | Get GEO Sentiment Analysis | Read cached paid-plan thematic sentiment analysis. This never starts or bills a model run. |
| `NOTRA_GET_GEO_SETTINGS` | Get GEO Settings | Get the complete GEO configuration and current scan state for a project. Requires an active GEO plan. |
| `NOTRA_GET_GEO_TRAFFIC_JOURNEY` | Get GEO Traffic Journey | Read the paid-plan events in one AI traffic journey without changing tracking setup. |
| `NOTRA_GET_GEO_TRAFFIC_LOG` | Get GEO Traffic Log | Read a bounded set of recent paid-plan AI traffic events without changing tracking setup. |
| `NOTRA_GET_GEO_TRAFFIC_OVERVIEW` | Get GEO Traffic Overview | Get AI crawler, citation, referral, and conversion traffic totals, source breakdowns, and daily points for a GEO project. |
| `NOTRA_GET_GEO_VISIBILITY_OVERVIEW` | Get GEO Visibility Overview | Get mention rates, checks, citations, visibility, and average positions by answer engine for a GEO project and date window. |
| `NOTRA_GET_GEO_VISIBILITY_TIMESERIES` | Get GEO Visibility Timeseries | Read paid-plan daily GEO visibility metrics. This does not start a scan or bill an analysis job. |
| `NOTRA_GET_POST` | Get Post | Get one Notra post by ID, including its rendered content, markdown source, metadata, and publication status. A missing post is returned as post=null. |
| `NOTRA_GET_POST_GENERATION` | Get Post Generation | Get a post generation job and event log. Poll until status is completed, failed, or skipped; when completed, fetch job.post_id with NOTRA_GET_POST. |
| `NOTRA_GET_POST_SCHEDULE` | Get Post Schedule | Get a post's current publishing schedule and the state of every destination, or null when no schedule exists. |
| `NOTRA_GET_PUBLIC_API_STATUS` | Get Public API Status | Check whether Notra's public API is reachable and discover its authentication metadata without a connected credential. |
| `NOTRA_GET_SKILL` | Get Skill | Returns a skill by name, including its full instructions and whether it is built into Notra. |
| `NOTRA_GET_WEBHOOK_DELIVERY` | Get Webhook Delivery | Get one Notra webhook delivery, including its serialized payload and complete attempt history. |
| `NOTRA_GET_WORKSPACE_CONTEXT` | Get Workspace Context | Return the workspace and authentication context bound to the connected Notra credential, optionally including pending workspace invitations. |
| `NOTRA_IMPORT_GEO_COMPETITORS` | Import GEO Competitors | Bulk create or update a project's persistent competitor list from up to 2,000 rows or CSV. Existing names are updated rather than duplicated; send the whole list in one request. Paid GEO operation limited to 10 requests per 10 minutes per organization. |
| `NOTRA_IMPORT_GEO_PROMPTS` | Import GEO Prompts | Bulk-persist up to 500 tracked prompts from rows or CSV. Existing prompts are skipped rather than duplicated. Requires paid GEO access and is limited to 10 requests per 10 minutes per organization. |
| `NOTRA_ISSUE_GEO_INGEST_TOKEN` | Issue Geo Ingest Token | Returns the current tracking token together with the install snippets. Pass `projectId` for a project-specific token; without it, the legacy token only accepts the organization's oldest project's hosts. Issuing does not invalidate previously issued tokens; use rotation for that. Issue a sensitive GEO ingest bearer token. Store the returned token securely and never log or expose it. |
| `NOTRA_LIST_AGENT_SESSIONS` | List Agent Sessions | Returns recent agent sessions and their linked chat IDs, origin surfaces, statuses, and timestamps. Results can contain sensitive conversation metadata. |
| `NOTRA_LIST_BRAND_IDENTITIES` | List Brand Identities | List the workspace's brand identities, with the default first, for selecting brand context in content and GEO workflows. |
| `NOTRA_LIST_CHATS` | List Chats | List the workspace's Notra chat sessions without loading message histories. |
| `NOTRA_LIST_EVENT_TRIGGERS` | List Event Triggers | Returns the organization's GitHub event triggers, optionally filtered to triggers monitoring any of the supplied repository IDs. |
| `NOTRA_LIST_FEEDBACK` | List Feedback | List workspace feedback with optional triage-status, kind, and project filters. |
| `NOTRA_LIST_GEO_CHANGES` | List GEO Changes | Compare the two latest stored paid-plan GEO scans without starting a new scan. |
| `NOTRA_LIST_GEO_COMPETITORS` | List GEO Competitors | List competitors tracked for a GEO project. Requires an active GEO plan. |
| `NOTRA_LIST_GEO_CONTENT_BRIEFS` | List GEO Content Briefs | List stored paid-plan GEO briefs. This read does not plan, approve, or bill work. |
| `NOTRA_LIST_GEO_CONTENT_GAPS` | List GEO Content Gaps | Read paid-plan content opportunities and linked briefs. This does not plan, approve, or bill content work. |
| `NOTRA_LIST_GEO_PROJECTS` | List GEO Projects | List the connected workspace's paid GEO projects and their brand associations. |
| `NOTRA_LIST_GEO_PROMPT_RESULT_SUMMARIES` | List GEO Prompt Result Summaries | Return one bounded page of stored paid-plan prompt result summaries; no scan is started. |
| `NOTRA_LIST_GEO_PROMPTS` | List GEO Prompts | List custom and automatically derived prompts tracked for a GEO project. Requires an active GEO plan. |
| `NOTRA_LIST_GEO_SCANS` | List GEO Scans | List paginated GEO scans with planned, completed, mentioned, and failed check totals by engine plus safe failure metadata. Requires an active GEO plan. |
| `NOTRA_LIST_GEO_SENTIMENT_EVIDENCE` | List GEO Sentiment Evidence | Return one bounded page of stored paid-plan sentiment evidence without starting analysis. |
| `NOTRA_LIST_GEO_SEQUENCES` | List GEO Sequences | List tracked multi-turn GEO prompt sequences. Requires an active GEO plan. |
| `NOTRA_LIST_GEO_SHELF_SOURCES` | List GEO Shelf Sources | Return one bounded page of paid-plan cited and tracked GEO sources without starting a scan. |
| `NOTRA_LIST_GEO_TRAFFIC_JOURNEYS` | List GEO Traffic Journeys | List a bounded set of paid-plan AI traffic journeys without changing tracking setup. |
| `NOTRA_LIST_GEO_TRAFFIC_PAGES` | List GEO Traffic Pages | List a bounded paid-plan ranking of pages visited by AI traffic without changing tracking setup. |
| `NOTRA_LIST_INTEGRATIONS` | List Integrations | List enabled GitHub and Linear integrations and their IDs for use as Notra content-generation sources. The Slack list is always empty. |
| `NOTRA_LIST_POST_AUTHORS` | List Post Authors | List Notra post authors and their IDs for assigning authors to blog posts and changelogs. |
| `NOTRA_LIST_POSTS` | List Posts | List the connected workspace's posts, with filters for publication status, content type, and brand identity. Notra returns published posts only unless statuses includes both draft and published. |
| `NOTRA_LIST_SCHEDULES` | List Schedules | Returns the organization's cron schedules, newest first. repositoryMap maps each targeted GitHub integration ID to an owner/repo label. |
| `NOTRA_LIST_SKILLS` | List Skills | Returns the organization's skills sorted by name, including built-in system skills (isSystem: true). Skill content is omitted; use GET /v1/skills/{name} to read it. |
| `NOTRA_LIST_WEBHOOK_DELIVERIES` | List Webhook Deliveries | List Notra webhook delivery history at a specific offset, optionally filtered by delivery status. Increase offset to continue when has_more is true. |
| `NOTRA_LIST_WEBHOOKS` | List Webhooks | List Notra outbound webhook subscriptions without exposing their signing secrets. |
| `NOTRA_PLAN_GEO_CONTENT_BRIEF` | Plan GEO Content Brief | Plan and save a GEO content brief. This paid operation books AI credits; autoApprove also starts the billed writer. A 409 after four minutes may still finish, so do not retry; list briefs instead. |
| `NOTRA_POST_CHAT_MESSAGE` | Post Chat Message | Persist a message or tool-approval decisions in an existing paid Notra chat and wait for the full assistant stream. Earlier history is included automatically. The response is newline-delimited stream text and may run for an unbounded model/tool duration. Tool approvals can trigger external mutations; retrying can duplicate them. Limited with chat creation to 30 requests per minute per organization. |
| `NOTRA_RETRY_WEBHOOK_DELIVERY` | Retry Webhook Delivery | Queue a paid redelivery of a failed webhook while retaining its prior attempt history. This sends the payload to the external endpoint again and can duplicate downstream effects. |
| `NOTRA_ROTATE_GEO_INGEST_TOKEN` | Rotate Geo Ingest Token | Invalidates every tracking token previously issued for this organization and returns a fresh one. Deployments still sending the old token stop being accepted immediately. Irreversibly rotate the sensitive GEO ingest bearer token, immediately invalidating the previous token. Store the replacement securely and never log or expose it. |
| `NOTRA_RUN_GEO_SEQUENCE` | Run GEO Sequence | Irreversibly execute every turn of a tracked sequence against every available answer engine and record checks, consuming paid Notra model capacity. The synchronous call may take minutes and is limited to 10 runs per 10 minutes per organization. A 409 after four minutes means work continues; do not retry and instead read project GEO checks. |
| `NOTRA_SCHEDULE_POST` | Schedule Post | Schedule a paid future publication that marks the saved post published in Notra and can create and merge a GitHub pull request or post to X or LinkedIn. Replaces any schedule that has not started; later post edits are included. Publishing occurs within about one minute and transient failures retry automatically. |
| `NOTRA_SEND_AGENT_SESSION_MESSAGE` | Send Agent Session Message | Sends the next turn of an agent session. The server binds the session's stored continuation token, so the client-provided one is ignored. Answer input.requested events (tool approvals, questions) from the event stream via inputResponses. Send a paid message to an AI agent session. This can consume credits and produce unbounded streamed model output; do not retry blindly after an ambiguous failure. |
| `NOTRA_START_GEO_AGENT_READINESS_SCAN` | Start GEO Agent Readiness Scan | Queue a paid readiness scan of the project's linked website. This starts external scanning work; an identical in-flight scan may be reused. |
| `NOTRA_STREAM_AGENT_SESSION_EVENTS` | Stream Agent Session Events | Fetch and parse the durable NDJSON event response for an agent session after Notra closes the response, including input.requested events for tool approvals. This call does not deliver events incrementally and returned events can contain sensitive conversation content. |
| `NOTRA_SUBMIT_FEEDBACK` | Submit Feedback | Record feedback for the organization that owns the credential. Requires an API key with the feedback.write scope. Agents and MCP servers should post to the organization's feedback URL instead. Submit persistent workspace feedback. This paid write has no delete endpoint. |
| `NOTRA_SUBMIT_ORGANIZATION_FEEDBACK` | Submit Organization Feedback | Record feedback from an AI agent or integration by posting to the organization's feedback URL, as shown on the Feedback page in the dashboard. No credentials are required. Limited per source IP and per organization. Submit persistent feedback without authentication. This paid write has no delete endpoint and is rate-limited by source IP and organization. |
| `NOTRA_SUGGEST_GEO_COMPETITORS` | Suggest GEO Competitors | Use Notra's paid discovery operation to suggest competitors for a domain. Results are cached per organization and domain; requests are limited to 10 per 10 minutes per organization. |
| `NOTRA_UPDATE_BRAND_IDENTITY` | Update Brand Identity | Update selected fields of a Notra brand identity. This paid mutation can also change the organization's default identity by setting is_default to true. |
| `NOTRA_UPDATE_EVENT_TRIGGER` | Update Event Trigger | Replaces an existing GitHub event trigger's filters, monitored repositories, generated content type, and publishing settings. This paid operation changes future automation behavior. |
| `NOTRA_UPDATE_FEEDBACK` | Update Feedback | Changes a feedback entry's triage status and returns the updated entry. This is a paid write operation. |
| `NOTRA_UPDATE_GEO_PROJECT` | Update GEO Project | Rename a GEO project or relink its brand identity. This changes persistent project configuration and requires paid access and a GEO plan. |
| `NOTRA_UPDATE_GEO_PROMPT` | Update GEO Prompt | Enable or disable a tracked prompt, or replace labels on a custom prompt. This changes future scan coverage and requires paid GEO access. |
| `NOTRA_UPDATE_GEO_SEQUENCE` | Update GEO Sequence | Change a tracked sequence's name, turns, or enabled state. This affects future paid GEO runs. |
| `NOTRA_UPDATE_GEO_SETTINGS` | Replace GEO Settings | Replace the project's GEO settings and re-arm its recurring scan. Unknown engines or languages are rejected; hidden engine selections are retained, the prompt language remains tracked, and ZDR is disabled without its add-on. This persistent scheduling change requires paid access and a GEO plan. |
| `NOTRA_UPDATE_POST` | Update Post | Update selected fields of an existing Notra post. Markdown changes re-render content; when title is omitted, Notra derives it from the first markdown heading or keeps the existing title if there is no heading. Status changes can publish or unpublish the post, and content or metadata changes may sync a linked GitHub pull request. |
| `NOTRA_UPDATE_SCHEDULE` | Update Schedule | Replaces the schedule. Send the full schedule body; fields that are omitted are not preserved from the existing schedule. This paid operation replaces the schedule configuration and can change future generation or automatic publishing behavior. |
| `NOTRA_UPDATE_SKILL` | Update Skill | Updates the name, description, or content of a skill. System skills can be edited but not renamed. This paid operation changes an existing agent skill. |
| `NOTRA_UPSERT_GEO_COMPETITOR` | Upsert GEO Competitor | Create, update, or rename a persistent tracked competitor, matching names case-insensitively, and return the full list. Requires paid GEO access. |

## Supported Triggers

None listed.

## Troubleshooting

### Why is my API key rejected?

Copy the key directly from the Composio dashboard. Atomic Agent requires ASCII characters because it sends the key in an HTTP header. Remove any extra characters introduced when copying.

### Why are Composio tools unavailable after saving a key?

Check that you use Atomic Agent v0.5.6 or later and that Composio is enabled in your configuration. A "composio": { "enabled": false } setting disables the integration while keeping the saved key on disk.

### Does Composio have a free plan?

The Hobby plan includes 100,000 tool calls per month. Composio-managed OAuth apps have a lower included allowance. See [Composio pricing](/pricing) for the current limits that apply to your connection.

## Complete Code

None listed.

## Conclusion

### Use Notra from Atomic Agent
With your account connected, ask Atomic Agent to work with Notra in natural language. You can connect more apps through the same Composio integration as you need them.
Visit the [Atomic Agent website](https://atomicagent.io/?cta_placement=atomic-agent-site) or inspect the [Atomic Agent source code](https://github.com/AtomicBot-ai/atomic-agent?cta_placement=atomic-agent-repo).

## How to build Notra MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/notra/framework/chatgpt)
- [Claude Cowork](https://composio.dev/toolkits/notra/framework/claude-cowork)
- [Hermes](https://composio.dev/toolkits/notra/framework/hermes-agent)

## Related Toolkits

- [Composio](https://composio.dev/toolkits/composio) - Composio is an integration platform that connects AI agents with hundreds of business tools. It streamlines authentication and lets you trigger actions across services—no custom code needed.
- [Composio search](https://composio.dev/toolkits/composio_search) - Composio search is a unified web search toolkit spanning travel, e-commerce, news, financial markets, images, and more. It lets you and your apps tap into up-to-date web data from a single, easy-to-integrate service.
- [Perplexityai](https://composio.dev/toolkits/perplexityai) - Perplexityai delivers natural, conversational AI models for generating human-like text. Instantly get context-aware, high-quality responses for chat, search, or complex workflows.
- [Browser tool](https://composio.dev/toolkits/browser_tool) - Browser tool is a virtual browser integration that lets AI agents interact with the web programmatically. It enables automated browsing, scraping, and action-taking from any AI workflow.
- [Ai ml api](https://composio.dev/toolkits/ai_ml_api) - Ai ml api is a suite of AI/ML models for natural language and image tasks. It provides fast, scalable access to advanced AI capabilities for your apps and workflows.
- [Aivoov](https://composio.dev/toolkits/aivoov) - Aivoov is an AI-powered text-to-speech platform offering 1,000+ voices in over 150 languages. Instantly turn written content into natural, human-like audio for any application.
- [All images ai](https://composio.dev/toolkits/all_images_ai) - All-Images.ai is an AI-powered image generation and management platform. It helps you create, search, and organize images effortlessly with advanced AI capabilities.
- [AltTextLab](https://composio.dev/toolkits/alt_text_lab) - AltTextLab is an AI service that generates accessible, SEO-aware alt text for images. It helps teams make image content easier to understand, index, and publish.
- [Anthropic administrator](https://composio.dev/toolkits/anthropic_administrator) - Anthropic administrator is an API for managing Anthropic organizational resources like members, workspaces, and API keys. It helps you automate admin tasks and streamline resource management across your Anthropic organization.
- [Api labz](https://composio.dev/toolkits/api_labz) - Api labz is a platform offering a suite of AI-driven APIs and workflow tools. It helps developers automate tasks and build smarter, more efficient applications.
- [Apiframe](https://composio.dev/toolkits/apiframe) - Apiframe is an API platform for generating and managing AI images, videos, music, uploads, assets, jobs, and custom LoRAs. It gives developers one clean API for creative AI workflows without juggling multiple model providers.
- [Apipie ai](https://composio.dev/toolkits/apipie_ai) - Apipie ai is an AI model aggregator offering a single API for accessing top AI models from multiple providers. It helps developers build cost-efficient, latency-optimized AI solutions without juggling multiple integrations.
- [Arize AX](https://composio.dev/toolkits/arize_ax) - Arize AX is an AI engineering platform for tracing, evaluating, and improving AI applications. Use it to debug LLM behavior, compare experiments, and improve production AI quality.
- [Artificial Analysis](https://composio.dev/toolkits/artificial_analysis) - Artificial Analysis is an independent benchmarking platform for AI models and API providers. Use it to compare model intelligence, coding, math, pricing, latency, throughput, and arena rankings.
- [AssemblyAI](https://composio.dev/toolkits/assemblyai) - AssemblyAI is a speech-to-text and audio intelligence API for uploaded or hosted media. Use it to turn audio and video into accurate transcripts, summaries, and insights.
- [Astica ai](https://composio.dev/toolkits/astica_ai) - Astica ai provides APIs for computer vision, NLP, and voice synthesis. Integrate advanced AI features into your app with a single API key.
- [Avoma](https://composio.dev/toolkits/avoma) - Avoma is an AI meeting assistant for recording, transcribing, analyzing, and managing meetings, calls, notes, scorecards, and conversation intelligence. It helps teams turn conversations into searchable notes, follow-ups, coaching insights, and revenue intelligence.
- [Bigml](https://composio.dev/toolkits/bigml) - BigML is a machine learning platform that lets you build, train, and deploy predictive models from your data. Its intuitive interface and robust API make machine learning accessible and efficient.
- [Black Forest Labs](https://composio.dev/toolkits/bfl) - Black Forest Labs provides hosted FLUX models for generating and editing images and videos. It offers fast, flexible media creation with asynchronous processing and fine-tuning support.
- [Bland AI](https://composio.dev/toolkits/bland_ai) - Bland AI is a conversational AI platform for building voice agents, phone calls, messaging, and communication workflows. Use it to automate calling, evaluate conversations, and run voice operations at scale.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Notra MCP?

With a standalone Notra MCP server, the agents and LLMs can only access a fixed set of Notra tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Notra and many other apps based on the task at hand, all through a single MCP endpoint.

### Can I use Tool Router MCP with Atomic Agent?

Yes, you can. Atomic Agent fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Notra tools.

### Can I manage the permissions and scopes for Notra while using Tool Router?

Yes, absolutely. You can configure which Notra scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

### How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Notra data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
