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

# MCP server overview

> Endpoint, transport, tools, scopes, and rate limits of the Auxilian MCP server.

The Auxilian MCP server lets AI assistants read and write Auxilian projects as the signed-in user. It runs the same operations as the web app, so permissions, limits, validation, and the activity log behave identically on both surfaces.

## Endpoint

| Property | Value |
| - | - |
| URL | `https://mcp.auxilian.ai/mcp` |
| Transport | Streamable HTTP, stateless, JSON responses (no SSE stream, no session id) |
| Authorization | OAuth 2.1 bearer token. See [Authorization](/mcp/authorization). |
| Server name | `auxilian` |

## Tools

| Tool | Scope | Kind | Purpose |
| - | - | - | - |
| [`list_projects`](/mcp/tools/list-projects) | `mcp:read` | Read | Projects you can access and your workspaces |
| [`list_tables`](/mcp/tools/list-tables) | `mcp:read` | Read | Every table in a project with its columns and foreign keys |
| [`describe_table`](/mcp/tools/describe-table) | `mcp:read` | Read | One table's columns and foreign keys |
| [`list_rows`](/mcp/tools/list-rows) | `mcp:read` | Read | Rows, with filters, sorting, and paging |
| [`create_project`](/mcp/tools/create-project) | `mcp:write` | Write | A new project in a workspace |
| [`create_table`](/mcp/tools/create-table) | `mcp:write` | Write | A new table, optionally with foreign keys |
| [`add_column`](/mcp/tools/add-column) | `mcp:write` | Write | A new column on a table |
| [`insert_rows`](/mcp/tools/insert-rows) | `mcp:write` | Write | Up to 100 rows |
| [`update_rows`](/mcp/tools/update-rows) | `mcp:write` | Write | Change rows that match filters |
| [`delete_rows`](/mcp/tools/delete-rows) | `mcp:write` | Destructive | Delete rows that match filters |
| [`drop_column`](/mcp/tools/drop-column) | `mcp:write` | Destructive | Remove a column and its data |
| [`drop_table`](/mcp/tools/drop-table) | `mcp:write` | Destructive | Remove a table and its rows |

Each tool carries MCP annotations: read tools set `readOnlyHint: true`, destructive tools set `destructiveHint: true`, and every tool sets `openWorldHint: false`. Clients use these to decide when to ask you before running a tool.

Operations that only exist in the web app: deleting projects, sharing projects, managing workspace members and invitations, renaming workspaces, exporting CSV, viewing the activity log, and deleting your account.

## Server instructions

On initialization, the server tells the assistant:

```text theme={null}
Auxilian gives you Postgres databases ("projects") owned by the user. Call
list_projects first, then list_tables/describe_table before touching rows.
Every change is attributed to the user and visible in the project Activity
log. Prefer small, reversible steps; drop_* and delete_rows cannot be undone.
```

## Identity and permissions

Every tool call runs as the user who approved the connection. The server applies that user's current workspace roles and project permissions on every call, so access changes take effect immediately. See [Permissions](/reference/permissions).

A project you can't access and a project that doesn't exist return the same error, `ACCESS_DENIED` with the message `Access denied`, so ids can't be probed.

## Rate limits

| Budget | Limit | Applies to |
| - | - | - |
| Calls | 300 per minute per user | Every tool call |
| Writes | 60 per minute per user | Write and destructive tools |

The write budget is shared with the web app. When a budget runs out, the call fails with `RATE_LIMITED`. Wait a minute and retry. Insert rows in batches of up to 100 to stay within the write budget.

## Typical call sequence

```mermaid theme={null}
sequenceDiagram
  participant A as Assistant
  participant S as Auxilian MCP
  A->>S: list_projects
  S-->>A: projects (id, permission, tables) and workspaces
  A->>S: describe_table(projectId, "books")
  S-->>A: columns and foreign keys
  A->>S: insert_rows(projectId, "books", rows)
  S-->>A: inserted rows with id and created_at
```

## Next steps

* [Responses and errors](/mcp/responses-and-errors) explains the result format.
* [Filters](/mcp/filters) explains row selection for `list_rows`, `update_rows`, and `delete_rows`.


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