View as Markdown

Attio Integration

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:

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

Setup

1. Create an Attio OAuth App

  1. Go to App Developer Portal
  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:

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:

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:

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:

import { createMCPClient, attioIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [attioIntegration()],
});

Configuration Options

export interface AttioIntegrationConfig {
  clientId?: string;

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

export type AttioQueryPeopleParams = Record<string, unknown>;

attio_get_person

Get person

export type AttioGetPersonParams = Record<string, unknown>;

attio_create_person

Create person

export type AttioCreatePersonParams = Record<string, unknown>;

attio_update_person

Update person

export type AttioUpdatePersonParams = Record<string, unknown>;

attio_assert_person

Assert person

export type AttioAssertPersonParams = Record<string, unknown>;

attio_query_companies

Query companies

export type AttioQueryCompaniesParams = Record<string, unknown>;

attio_get_company

Get company

export type AttioGetCompanyParams = Record<string, unknown>;

attio_create_company

Create company

export type AttioCreateCompanyParams = Record<string, unknown>;

attio_update_company

Update company

export type AttioUpdateCompanyParams = Record<string, unknown>;

attio_assert_company

Assert company

export type AttioAssertCompanyParams = Record<string, unknown>;

attio_list_tasks

List tasks

export type AttioListTasksParams = Record<string, unknown>;

attio_get_task

Get task

export type AttioGetTaskParams = Record<string, unknown>;

Notes

  • Category: Business
  • Authentication mode: OAuth