The **Projects hub** is the first page you see after selecting a tenant. It lists every web project and MCP server in the workspace, and is the starting point for creating new ones.

The resource hierarchy is **Organization > Tenant > Project > Environment**. Projects live inside a tenant and contain one or more environments (e.g. Development, Staging, Production). MCP servers follow the same hierarchy but expose server-side tool endpoints instead of client-facing auth flows.

## Project list

The page header reads **"Projects"** with filter tabs for **All**, **Web**, and **MCP** — each showing a count badge. Two layout modes are available:

- **Cards view** — each project is a card showing the name, description, organization name, environment count badge, last-updated date, and a colored top bar (indigo for web projects, emerald for MCP servers).
- **Table view** — a compact row-based layout with columns for Name, Type, Environments, and Updated.

Web projects display a terminal icon (**SquareTerminal**) and MCP servers display a bot icon (**Bot**).

Click a project card to select it. Selecting a project pins its first environment and redirects you to the project dashboard.

> **Tip**
>
> Use the filter tabs to quickly narrow the list when your tenant has many
> projects. The count badges update as projects are added or removed.

## Create a web project

### In the Dashboard

1. From the **Projects hub**, click the **"+"** button in the top navigation bar.

2. Select **"New Project"** from the dropdown menu.

3. In the project type dialog, click **"Web Application"**.

4. Fill in the project details and click **"Create Project"**.
5. You'll be redirected to the project dashboard for your new project.

Navigate back to the **Projects hub** to see your new web project in the list.

### Form fields

| Field | Required | Details |
|-------|----------|---------|
| **Name** | Yes | Minimum 2 characters. Displayed in the project list, sidebar, and breadcrumb navigation. |
| **Description** | No | Free-text summary of the project's purpose. |
| **URL** | No | Must be a valid URL if provided. Used as the project's primary web address. |

### Programmatically

Use the `saveApplication` mutation to create a web project via the API:

```graphql
mutation SaveApplication($meta: SaveApplicationInput!) {
  saveApplication(meta: $meta) {
    project { id }
    environments { id name }
    meta { ok { message } error { message } }
  }
}
```

```json
{
  "meta": {
    "name": "My Web App",
    "description": "Customer-facing authentication portal",
    "url": "https://app.example.com"
  }
}
```

## Create an MCP server

### In the Dashboard

1. From the **Projects hub**, click the **"+"** button in the top navigation bar.
2. Select **"New MCP Server"** from the dropdown menu.

3. Fill in the server details, click **"Next"**, then click **"Register Server"**.
4. The dialog closes and your new MCP server appears in the projects hub.

### Form fields

| Field | Required | Details |
|-------|----------|---------|
| **Name** | Yes | Minimum 2 characters. Displayed in the project list and sidebar navigation. |
| **Description** | No | Free-text summary of the server's purpose. |
| **Server URL** | No | The SSE endpoint for the MCP server. Must be a valid URL if provided. |

### Programmatically

Use the `saveMCPServer` mutation to create an MCP server via the API:

```graphql
mutation SaveMCPServer($meta: SaveMCPServerInput!) {
  saveMCPServer(meta: $meta) {
    server { id name transportType }
    meta { ok { message } error { message } }
  }
}
```

```json
{
  "meta": {
    "name": "Auth Tools Server",
    "description": "MCP server exposing authentication tools",
    "serverUrl": "https://mcp.example.com/sse"
  }
}
```

> **Tip**
>
> MCP servers support SSE (Server-Sent Events) transport by default. You can
> configure the transport type and endpoint after creation in the server settings.

## What happens after selecting a project

Clicking a project card selects it along with its pinned (or first) environment and navigates you to the **project dashboard**. The sidebar updates to show project-specific navigation: Overview, Identity Flows, Settings, and more.

For MCP servers, the dashboard shows server configuration, connected tools, and environment-specific endpoints.

> **Warning**
>
> Switching projects clears your current environment selection. If you had
> unsaved changes in a project's settings, they will be lost.

## Related

| Read | To learn how to |
|------|-----------------|
| [Tenants](/docs/console/tenants) | Create and manage tenant workspaces that contain projects |
| [Environments](/docs/console/environments) | Create and switch deployment environments for a project |
| [Sessions](/docs/console/sessions) | Configure JWT signing and token settings per environment |
| [Multi-tenancy](/docs/concepts/multi-tenancy) | Understand Tenant → Project → Environment isolation |
