> For the complete documentation index, see [llms.txt](https://docs.rhinofcp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rhinofcp.com/using-the-rhino-mcp-server/mcp-prerequisites-and-authentication.md).

# MCP Prerequisites and Authentication

How to authenticate to the Rhino MCP

This article covers authentication and, for some clients, an optional software prerequisite. Authentication uses OAuth 2.1 with PKCE — your credentials never appear in the AI chat and the assistant never sees your password.

***

## Optional: Install Node.js

Node.js is **not required to use the Rhino MCP server**. Most recommended clients — including Claude Desktop, Claude Code CLI, Cursor IDE, and VS Code — connect via native HTTP and have no additional dependencies.

{% hint style="info" %}
Node.js v18 or higher is only needed if you are connecting via **Windsurf** or another stdio-only client that uses the `mcp-remote` bridge. If none of the clients you are using require it, skip this section entirely.
{% endhint %}

{% tabs %}
{% tab title="macOS" %}

```auto
# Using Homebrew:
brew install node

# Or download the installer from:
# https://nodejs.org/en/download
```

{% endtab %}

{% tab title="Windows" %}

```auto
# Using winget:
winget install OpenJS.NodeJS

# Or download the .msi installer from:
# https://nodejs.org/en/download
```

{% endtab %}

{% tab title="Linux (Ubuntu / Debian)" %}

```auto
sudo apt update
sudo apt install nodejs npm

# Or use nvm:
# https://github.com/nvm-sh/nvm
```

{% endtab %}
{% endtabs %}

### Verify your installation

Run the following in your terminal. You should see **v18 or higher**.

```auto
node --version
```

***

## How Authentication Works

The MCP server uses **OAuth 2.1 with PKCE** — the same secure standard used by Google, GitHub, and other major platforms. The flow is automatic and works the same way across all supported clients:

1. **Add the server URL** — Configure your AI/LLM client with the MCP endpoint (see [Supported Clients](/using-the-rhino-mcp-server/mcp-supported-clients.md)).
2. **Browser login** — On the first tool call, OAuth opens your default browser and presents the Rhino MCP login page.
   1. You should log in with the same credentials you use to normally log in to the Rhino FCP via the dashboard UI.
3. **Token issued** — A secure token is returned to your AI client automatically.
4. **Ready to use** — All subsequent tool calls use the token without any further action needed.

Your credentials never appear in the AI chat window. The AI assistant never sees your password.

***

## Token Expiry

If your session token expires, you will see a `NOT_AUTHENTICATED` error. To resolve this, restart your AI client — the OAuth login flow will trigger automatically on the next tool call. No configuration changes are needed.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rhinofcp.com/using-the-rhino-mcp-server/mcp-prerequisites-and-authentication.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
