---
title: MCP server and tools
description: The Crow Nest MCP server, how to connect to it, and every tool it gives your AI, from publish and share to secrets, domains, billing and organizations.
---

# MCP server and tools

The MCP server is how your AI works with Crow Nest. It's at:

```text
https://crow-nest.com/mcp
```

It speaks MCP over streamable HTTP. The first connection opens a browser window to sign in to Crow Nest and approve the client; after that, the AI acts as you. Revoke access any time from the dashboard's Tokens page.

## Connecting your AI

Paste `https://crow-nest.com/mcp` into your AI and it either connects itself or tells you the steps below. No client ID or API key is needed in any app.

**Claude.ai or Claude desktop** (it then works in the Claude phone app too)

1. Open **Customize > Connectors**.
2. Click **Add**, then **Add custom connector**.
3. Name it `Crow Nest`, paste `https://crow-nest.com/mcp` as the URL, and click **Add**. Leave the sign-in options as they are.
4. Click **Connect** and sign in to Crow Nest.

The Free plan allows one custom connector. On Team or Enterprise, an owner adds it once under **Organization settings > Connectors**, then each person clicks **Connect**.

**ChatGPT** (paid plans, set up on chatgpt.com)

1. Open **Settings > Apps & Connectors > Advanced settings** and turn on **Developer mode**.
2. Back in **Apps & Connectors**, click **Create**.
3. Name it `Crow Nest`, paste `https://crow-nest.com/mcp`, choose **OAuth**, confirm you trust it, and click **Create**.
4. Sign in to Crow Nest. In a chat, pick Crow Nest from the **+** menu.

**Claude Code** (terminal, IDE, or the Code tab in Claude desktop)

```bash
claude mcp add --transport http -s user crow-nest https://crow-nest.com/mcp
```

Then type `/mcp`, pick crow-nest, and choose **Authenticate**.

**Codex**: run these in your terminal, then start a new session.

```bash
codex mcp add crow-nest --url https://crow-nest.com/mcp
codex mcp login crow-nest
```

**Cursor and VS Code**: open [crow-nest.com/mcp](https://crow-nest.com/mcp) in your browser and click **Add to Cursor** or **Add to VS Code**. For VS Code you can also run:

```bash
code --add-mcp '{"name":"crow-nest","type":"http","url":"https://crow-nest.com/mcp"}'
```

**Windsurf**: add this to `~/.codeium/windsurf/mcp_config.json`, then refresh the MCP servers panel.

```json
{ "mcpServers": { "crow-nest": { "serverUrl": "https://crow-nest.com/mcp" } } }
```

**Gemini CLI**

```bash
gemini mcp add --transport http crow-nest https://crow-nest.com/mcp
```

Then type `/mcp auth crow-nest`.

**Anything else**: add a remote MCP server at `https://crow-nest.com/mcp` (Streamable HTTP, OAuth).

**Keep the rules in the project (optional).** Crow Nest's own instructions already tell your AI how to publish. To also keep them in a project, so every session follows them even before it calls Crow Nest, add them to the file your AI reads from the project's root folder:

- Codex, and most other agents (AGENTS.md): `curl -s https://crow-nest.com/mcp/rules >> AGENTS.md`
- Claude Code (CLAUDE.md): `curl -s https://crow-nest.com/mcp/rules >> CLAUDE.md`
- Cursor (a project rule that is always on): `mkdir -p .cursor/rules && curl -s "https://crow-nest.com/mcp/rules?for=cursor" -o .cursor/rules/crow-nest.mdc`

## How tools ask you things

Some actions need your answer: who should see a new app, confirming a purchase or a delete. When your AI client supports it, the tool asks you directly in a form the AI can't read or fill in. When it doesn't, the tool tells the AI to ask you and call again, or gives you a dashboard link. Secret values, AI keys and card details never pass through the conversation or the MCP server: the tools give you a link to the dashboard or Stripe, and you type them there.

Every tool tells your AI whether it only reads, changes something, or can delete something (MCP tool hints), so clients that ask before changes can do so.

## Publishing and apps

| Tool | What it does |
| --- | --- |
| `publish` | Publishes a built folder: creates an app (asks for a name and who can see it) or a new version of one |
| `crow_docs` | Returns the developer reference: the browser library, crow.json rules and server code |
| `list_tools` | Your apps with their address, visibility and opens in the last 7 days, plus apps shared with you |
| `whoami` | Which account the connection is signed in as: email, name, and personal account or company |
| `share` | Changes who can open an app; adds or removes people by email; turns `aiDiscoverable` on for public apps |
| `rollback` | Makes an older version current again |
| `delete_tool` | Deletes an app after you confirm. Its address can't be reused |

## Data, logs and stats

| Tool | What it does |
| --- | --- |
| `tool_data` | Each crow.db collection with its count, rules and recent documents, and each file bucket's count |
| `tool_logs` | The last 100 log lines from the app's server code, with a level filter. Owner only |
| `tool_stats` | Opens and unique viewers over the last few days |

## Secrets and AI

| Tool | What it does |
| --- | --- |
| `tool_secret` | Gives you the dashboard link to set or replace a secret an app's `apis` refers to; deletes one. The value never goes through your AI |
| `ai_key` | Gives you the dashboard page to add an AI provider key (your own, your company's or one app's); deletes one. The key never goes through your AI |
| `tool_ai` | Chooses which key an app uses: `company`, `mine`, `tool` or `none`, with the cost warning when needed |

## Domains

| Tool | What it does |
| --- | --- |
| `company_domain` | Shows the company's own address for its apps and the DNS records still needed |
| `company_domain_set` | Company admins set up or remove that address |
| `custom_domains` | Lists an app's own addresses and how far along each is |
| `custom_domain` | Puts an app on your own subdomain and lists the DNS records to add; disconnects one |
| `find_domain` | Finds domains to buy, with first-year and renewal prices |
| `buy_domain` | Buys a domain you picked, after you confirm the price and the owner's details |
| `domain_status` | Where a bought domain is: registering, DNS, certificate, live, renewal date |

## Billing

| Tool | What it does |
| --- | --- |
| `billing` | Your plan, state, whether a card is on file and this month's usage, with a Stripe link when you need to act. Card details are only ever typed on Stripe |

## Organizations

| Tool | What it does |
| --- | --- |
| `org` | Shows your organization and what you may do |
| `org_setup` | Creates an organization, turns your account into one, or accepts an invitation |
| `org_invite` | Invites people by email (up to 50 at once) with a role and permissions, or revokes an invitation |
| `org_members` | Lists members and invitations |
| `org_member_update` | Managers change roles and permissions or remove people (choosing who gets their apps, after a list of what will move); the owner transfers ownership |
| `org_apps` | Lists every app in the organization |
| `org_app_pause` | Managers pause or unpause an app |
| `org_activity` | Managers read the activity log, newest first (latest 50), filtered by date, person, app or action |

## The reference for agents

`crow_docs` returns the same developer reference that's at `https://crow-nest.com/mcp/docs`. These docs go further; agents can read any page as Markdown (see [For AI agents](/for-ai-agents)).

## In ChatGPT

ChatGPT's app rules don't allow buying digital services inside the chat, so there `find_domain` and `buy_domain` aren't offered and `billing` links to Settings on crow-nest.com instead of a Stripe page. Your plan, card and domains work the same; you manage them in the dashboard. Every other tool is the same in every client.
