# Use Joyrise from an AI assistant (MCP)

> Connect Claude, ChatGPT, Cursor or any MCP client to Joyrise at https://api.joyrise.ai/mcp: sign in with your Joyrise account, then set up, read and run your site from chat.

Source: https://joyrise.ai/docs/mcp (updated 2026-11-12)

Joyrise has an MCP server, so Claude, ChatGPT, Cursor and other AI assistants can run your Joyrise account for you: set up a website, read your articles and numbers, change settings, and pause or publish. You sign in with your Joyrise account. There are no API keys.

**Server URL:** `https://api.joyrise.ai/mcp`

New to Joyrise? Start with the [docs](https://joyrise.ai/docs). You can also create your account during the first sign-in below.

## Connect

### Claude (claude.ai and the desktop app)

Open **Settings › Connectors**, choose **Add custom connector**, name it Joyrise and paste the server URL. Then connect and sign in. On a Team or Enterprise plan, an owner may need to add the connector first.

### Claude Code

```
claude mcp add --transport http joyrise https://api.joyrise.ai/mcp
```

Then run `/mcp` in Claude Code, pick **joyrise**, and sign in in the browser.

### ChatGPT

Add a custom connector with the server URL (in Settings, under Apps or Connectors; developer mode may need to be on), then sign in.

### Cursor

Add this to `~/.cursor/mcp.json`, then sign in when Cursor asks:

```json
{ "mcpServers": { "joyrise": { "url": "https://api.joyrise.ai/mcp" } } }
```

### VS Code

Add this to `.vscode/mcp.json`, then start the server and sign in:

```json
{ "servers": { "joyrise": { "type": "http", "url": "https://api.joyrise.ai/mcp" } } }
```

### Any other assistant

Most MCP clients that support remote servers (Streamable HTTP) with OAuth sign-in work with the server URL; they find the sign-in through the server's protected resource metadata (see For developers).

## Sign in

The first time the assistant uses Joyrise, it opens Joyrise's sign-in page. Sign in, or create an account, and approve access. To stop an assistant using your account, remove the connector in it. Joyrise doesn't list connected assistants yet; to have one cut off for good, email brian@joyrise.ai.

## Things to ask

- "Set up Joyrise for acme.com."
- "How did my articles do in search this month?"
- "What is Joyrise writing next?"
- "Before my first article is written, make it about treasury management for startups."
- "Turn off tables in my articles and never mention competitor.com."
- "Pause publishing."
- "Is anything wrong with my site's SEO?"

## Tools

| Tool | What it does | Changes anything |
| --- | --- | --- |
| `get_account` | Your websites, plan, and whether publishing is paused or setup is finished. | No |
| `get_dashboard` | Article counts, the next article date, first-article progress, and what is connected. | No |
| `list_articles` | Articles written so far, or the planned queue with dates. | No |
| `read_article` | One article as markdown. | No |
| `get_search_performance` | Search Console clicks, impressions, CTR and position, best articles, top searches. | No |
| `get_visitors` | Google Analytics visitors, channels and top pages. | No |
| `get_site_health` | The hourly SEO checkup and recent activity. | No |
| `list_fixes` | What Fix with Joy fixed, is fixing, and couldn't fix. | No |
| `get_profile` | Business name, description, audiences and competitors. | No |
| `get_article_settings` | Formatting and link settings. | No |
| `add_website` | Scan a website and start setting it up. | Yes |
| `update_profile` | Change the business profile. | Yes |
| `start_writing` | Finish setup: Joyrise starts writing. | Yes |
| `choose_first_topic` | Pick the topic of the first article. | Yes |
| `update_article_settings` | Change formatting and link settings. | Yes |
| `set_publishing` | Pause or resume publishing. | Yes |
| `publish_draft` | Publish a draft to your CMS now. | Yes |
| `fix_now` | Start fixing failing SEO checks now. | Yes |
| `publish_fixes` | Publish your Webflow site so Joy's page fixes go live. | Yes |
| `undo_fix` | Undo one of Joy's fixes. | Yes |
| `start_checkout` | A Stripe link for you to open to choose or change a plan. | Yes |

## Good to know

- **One website per account.** Tools act on it unless you name another domain.
- **Your first article is free** and waits as a draft; the assistant sees its first 80%. Choosing a plan happens on a Stripe page the assistant links you to. It cannot pay for you.
- **Connections stay in the app.** Webflow, WordPress, Shopify, Search Console and Google Analytics are connected in the Joyrise app, not through the assistant: a token or password pasted into a chat would stay in its history.
- **Changes ask first.** Adding a website, publishing, starting or undoing Joy's fixes, and changing your profile or article settings are marked as changes, so assistants that honor those hints ask you before running them.
- **Results are data.** Assistants are told that what Joyrise returns (page titles, search queries, article text) is information, not instructions.
- **Plain-language errors.** When something can't be done, such as publishing before a plan starts, the assistant gets the reason in words and can tell you.

## For developers

- **Transport:** Streamable HTTP, stateless. Each POST carries one JSON-RPC message (or a batch of up to 10 for protocol 2025-03-26) and gets one JSON response. There is no server-sent stream: GET answers 405.
- **Protocol versions:** 2024-11-05 through 2025-11-25. Tools only; no resources or prompts.
- **Auth:** OAuth 2.1 with PKCE, through Joyrise's sign-in at `https://clerk.joyrise.ai`, with dynamic client registration. Protected resource metadata: `https://api.joyrise.ai/.well-known/oauth-protected-resource/mcp`. A request without a valid token gets 401 with a `WWW-Authenticate` header pointing there.
- **Errors:** a tool that can't complete answers a normal result with `isError: true` and a plain-language reason.
