# Paragraph > Paragraph is an owned media engine. You get a website and a newsletter you own, plus an agent that researches topics, drafts in your voice, publishes across channels, and reports what worked. Nothing goes out without your approval. Paragraph gives writers and small teams one workspace for publishing and distribution. A supervising agent routes work to specialists that research topics, draft posts, build and maintain an Astro website, generate images and video, post to X and LinkedIn, send the newsletter, and report on performance. Every draft waits for a human. Approval is enforced in the product, not offered as a setting. The platform is built to be read by machines as well as people. Every publication exposes RSS, per-post Markdown, sitemaps, and its own llms.txt, and the same data is available through a REST API, a TypeScript SDK, a CLI, and a hosted MCP server. ## What the agent can do - Research a topic using web search and full-page reads, then draft in your long-form or social voice - Check a draft before publishing for structure, sourcing, internal links, send timing, and AI-writing tells - Publish to your site and email your subscribers in one step - Write and publish X posts and threads, and LinkedIn posts including PDF carousels - Build, validate, and deploy a custom website, then review its own work from screenshots - Generate cover images, social cards, and Remotion videos - Run recurring or event-triggered automations, each scoped to the tools you authorize - Report on web traffic, newsletter engagement, campaign attribution, and which AI assistants cite your work ## Product - [Homepage](https://paragraph.com/): Your website, your newsletter, and an agent that runs the work between them - [Draft](https://paragraph.com/features/draft): The agent researches a topic and writes a first draft in your voice - [Approve](https://paragraph.com/features/approve): Review every draft before it goes out. Nothing publishes on its own - [Distribute](https://paragraph.com/features/distribute): Publish to your site, email your subscribers, and post to X and LinkedIn - [Maintain](https://paragraph.com/features/maintain): Daily upkeep on your site: broken links, metadata, page weight, and SEO - [Pricing](https://paragraph.com/pricing): Plans, credits, and what each tier includes - [Free site audit](https://paragraph.com/audit): Check how your site performs for search engines and AI assistants. No account needed - [Integrations](https://paragraph.com/integrations): Connect the agent to 900+ tools through the Model Context Protocol - [Website themes](https://paragraph.com/themes): Starting designs for an agent-built Astro site - [For writers](https://paragraph.com/writers): Own your site, your list, and your reader relationships - [Glossary](https://paragraph.com/glossary): Publishing, SEO, and AI-search terms explained ## Documentation - [Quickstart](https://docs.paragraph.com/getting-started/quickstart): Create an account, meet your agent, publish a first post - [Import your publication](https://docs.paragraph.com/getting-started/import-your-publication): Bring posts and subscribers from Substack or another platform - [Meet your agent](https://docs.paragraph.com/agent): What the agent does, and how suggestions and automations differ - [Voice and memory](https://docs.paragraph.com/agent/voice-and-memory): Teach the agent your goals, long-form voice, social voice, and brand - [Approvals](https://docs.paragraph.com/agent/approvals): How authorization works, and why nothing publishes without you - [Automations](https://docs.paragraph.com/agent/scheduled-tasks): Jobs that run before publishing, after a publication event, or on a schedule - [Connections](https://docs.paragraph.com/agent/connections): Connect X, LinkedIn, Telegram, Slack, and other tools - [Editor](https://docs.paragraph.com/publishing/editor): Write, format, and publish posts - [Newsletters](https://docs.paragraph.com/publishing/newsletters): Send posts by email with deliverability handled - [Your website](https://docs.paragraph.com/publishing/website): The default design, or a custom site the agent builds - [Custom domains](https://docs.paragraph.com/publishing/custom-domains): Point your own domain at your publication - [SEO and site maintenance](https://docs.paragraph.com/publishing/seo): Staying fast, findable, and healthy with daily agent upkeep - [Subscribers](https://docs.paragraph.com/audience/subscribers): Manage, import, and export your subscriber list - [Distribution](https://docs.paragraph.com/audience/distribution): Turn a post into X threads, LinkedIn posts, and email sends - [Analytics](https://docs.paragraph.com/audience/analytics): Web, newsletter, social, campaign attribution, and AI-assistant traffic - [Plans and credits](https://docs.paragraph.com/account/plans-and-credits): What each plan includes and how credits power the agent ## Discovery - [Sitemap index](https://paragraph.com/sitemap.xml): Every publication, in chunked sitemaps - [Trending sitemap](https://paragraph.com/sitemap-trending.xml): Popular content - [Google News sitemap](https://paragraph.com/sitemap-news.xml): Recent news content - [Agent skills index](https://paragraph.com/.well-known/agent-skills/index.json): Installable skills that teach an AI agent to use Paragraph Every publication also serves its own `llms.txt`, an RSS feed, and a Markdown version of each post at the post URL with a `.md` suffix. ## CLI (Command-Line Interface) The [Paragraph CLI](https://docs.paragraph.com/developers/cli) (`@paragraph-com/cli`) lets you manage posts, publications, and subscribers from the terminal. Designed for both human and agent/programmatic usage. Source: [GitHub](https://github.com/paragraph-xyz/paragraph-cli). ### Install ```bash npm install -g @paragraph-com/cli ``` Or via Homebrew: `brew tap paragraph-xyz/tap && brew install paragraph` ### Authentication ```bash paragraph login --token echo "" | paragraph login --with-token PARAGRAPH_API_KEY= paragraph post list ``` Get your API key from app.paragraph.com under Settings → API keys. ### Key Commands ```bash paragraph post list paragraph post get paragraph post create --title "Title" --file ./draft.md paragraph post publish paragraph post publish --newsletter paragraph search post --query "topic" paragraph subscriber list paragraph analytics query --sql "select 1" ``` ### Agent Usage All commands support `--json` for structured output. Data goes to stdout, status messages to stderr. ```bash paragraph --json post list | jq '.data[0].title' paragraph --json post get --field markdown > post.md ``` Set `CI=true` or `PARAGRAPH_NON_INTERACTIVE=1` to disable the interactive TUI. Destructive commands require `--yes` in non-TTY environments and support `--dry-run`. Run `paragraph --help` for all commands. ### Agent Skills Install the [Paragraph Agent Skills](https://docs.paragraph.com/developers/agent-skills) to teach AI agents how to use the CLI, REST API, SDK, and MCP server: ```bash npx skills add paragraph-xyz/skill ``` ## MCP Server The [Paragraph MCP server](https://docs.paragraph.com/developers/mcp) connects AI agents directly to Paragraph via the [Model Context Protocol](https://modelcontextprotocol.io). Manage posts, publications, subscribers, and analytics from any MCP-compatible client. Source: [GitHub](https://github.com/paragraph-xyz/paragraph-mcp). ### Remote server (recommended) Use the hosted server at `mcp.paragraph.com`. No installation or API key management required. Authentication happens automatically through your Paragraph account in the browser. Claude Code: `claude mcp add paragraph --transport http https://mcp.paragraph.com/mcp` Claude Desktop, Cursor, VS Code: add to your MCP config: ```json { "mcpServers": { "paragraph": { "url": "https://mcp.paragraph.com/mcp" } } } ``` ### Local server Alternatively, run the server locally with npx (requires Node.js 18+): ```bash npx @paragraph-com/mcp ``` Claude Code: `claude mcp add paragraph -- npx @paragraph-com/mcp` Claude Desktop, Cursor, VS Code: add to your MCP config: ```json { "mcpServers": { "paragraph": { "command": "npx", "args": ["@paragraph-com/mcp"], "env": { "PARAGRAPH_API_KEY": "your-key" } } } } ``` For local usage, set `PARAGRAPH_API_KEY` as an environment variable or log in via the CLI (`npx @paragraph-com/cli login`). Read-only tools work without authentication. ### Available Toolsets The server exposes 18 tools organized into toolsets: posts (create, update, delete, list, get, send test email), publications (get metadata), subscribers (list, count, add), analytics (query your own data with SQL, read the schema), search (posts and publications), users (get profile), feed (curated platform feed), me (authenticated publication info), and coins (metadata and holders, for publications using them). Expose only the tools you need: `npx @paragraph-com/mcp --toolsets posts,search` ## Optional - [Content Guidelines](https://paragraph.com/content-guidelines): Publishing guidelines - [Terms of Use](https://paragraph.com/terms-of-use): Platform terms - [Privacy Policy](https://paragraph.com/privacy): Data protection practices - [Brand](https://paragraph.com/brand): Logos, names, and usage