# Quickstart

> Connect WordPress, authorize Codex, and read your first page without changing it.

Start with one WordPress website and one Agent. This walkthrough uses Codex
and finishes with a read of an existing page. You do not need to publish content
or enable high-impact Abilities to complete it.

## Before you begin

- A MoraWP account and access to the Workspace you want to use.
- Administrator access to the WordPress website, with WordPress **6.2 or later**
and PHP **7.4 or later** for MoraWP Plugin 0.2.33.
- Codex CLI installed on your computer. Follow
[OpenAI's Codex CLI guide](https://learn.chatgpt.com/docs/codex/cli) if you need to install it.
- An existing page you can identify in WordPress. A test website is a good place
to learn the setup before working with customer content.

## 1. Connect WordPress

In the [Dashboard](https://app.morawp.com), select the intended Workspace and
open **Websites → Add a website**. Download the MoraWP Plugin ZIP.

In WordPress, open **Plugins → Add New Plugin → Upload Plugin**. Upload the ZIP,
install it, and activate it. Open **MoraWP** and press **Connect**.

The approval page opens in MoraWP. Sign in, choose the Workspace, review the
request, and confirm. Return to **Websites** in that Workspace.

**Check:** your website appears in the list with its connection status. If it
does not, follow [Connect a website](/getting-started/connect-website) before
adding an Agent.

## 2. Authorize Codex

Open **Agents → Connect an Agent** in the Dashboard and select **Codex**. Keep
the setup dialog open while you run these commands on your computer:

```bash
codex mcp add morawp --url https://api.morawp.com/mcp
codex mcp login morawp
```

In the browser approval page, review the app, Workspace, website access, and
Ability access. Choose **Read only** for this walkthrough. Read the data-access
notice and acknowledge it before approving.

<warning>

Read only prevents changes through those Abilities; it does not make their data
public. Enabled Integration reads may return sensitive or private information,
including settings and credentials exposed by the Integration. Approve only an
app you trust with that data.

</warning>

Return to the Dashboard setup dialog and follow its completion prompts.

**Check:** the authorized connection appears in **Agents**. For connection
problems, use the [Codex setup guide](/agents/codex).

## 3. Read one page

Open **Abilities** in MoraWP and use **Manage** on the relevant Toolkit to
check that the WordPress page listing and reading Abilities are enabled. Keep
high-impact Abilities off. If you cannot change that configuration, ask the
Workspace owner to review it. The Agent's **Read only** mode does not override
Workspace or website restrictions.

Start Codex. Use `/mcp` to check that the MoraWP server is available, then send:

```text
Use MoraWP to list the websites this Agent can access. Let me choose one.
On that website, discover the available WordPress read Abilities and inspect
their input schemas. List the existing pages, let me choose a page, then read
its title and content. Do not create, edit, delete, or publish anything.
```

Choose the connected website and a page from the returned list. Codex should
discover the site's available Abilities and use the returned page identifier
instead of guessing one.

**Check:** the returned title matches the page in WordPress. Content may contain
HTML or builder data rather than the final visual layout. The page remains
unchanged.

Open **Activity** in MoraWP to find the real Ability execution and its result.
Website listing and discovery are not recorded as customer Ability actions.

## If you get stuck

<table>
<thead>
  <tr>
    <th>
      What you see
    </th>
    
    <th>
      What to check
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      Website missing from the Agent's list
    </td>
    
    <td>
      Confirm the Workspace and the connection's website access. A website being connected does not give every Agent access to it.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        AGENT_ABILITY_MODE_DENIED
      </code>
    </td>
    
    <td>
      Review the Agent's Ability access. Keep this walkthrough read only and choose an available read Ability.
    </td>
  </tr>
  
  <tr>
    <td>
      Ability not found
    </td>
    
    <td>
      Discover the site's current Abilities. Installed Integrations and versions determine what is available.
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        WORDPRESS_MORAWP_TOOL_FAILED
      </code>
    </td>
    
    <td>
      Follow <a href="/troubleshooting/wordpress-tool-failed">
        WordPress tool failed
      </a>
      
       and inspect the actual response.
    </td>
  </tr>
</tbody>
</table>

## Next steps

Review [Abilities](/guides/abilities) before allowing changes, and
[Activity](/guides/activity) to understand results and AI Actions. For a different
AI app, start with [Connect an Agent](/getting-started/connect-agent).
