> ## Documentation Index
> Fetch the complete documentation index at: https://docs.postqueen.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> PostQueen's hosted API is https://api.postqueen.ai. The public API base is https://api.postqueen.ai/public/v1 and takes the raw API key in the Authorization header, with no Bearer prefix.
> The MCP server for posting is https://api.postqueen.ai/mcp/YOUR_API_KEY (or /mcp with Authorization: Bearer YOUR_API_KEY). docs.postqueen.ai/mcp only searches these docs and cannot post.
> The API key is under Connections > API Keys in the app, and only workspace admins can see it.

# Zed

> Add PostQueen to Zed as a remote MCP server, then ask Zed's agent panel to write, schedule and check your posts.

export const AgentStatus = ({status, label, children}) => {
  const look = ({
    tested: {
      color: 'green',
      icon: 'badge-check'
    },
    'partly-tested': {
      color: 'green',
      icon: 'badge-check'
    },
    'vendor-docs': {
      color: 'surface',
      icon: 'book-open'
    },
    'not-possible': {
      color: 'gray',
      icon: 'circle-slash'
    }
  })[status] || ({
    color: 'gray',
    icon: 'circle-question-mark'
  });
  const cut = status === 'partly-tested' ? -1 : (label || '').indexOf(', ');
  const rest = cut > 0 ? label.slice(cut + 2) : '';
  const pill = status === 'partly-tested' ? 'Partly tested' : cut > 0 ? label.slice(0, cut) : label;
  const note = status === 'partly-tested' ? label : cut > 0 ? rest.charAt(0).toUpperCase() + rest.slice(1) + '.' : null;
  return <div className="pq-status not-prose" data-status={status}>
      <Badge color={look.color} shape="pill" size="md" icon={look.icon}>{pill}</Badge>
      {note || children ? <span className="pq-status-note">
          {note}
          {note && children ? ' ' : null}
          {children}
        </span> : null}
    </div>;
};

<AgentStatus status="vendor-docs" label="From the vendor's docs, not tested by PostQueen yet" />

Zed is a code editor with a built-in AI agent panel. Add PostQueen as a remote MCP server and the agent can write posts about your work, schedule them and report how your published posts did.

## Before you start

* **Plans:** Personal (free), Pro and Business. Zed documents no plan limit on MCP.
* **Platforms:** macOS, Linux and Windows.
* **A PostQueen API key.** A workspace admin copies it, or the ready-made address, from **Connections**.

<Info>
  **Where the API key is:** in the app, open **Connections > API Keys**. Only a workspace Admin or Super Admin can reveal or rotate it; other members see it masked. A workspace has one key, and each agent card on **Connections** shows your MCP address with the key already filled in.
</Info>

## Connect Zed

<Steps>
  <Step title="Add a remote server">
    Open **Settings > AI > MCP Servers**, click **Add Server** and choose **Add Remote Server**. Or run `zed: open settings file` from the command palette.
  </Step>

  <Step title="Add PostQueen">
    Add the `postqueen` entry, with your key in place of `YOUR_API_KEY`, and save:

    ```json settings.json theme={"system"}
    {
      "context_servers": {
        "postqueen": {
          "url": "https://api.postqueen.ai/mcp/YOUR_API_KEY"
        }
      }
    }
    ```
  </Step>

  <Step title="Check the dot">
    In **Settings > AI > MCP Servers**, the dot next to PostQueen turns green, and its tooltip says **Server is active**.
  </Step>
</Steps>

## Check that it works

In the agent panel, ask: "List my PostQueen channels." The agent calls PostQueen and answers with the channels you connected.

## Good to know

* **The key address needs no header and no sign-in.** Zed starts a sign-in only when a server answers that it needs one, and the key address does not.
* **The bare `https://api.postqueen.ai/mcp` address needs a header.** Without one, Zed tries a sign-in there. With a header set, a refused key shows as a header error instead.
* **Zed's agent can add the entry for you** if you allow it to edit `settings.json`.
* **Ask for drafts when you want to check first.** A draft waits on your PostQueen calendar, and nothing publishes until you schedule it.
* **What it cannot do over MCP:** delete a post, or change a post's text or time. Do that on the calendar in the app. [The MCP tools](/mcp/tools) lists what it can do.

## Other ways to connect

| Way                    | Address                                      | Status                           |
| ---------------------- | -------------------------------------------- | -------------------------------- |
| The key in the address | `https://api.postqueen.ai/mcp/YOUR_API_KEY`  | From Zed's docs. The route above |
| The Bearer header      | `https://api.postqueen.ai/mcp`               | From Zed's docs                  |
| Sign in with PostQueen | `https://api.postqueen.ai/mcp-oauth-dynamic` | Not tested yet                   |

<Tabs>
  <Tab title="Bearer header">
    ```json settings.json theme={"system"}
    {
      "context_servers": {
        "postqueen": {
          "url": "https://api.postqueen.ai/mcp",
          "headers": { "Authorization": "Bearer YOUR_API_KEY" }
        }
      }
    }
    ```
  </Tab>

  <Tab title="Sign in (not tested yet)">
    Use `https://api.postqueen.ai/mcp-oauth-dynamic` as the URL, with no headers. Zed shows an **Authenticate** button; a workspace admin signs in to PostQueen and approves.

    The sign-in address has 20 tools, all but `ask_postqueen`. Revoke access in PostQueen under **Connections > Approved Apps**.
  </Tab>
</Tabs>

## Try this first

```text wrap theme={"system"}
List my PostQueen channels. Then write a short Bluesky post about what I changed today and save it as a draft for tomorrow at 9am.
```

The draft appears on your PostQueen calendar, ready for you to check and schedule. [Prompts to try](/mcp/examples) has more.

## Troubleshooting

| Symptom                                          | Fix                                                                                                 |
| ------------------------------------------------ | --------------------------------------------------------------------------------------------------- |
| The dot next to PostQueen is not green           | Check the entry in `settings.json` against the example above, and read the tooltip on the dot.      |
| Zed asks you to sign in on the key address       | Check that the address has your key at the end: `https://api.postqueen.ai/mcp/YOUR_API_KEY`.        |
| A header error on `https://api.postqueen.ai/mcp` | The key in the header is wrong. Copy it again from **Connections > API Keys**.                      |
| The key is refused                               | Copy it again from **Connections > API Keys**. Only a workspace Admin or Super Admin can reveal it. |

More fixes are on [Troubleshooting agents](/agents/troubleshooting).

## Next steps

<CardGroup cols={2}>
  <Card title="Every agent" icon="bot" href="/agents/overview">
    Which agents can post to PostQueen, how each one connects, and what PostQueen has tested.
  </Card>

  <Card title="The MCP tools" icon="wrench" href="/mcp/tools">
    What each of the 21 tools does, and what an agent cannot do.
  </Card>

  <Card title="Prompts and tool calls" icon="messages-square" href="/mcp/examples">
    The order an agent calls the tools in, with prompts that work.
  </Card>

  <Card title="Troubleshooting agents" icon="life-buoy" href="/agents/troubleshooting">
    What to do when a connection or a command fails.
  </Card>
</CardGroup>
