Affinity MCP server

Connect Affinity to Claude, ChatGPT, Cursor, Claude Code, Codex, Gemini, GitHub Copilot and any other MCP client, for your whole team. Metorial adds security, governance, and tracing, and gives everyone one Magic MCP URL to connect.

What you can do with the Affinity MCP server

Ask your agent in plain language. Each of these maps to a real tool on the server.

  • Use the delete field value tool in Affinity
  • Use the set field value tool in Affinity
  • Use the get list entries tool in Affinity
  • Use the add list entry tool in Affinity
  • Use the update reminder tool in Affinity
  • Use the delete reminder tool in Affinity

Supported Tools

delete_field_value

Delete Field Value

Delete a field value from an entity in Affinity. This removes the custom field data for that entity.

set_field_value

Set Field Value

Create a new field value for an entity in Affinity. This sets a custom field's value on a person, organization, or opportunity. **Value formats by field type:** - **Text/Number**: String or number - **Date**: ISO 8601 date string - **Text/managed dropdown (type 2)**: A string value - **Ranked dropdown (type 7)**: The dropdown option ID from get_fields - **Person/Organization**: The entity ID - **Location**: Object with street_address, city, state and country.

get_list_entries

Get List Entries

Retrieve entries from a specific Affinity list. Each entry represents a person, organization, or opportunity added to the list. Use this to see what entities belong to a given list.

add_list_entry

Add List Entry

Add a person or organization to an Affinity list. Use get_lists to discover list IDs. Opportunity entries are created by create_opportunity. Adding an entry can activate configured list automations.

update_reminder

Update Reminder

Update an existing reminder in Affinity. Provide only the fields you want to change.

delete_reminder

Delete Reminder

Permanently delete a reminder from Affinity.

create_reminder

Create Reminder

Create a new reminder in Affinity, attached to a person, organization, or opportunity. Supports one-time and recurring reminders. **Reminder types:** 0 = one-time, 1 = recurring **Reset types (for recurring):** 0 = on interaction, 1 = on email, 2 = on meeting. Recurring reminders require reminderDays. Creating or updating a reminder may notify its owner.

update_opportunity

Update Opportunity

Update an existing opportunity (deal) in Affinity. Provide only the fields you want to change.

search_opportunities

Search Opportunities

Search for opportunity records by name. Optional listId filters each provider page locally. Continue with nextPageToken even if a filtered page is empty. Returns matching opportunities with their associations.

delete_organization

Delete Organization

Permanently delete an organization record from Affinity. Global organizations from the Affinity database cannot be deleted.

list_notes

List Notes

Retrieve notes from Affinity, optionally filtered by person, organization, or opportunity. Notes can contain plain text or HTML formatting.

search_organizations

Search Organizations

Search for organization records in Affinity by name or domain. Returns matching organizations with their domains and person associations.

get_organization

Get Organization

Retrieve a single organization record by ID, including its domains, person associations, and list memberships.

list_reminders

List Reminders

Retrieve reminders from Affinity, optionally filtered by entity or owner. Supports one-time and recurring reminders that can auto-reset based on interaction activity.

update_field_value

Update Field Value

Update an existing field value in Affinity. You must know the field value ID, which you can get from "Get Field Values".

delete_opportunity

Delete Opportunity

Permanently delete an opportunity (deal) from Affinity. This removes it from its list and deletes associated data.

create_opportunity

Create Opportunity

Create a new opportunity (deal) in Affinity. Each opportunity must belong to a specific list. Optionally associate people and organizations.

create_note

Create Note

Create a new note in Affinity and associate it with one or more persons, organizations, or opportunities. Supports plain text and HTML content.

search_persons

Search Persons

Search for person records in Affinity by name or email. Returns matching contacts with their email addresses and organization associations. Use this to find existing contacts before creating new ones.

get_field_value_changes

Get Field Value Changes

