---
title: "Attio Integration"
description: "Manage Attio people, companies, records, and tasks"
---
The Attio integration provides access to manage Attio people, companies, records, and tasks through the Integrate MCP server.

## Installation

The Attio integration is included with the SDK:

```typescript
import { attioIntegration } from "integrate-sdk/server";
```

## Setup

### 1. Create an Attio OAuth App

1. Go to [App Developer Portal](https://app.attio.com)
2. Create a new OAuth application
3. Configure your redirect URI
4. Note your Client ID and Client Secret

### 2. Configure the Integration on Your Server

Add the Attio integration to your server configuration. The integration automatically reads `ATTIO_CLIENT_ID` and `ATTIO_CLIENT_SECRET` from your environment variables:

```typescript
import { createMCPServer, attioIntegration } from "integrate-sdk/server";

export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    attioIntegration({
      scopes: ["record_permission:read-write", "object_configuration:read", "user_management:read", "task:read"], // Optional
    }),
  ],
});
```

You can override the environment variables by passing explicit values:

```typescript
attioIntegration({
  clientId: process.env.CUSTOM_ATTIO_ID,
  clientSecret: process.env.CUSTOM_ATTIO_SECRET,
      scopes: ["record_permission:read-write", "object_configuration:read", "user_management:read", "task:read"], // Optional
});
```

### 3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

```typescript
import { client } from "integrate-sdk";

await client.authorize("attio");
const result = await client.attio.getSelf({});

console.log(result);
```

If you're using a custom client, add the integration to the integrations array:

```typescript
import { createMCPClient, attioIntegration } from "integrate-sdk";

const customClient = createMCPClient({
  integrations: [attioIntegration()],
});
```

## Configuration Options

<AutoTypeTable
  path="../src/integrations/attio.ts"
  name="AttioIntegrationConfig"
/>


## Default Scopes

These defaults are applied unless you override `scopes` in the integration config:

- `record_permission:read-write`
- `object_configuration:read`
- `user_management:read`
- `task:read`

## Tools

### `attio_get_self`

Get self

_No parameters._

### `attio_query_people`

Query people

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioQueryPeopleParams"
/>

### `attio_get_person`

Get person

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioGetPersonParams"
/>

### `attio_create_person`

Create person

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioCreatePersonParams"
/>

### `attio_update_person`

Update person

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioUpdatePersonParams"
/>

### `attio_assert_person`

Assert person

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioAssertPersonParams"
/>

### `attio_query_companies`

Query companies

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioQueryCompaniesParams"
/>

### `attio_get_company`

Get company

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioGetCompanyParams"
/>

### `attio_create_company`

Create company

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioCreateCompanyParams"
/>

### `attio_update_company`

Update company

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioUpdateCompanyParams"
/>

### `attio_assert_company`

Assert company

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioAssertCompanyParams"
/>

### `attio_list_tasks`

List tasks

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioListTasksParams"
/>

### `attio_get_task`

Get task

<AutoTypeTable
  path="generated/tool-params/attio.ts"
  name="AttioGetTaskParams"
/>

## Notes

- Category: Business
- Authentication mode: OAuth
