# Notra [Health: Active]

**Category:** 🌐 Social Media  
**Repository:** https://github.com/usenotra/notra-mcp  
**GitHub Stars:** 3  
**npm Downloads (last month):** 21  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/notra

## Description
Access the Notra API for managing posts, brand identities, and integrations.

## Tools
Capabilities this server exposes over MCP:

- **whoami** — Show the current workspace and authenticated account information
- **list_workspaces** — List accepted and pending workspaces available to the authenticated account
- **list_posts** — List post summaries with optional filters for sorting, pagination, status, content type, and brand identity
- **get_post** — Get a single post by ID
- **create_post** — Create a post from your own title and markdown
- **update_post** — Update a post's title, markdown, or status
- **delete_post** — Delete a post
- **generate_post** — Queue async post generation from GitHub activity
- **get_post_generation_status** — Check the status of a post generation job
- **get_post_schedule** — Get a post's publishing schedule and per-destination status
- **schedule_post** — Schedule an existing post for publishing in Notra and optionally GitHub, X, or LinkedIn
- **cancel_post_schedule** — Cancel pending publishing destinations; already-publishing destinations finish on their own
- **list_brand_identities** — List all brand identities
- **get_brand_identity** — Get a single brand identity by ID
- **update_brand_identity** — Update brand identity settings
- **delete_brand_identity** — Delete a brand identity
- **list_brand_colors** — List a brand identity's guideline colors
- **create_brand_color** — Add a brand color
- **update_brand_color** — Update a brand color
- **delete_brand_color** — Delete a brand color
- **generate_brand_identity** — Queue async brand identity generation from a website URL
- **get_brand_identity_generation_status** — Check the status of a brand identity generation job
- **list_integrations** — List enabled GitHub and Linear integrations
- **create_github_integration** — Connect a public GitHub repository
- **list_github_activity** — List merged PRs, commits or releases of a connected repository
- **delete_integration** — Delete a GitHub or Linear integration
- **list_schedules** — List scheduled content generation jobs
- **create_schedule** — Create a schedule from GitHub and/or Linear
- **update_schedule** — Change only the fields you pass on a schedule
- **delete_schedule** — Delete a scheduled content generation job
- **run_schedule** — Run a schedule once now (uses AI credits)
- **list_schedule_runs** — List a schedule's recent runs and their posts
- **list_event_triggers** — List triggers that generate content from GitHub releases or pushes
- **get_event_trigger** — Get a single event trigger by ID
- **create_event_trigger** — Create an event trigger
- **update_event_trigger** — Replace an event trigger's configuration
- **delete_event_trigger** — Delete an event trigger
- **list_webhook_endpoints** — List HTTPS endpoints subscribed to Notra events
- **delete_webhook_endpoint** — Remove a webhook subscription and cancel unsent deliveries
- **list_webhook_deliveries** — List webhook deliveries, optionally filtered by status
- **get_webhook_delivery** — Get a delivery's payload and attempt history
- **retry_webhook_delivery** — Retry a failed webhook delivery
- **list_skills** — List reusable writing skills
- **get_skill** — Get a single skill by name
- **create_skill** — Create a reusable writing skill
- **update_skill** — Update a reusable writing skill
- **delete_skill** — Delete a reusable writing skill
- **list_projects** — List the organization's GEO projects
- **get_project** — Get a single project by ID
- **create_project** — Create a project, optionally linked to a brand
- **update_project** — Rename a project or relink its brand identity
- **delete_project** — Delete a project and all of its GEO data (cascading)
- **get_geo_settings** — Get tracked company, aliases, languages, engines and scan config
- **list_geo_engines** — List the engine IDs a project can track
- **update_geo_settings** — Change only the given settings and restart the scan cycle
- **list_geo_prompts** — List tracked prompts (custom and auto-derived)
- **create_geo_prompt** — Track a new prompt
- **update_geo_prompt** — Enable or disable a tracked prompt
- **delete_geo_prompt** — Stop tracking a prompt
- **import_geo_prompts** — Bulk import prompts from rows or CSV
- **list_geo_prompt_suggestions** — List prompts suggested from Search Console queries
- **accept_geo_prompt_suggestion** — Track a suggested prompt
- **dismiss_geo_prompt_suggestion** — Dismiss a suggested prompt
- **list_geo_sequences** — List multi-turn prompt sequences
- **create_geo_sequence** — Create a prompt sequence
- **update_geo_sequence** — Update a sequence's name, steps or enabled state
- **delete_geo_sequence** — Delete a sequence
- **run_geo_sequence** — Run a sequence now; consumer apps queue a scan (uses AI credits)
- **list_geo_competitors** — List tracked competitors
- **upsert_geo_competitor** — Create, update or rename a competitor
- **suggest_geo_competitors** — AI-discover likely competitors for a domain
- **delete_geo_competitor** — Stop tracking a competitor
- **import_geo_competitors** — Bulk import competitors from rows or CSV
- **create_geo_scan** — Trigger an async visibility scan (uses AI credits)
- **rescan_geo_prompt** — Scan a single prompt again (uses AI credits)
- **list_geo_scans** — List scans with pagination
- **get_geo_scan** — Get a scan and its status
- **get_geo_snapshot** — Compact cross-signal diagnosis and recommended next actions
- **get_geo_changes** — Changes between the two latest scans
- **get_geo_visibility_overview** — Mention rates per answer engine

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "notra": {
    "command": "npx",
    "args": ["-y","@usenotra/mcp"],
    "env": {
      "NOTRA_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `NOTRA_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What Notra MCP server does

Notra exposes workspace content operations from the Notra API through Model Context Protocol. Its tools cover the full lifecycle of posts: listing and retrieving content, creating posts from a title and Markdown, changing titles or status, deleting posts, and checking publishing schedules. Agents can also queue post generation based on GitHub activity and inspect the status of those asynchronous jobs.

Brand management is included alongside content operations. The server can list, inspect, update, and remove brand identities, as well as manage the guideline colors associated with each identity. Integration tools expose enabled GitHub and Linear connections, allow a public GitHub repository to be connected, and retrieve merged pull requests, commits, or releases from a connected repository.

Scheduled workflows are handled separately from individual post publishing. Agents can list, create, update, and delete scheduled content-generation jobs. Publishing tools can schedule an existing post in Notra and optionally send it to GitHub, X, or LinkedIn, retrieve per-destination status, or cancel destinations that have not started publishing.

## How it works

The package runs as a local MCP process over stdio when launched with `npx -y @usenotra/mcp`. It uses a Notra API key supplied through the environment. Account-level keys can access multiple workspaces; set `NOTRA_ORGANIZATION_ID` when a particular workspace must be selected. The `list_workspaces` tool can show available workspace IDs before choosing one.

Notra also provides a hosted streamable HTTP endpoint at `https://mcp.usenotra.com/mcp`. Remote clients can authenticate with OAuth, or use a static Notra API key as a bearer token. A workspace-scoped URL, such as `/mcp/acme`, pins the connection to one workspace and is useful for clients that cannot send custom headers.

Some operations are asynchronous. Post generation and brand identity generation return jobs that can be checked with their corresponding status tools rather than completing in the initial request.

## Setup and configuration

Node.js 20 or newer is required for the local package. Create an API key from the Notra workspace dashboard under Developer > API Keys, then configure the MCP client to run the package with `NOTRA_API_KEY` in its environment. Claude Desktop, Claude Code, Codex, Cursor, OpenCode, and Amp setup examples are supported by the project’s configuration guidance.

For hosted deployments using OAuth, self-hosted HTTP validation can be configured with WorkOS AuthKit settings including `WORKOS_AUTHKIT_DOMAIN`, `WORKOS_CLIENT_ID`, and `NOTRA_MCP_RESOURCE`. These settings apply to OAuth validation rather than ordinary local stdio use.

## Tools and capabilities

- Identify the authenticated account and active workspace.
- List, create, edit, delete, generate, schedule, and publish posts.
- Inspect post-generation jobs and destination-specific publishing status.
- Manage brand identities and their guideline colors.
- Connect public GitHub repositories and inspect repository activity.
- List and remove GitHub or Linear integrations.
- Create and maintain scheduled content-generation jobs.

## Limitations and notes

The local server requires a Notra API key and Node.js 20 or newer. Account API keys need a workspace selection when the account belongs to multiple workspaces; organization keys already target their workspace. A scoped remote URL cannot switch workspaces, and its OAuth authorization must match the workspace in the URL.

Cancelling a post schedule only affects destinations that are still pending. Destinations already publishing finish independently. Legacy remote MCP sessions expire after 30 minutes of inactivity, while session limits can also reject new hosted sessions when the server-wide limit is reached.

_Full upstream README: https://allmcps.com/mcp/notra/readme_