Retrieve the history of changes to a specific field in Affinity. Useful for auditing status transitions, tracking deal pipeline progress, and understanding how data has evolved over time.

get_lists

Get Lists

Retrieve all lists in Affinity. Lists function as customizable spreadsheets for organizing people, organizations, or opportunities. Use this to discover available lists and their IDs for use with other tools.

create_person

Create Person

Create a new person record in Affinity. You must provide a first and last name, and can optionally include email addresses and organization associations.

update_organization

Update Organization

Update an existing organization record in Affinity. Provide only the fields you want to change. Global organizations (from the Affinity database) cannot be renamed.

get_person

Get Person

Retrieve a single person record by ID, including their emails, organization associations, and optionally interaction dates.

create_organization

Create Organization

Create a new organization record in Affinity. Provide a name and optionally a domain and person associations. If an organization with the same domain already exists in the global database, it may be linked automatically.

get_fields

Get Fields

Retrieve field definitions (custom columns) from Affinity. Fields can be global or specific to a list. Use this to discover available fields and their IDs before reading or writing field values. **Value types:** - **0** = Person, **1** = Organization, **2** = Single-line text or dropdown, **3** = Number, **4** = Date, **5** = Location, **6** = Long text, **7** = Ranked dropdown

get_entity_files

Get Entity Files

Retrieve files attached to a person, organization, or opportunity in Affinity. Lists file metadata including name, size, and uploader.

get_opportunity

Get Opportunity

Retrieve a single opportunity (deal) record by ID, including its list membership, person associations, and organization associations.

remove_list_entry

Remove List Entry

Remove a list entry. Person and organization records remain; deleting an opportunity entry also deletes its opportunity. This may activate configured list automations.

delete_person

Delete Person

Permanently delete a person record from Affinity. This also removes them from all lists and deletes associated data.

get_interactions

Get Interactions

Retrieve interaction metadata from Affinity for one external person, organization or opportunity, one type and a date range of no more than one year. Email bodies may not be returned. **Interaction types:** - **0** = Meeting - **1** = Call - **2** = Chat message - **3** = Email

update_person

Update Person

Update an existing person record in Affinity. Provide only the fields you want to change. Emails and organization associations will be replaced entirely if provided.

update_note

Update Note

Update the content of an existing note in Affinity.

get_relationship_strengths

Get Relationship Strengths

Query relationship strength scores between internal team members and external contacts. Scores are computed from email, call, and meeting activity and are recalculated daily. Useful for identifying who on your team has the strongest connection to a given contact.

delete_note

Delete Note

Permanently delete a note from Affinity.

get_field_values

Get Field Values

Retrieve field values (custom data) for entities in Affinity. Filter by person, organization, opportunity, list entry, or specific field. Returns all custom field data associated with the entity.

download_entity_file

Download Entity File

Download an accessible file attached to an Affinity person, organization or opportunity. Call get_entity_files to discover file IDs.

get_current_user

Get Current User

Identify the authenticated Affinity user, account and API grant without changing records.

Connect Affinity to your AI client

Every client uses the same Magic MCP URL, and so does any other MCP client. Add it once and sign in with SSO.

  1. Enable Affinity in Metorial. In your Metorial portal, enable the Affinity MCP server and sign in with the account that owns the data. Access stays governed by your team policies.
  2. Add a custom connector. Open Customize, then Connectors. Select Add, then Custom, then Web.
  3. Paste your Metorial MCP URL. Name it Metorial, paste your Magic MCP URL (<your-magic-mcp-url>) and continue.
  4. Sign in. Select Add and sign in to load Affinity tools.

Run Affinity through the Metorial gateway

One governed layer for every app your agents reach, not a separate connector per tool.

  • Give Affinity and every other app to your whole team through one MCP gateway, behind your SSO.
  • Scope which teams and agents can use Affinity tools with role-based access control, and trace every call.
  • Prefer to run it yourself? Metorial is open source and self-hostable.

