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

# MCP Server

> Enable a per-project MCP Server so your project's users and agents can query its data from an AI assistant. It is data-only, inherits each user's project roles, and you configure its identity and tools.

The **MCP Server** is a per-project connector for your project's own data. Once enabled, your users and their AI agents connect from a tool like Claude, Cursor, or ChatGPT and work with that project's data — governed by each user's project role, and limited to a **data-only** set of tools.

It is separate from the [Archie MCP](https://archie.com/docs/features/backend/app-services/mcp-server/archie-mcp): the Archie MCP manages the platform; this one is scoped to a single project.

## Enable it

**1. Open the panel**

Go to **Backend → App Services → MCP Server**.

**2. Turn it on**

Toggle the MCP Server **on**. The connection details and configuration appear below the toggle.

> [!NOTE]
>
> Enabling the MCP Server does **not** open your data to everyone. Every request still authenticates as a specific user and runs with that user's [project roles](https://archie.com/docs/features/backend/app-services/role-based-access.md). Enabling it only makes the connector *available*; access is still governed by your permissions.

## Server identity

Give the server a **name, icon, and description**. These are optional — leave them blank to use the defaults.

| Field | What it does | Notes |
| - | - | - |
| **Name** | The name assistants show for this connector. | Shown by most clients (for example, as the connector's title). |
| **Icon** | An emoji or an `https` URL to a logo image. | Used in Archie's UI and, when you publish to an assistant's directory, as the listing logo. Assistants that add the server by URL usually show a letter avatar regardless. |
| **Description** | A short description of what this server gives access to. | Sent to the assistant as context (it shapes how the model uses the server); it is not shown as a label in every client's UI. |

Edit the fields and click **Save**.

## Authentication

How users connect depends on the [authentication providers](https://archie.com/docs/features/backend/app-services/authentication-providers/overview.md) your project has enabled. The panel adapts the connection instructions to match:

**Sign-in (identity)**

If your project uses an identity provider (Archie Auth, Google, Microsoft, and so on), connecting **opens a login window**. The user signs in with their project account — there is no token to paste. After sign-in, the assistant acts with that user's project role.

**API key**

If your project uses API keys, the user authenticates with a **project API key** sent as an `Authorization: Bearer` header. Create keys under **Backend → App Services → Authentication Providers**. The connection config the panel shows already includes the header — the user just replaces the placeholder with their key.

> [!WARNING]
>
> If no authentication provider is active on the project, users can't connect. Enable at least one under [Authentication Providers](https://archie.com/docs/features/backend/app-services/authentication-providers/overview.md) first.

## Tools

The MCP Server exposes a **data-only** tool set. Assistants use these to understand your API and work with your data — never to administer the platform. Clients group them as **read-only** or **write**:

| Tool | Type | What it does |
| - | - | - |
| `list_operations` | Read | Lists the queries and mutations in your project's GraphQL API (schema introspection). |
| `get_field_details` | Read | Returns the fields and arguments of a type, so the assistant can build a valid query. |
| `semantic_search` | Read | Searches your data by meaning, when [vector search](https://archie.com/docs/features/backend/data-model/data-viewer.md) is enabled. |
| `read_archie_docs` | Read | Looks up Archie product documentation. |
| `get_context` | Read | Returns the current project and environment scope for the session. |
| `execute_graphql_operation` | Write | Runs a GraphQL query or mutation against your project — governed by the user's role and `ALLOW_MUTATIONS`. |
| `set_context` | Write | Session-local scope helper. |

> [!NOTE]
>
> The exposed set is the intersection of this built-in floor and your own selection: you can **turn a tool off** to withhold it, but you can't add tools beyond the data-only floor. Administrative and platform tools are never available here.

To narrow the set, toggle individual tools off in the panel. An empty selection uses the full data-only floor.

## Permissions

The MCP Server never widens access. A connected user acts with their **own** project role:

* [Role-Based Access](https://archie.com/docs/features/backend/app-services/role-based-access.md) decides which operations and tables the user can touch.
* [Row-level filters](https://archie.com/docs/features/backend/app-services/row-level-filters.md) apply exactly as they do on the GraphQL API.
* Mutations run only when the user's role allows the write **and** the environment permits mutations.

This is the same authorization the GraphQL API enforces — the MCP is just another authenticated caller.

## Next step

Ready to connect a tool? See [Connecting an assistant](https://archie.com/docs/features/backend/app-services/mcp-server/connecting).

## FAQ

> **Does enabling the MCP Server expose all my data?**
>
> No. Every request authenticates as a specific user and runs with that user's project role and row-level filters. The connector is data-only and never exposes platform or admin operations.

> **Is this the same as the Archie MCP?**
>
> No. The [Archie MCP](https://archie.com/docs/features/backend/app-services/mcp-server/archie-mcp) manages the platform across all your projects. The MCP Server is scoped to one project and works with that project's data.

> **Can users write data, or only read it?**
>
> Both, within their permissions. Writes go through `execute_graphql_operation` and are allowed only when the user's role permits the mutation and the environment allows mutations. Read-only and write tools are grouped separately so clients can require approval for writes.

> **Why doesn't my icon show up in the assistant?**
>
> Most assistants show a letter avatar for a connector added by URL — the per-server icon mainly matters when you publish the connector to that assistant's directory. The name is what assistants display; the description is sent to the model as context rather than shown as a label.

> **Is the configuration per environment?**
>
> Yes. Enablement, identity, and the tool selection are stored per project **and** environment.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.