More integrations teams use with Affinity

Slack

Slack: connect with bot OAuth or user OAuth to work with messages, conversations, search, files, Canvases, Lists, profiles, reactions, reminders, and workspace productivity settings.

Salesforce

Manage CRM data including Accounts, Contacts, Leads, Opportunities, Cases, and custom objects. Create, read, update, and delete records. Query data using SOQL and search across objects using SOSL. Perform bulk data operations for large-scale imports, exports, and migrations. Execute composite requests to batch multiple operations in a single API call. Access analytics, reports, and dashboards. Manage files and attachments associated with records. Interact with Chatter feeds, posts, and groups for social collaboration. Manage org metadata including custom objects, fields, layouts, and workflows. Query data using GraphQL for precise data retrieval across related objects.

Apolloio

Search and prospect B2B contacts and companies from a database of over 275 million people and 70 million organizations. Enrich people and company data with emails, phone numbers, and firmographic details. Create and manage contacts, accounts, deals, and tasks. Add contacts to email sequences and manage sequence statuses. Log and search call records. Perform bulk operations for contact creation, account creation, task creation, and data enrichment.

Sharepoint

Manage SharePoint sites, document libraries, lists, and files. Create, read, update, and delete lists and list items with custom columns. Resolve site users to numeric Person/Group LookupId values. Upload, download, move, copy, and version files in document libraries. Search across sites, files, folders, lists, and list items using Microsoft Search. Manage permissions at site, list, and item levels with granular access control. Define and manage content types and site columns. Retrieve site properties and search for sites across Microsoft 365.

Microsoft Outlook

Send, read, reply to, forward, and manage email messages in user mailboxes. Organize messages into folders, apply categories, flags, and importance levels. Manage file and item attachments. Create, update, delete, and respond to calendar events and meetings. Find available meeting times, manage attendees, handle recurrence, and work with shared or delegated calendars. Create, read, update, and delete contacts, organize them into contact folders, and manage contact photos. Manage tasks and task lists via Microsoft To Do, including due dates, reminders, recurrence, and checklist items. Support for Focused Inbox, @-mentions, mail tips, send-on-behalf, and send-as capabilities.

Hubspot

Create, read, update, and delete CRM objects including contacts, companies, deals, tickets, and custom objects. Manage associations between CRM records. Track engagements such as calls, emails, meetings, notes, and tasks. Send transactional and marketing emails, manage campaigns, and handle subscription preferences. Build and manage marketing workflows, sequences, and automation actions. Manage CMS content including blog posts, landing pages, and HubDB tables. Handle commerce data including products, orders, invoices, quotes, and payments. Create and manage contact lists for segmentation. Configure deal, ticket, and order pipelines with custom stages. Search and filter CRM records. Bulk import and export CRM data. Manage users, teams, and account settings.

Technical notes for Affinity

Manage Affinity people, organizations, opportunities, notes, reminders, list entries and field values. Read lists, field definitions, interaction metadata and relationship strengths. Inspect the current API user and download existing entity files.

Frequently asked questions

Common questions about connecting Affinity to AI agents with Metorial.

  1. How many tools does the Affinity MCP server have?
    The Affinity MCP server exposes 38 tools, including Delete Field Value, Set Field Value, Get List Entries. Each one is governed and traced through Metorial.
  2. Affinity exposes tools your agents call on demand; it does not publish event triggers yet. Everything still runs through one governed MCP URL.
  3. Any MCP client, including VS Code, Windsurf, Zed, OpenCode and Grok. Each one reaches the Affinity MCP server through the same Metorial URL.
  4. Use role-based access control to decide which teams, users, and agents can use Affinity and which of its tools they can call.
  5. Yes. Metorial is open source, so you can run the Affinity MCP server yourself or use the hosted gateway.

Connect Affinity to production AI agents

See how Metorial gives your team governed access to Affinity, with tracing and security controls built in.