Twenty MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.36.5Updated Nov 8, 2026

Read people, companies, opportunities, notes and tasks; create and update records in Twenty CRM.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Hosted MCP server for Twenty CRM that lets an assistant read, create and update people, companies, opportunities, notes and tasks.

What you can do
  • Inspect the Twenty schema to discover standard and custom objects and field names
  • List and fetch people, companies, opportunities, notes and tasks with filtering, ordering, pagination and relation depth
  • Create and update people, companies, opportunities, notes and tasks
  • Check monthly tool-call usage, request a missing feature, and manage a paid subscription
When to use it
Useful when you want an assistant to answer questions about your Twenty CRM data or to add and edit CRM records from a chat client, without installing anything locally.
Requirements
Remote endpoint at twenty.usefulapi.io/mcp added as a remote MCP server; no local runtime. Sign-in is via OAuth, and on first connect you supply your Twenty API key (Settings, APIs and Webhooks), which is stored per user. No API key or Authorization header goes in the client config.
Before you install
Write tools create and change CRM records, so confirm before running them. Your Twenty API key is handed to a third-party host and stored per user. The free plan allows 50 tool calls a month; paid plans cost money and are billed through a Stripe checkout link, with no refund for the current period on cancellation.

Installation

In SourceWeft

  1. Open Twenty MCP by usefulapi in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.usefulapi%2Ftwenty/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "twenty-by-usefulapi": {
      "type": "http",
      "url": "https://twenty.usefulapi.io/mcp"
    }
  }
}

README

Twenty MCP by usefulapi

Use your Twenty account from Claude, Cursor, or any MCP client — read people, companies, opportunities, notes and tasks, and create or update CRM records. Hosted, no local install: connect with your own credentials.

Live endpoint: https://twenty.usefulapi.io/mcp · Homepage: https://usefulapi.io

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://twenty.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http twenty https://twenty.usefulapi.io/mcp, then run /mcp to log in.
  • VS Code: Add to VS Code.
  • Cursor and other clients: add the URL as a remote MCP server:
json
{  "mcpServers": {    "twenty": {      "url": "https://twenty.usefulapi.io/mcp"    }  }}

Add only the URL. Do not add an Authorization header or an API key to the client config: the server signs you in with OAuth, and the login page asks for your Twenty credentials.

Step-by-step setup, where to find your credentials, and FAQ: https://usefulapi.io/twenty/

On first connect you'll provide your Twenty API key (Settings → APIs & Webhooks). It is validated, stored per-user, and scoped to you — no keys in config files.

Tools

ToolTypeWhat it does
twenty_list_metadata_objectsreadList metadata objects
twenty_list_peoplereadList people
twenty_get_personreadGet person
twenty_list_companiesreadList companies
twenty_get_companyreadGet company
twenty_list_opportunitiesreadList opportunities
twenty_get_opportunityreadGet opportunity
twenty_list_notesreadList notes
twenty_get_notereadGet note
twenty_list_tasksreadList tasks
twenty_get_taskreadGet task
twenty_create_personwriteCreate person
twenty_update_personwriteUpdate person
twenty_create_companywriteCreate company
twenty_update_companywriteUpdate company
twenty_create_opportunitywriteCreate opportunity
twenty_update_opportunitywriteUpdate opportunity
twenty_create_notewriteCreate note
twenty_create_taskwriteCreate task
twenty_update_taskwriteUpdate task
twenty_usage_statusmetaUsage status (free-tier meter)
twenty_request_featuremetaRequest a missing feature
twenty_upgrademetaUpgrade to Pro or Pro+
twenty_cancel_subscriptionmetaCancel the Pro subscription

read tools are read-only; write tools mutate data (clients should confirm them); meta tools report usage, manage your subscription or send a feature request.

Pricing

PlanPriceLimit
Free$050 tool calls / month
Pro$9/mo or $90/yr (2 months free)Unlimited*

*Pro has a fair use limit of 10,000 tool calls a month on this server. For more, write to [email protected].

Pro covers this server only. Subscribe with twenty_upgrade (it returns a Stripe Checkout link). Cancel any time with twenty_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running twenty_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT — see LICENSE. Documentation only; the server is hosted.

Source: servers/twenty/README.md at commit 4046075

Tools

20

twenty_list_metadata_objects

List metadata objects

List all objects (standard + custom) and their fields from the Twenty schema — use this to discover custom objects/fields and valid field names. Twenty REST: GET /rest/metadata/objects.

Takes no parameters.

twenty_list_people

List people

List/filter people (contacts). Supports cursor pagination, raw filter/order_by, and relation depth. Twenty REST: GET /rest/people.

Parametersdepthlimitfilterorder_byending_beforestarting_after

twenty_get_person

Get person

Get a single person (contact) by id. Twenty REST: GET /rest/people/{id}.

Parametersidrequireddepth

twenty_list_companies

List companies

List/filter companies. Supports cursor pagination, raw filter/order_by, and relation depth. Twenty REST: GET /rest/companies.

Parametersdepthlimitfilterorder_byending_beforestarting_after

twenty_get_company

Get company

Get a single company by id. Twenty REST: GET /rest/companies/{id}.

Parametersidrequireddepth

twenty_list_opportunities

List opportunities

List/filter opportunities (deals). Supports cursor pagination, raw filter/order_by, and relation depth. Twenty REST: GET /rest/opportunities.

Parametersdepthlimitfilterorder_byending_beforestarting_after

twenty_get_opportunity

Get opportunity

Get a single opportunity by id. Twenty REST: GET /rest/opportunities/{id}.

Parametersidrequireddepth

twenty_list_notes

List notes

List/filter notes. Supports cursor pagination, raw filter/order_by, and relation depth. Twenty REST: GET /rest/notes.

Parametersdepthlimitfilterorder_byending_beforestarting_after

twenty_get_note

Get note

Get a single note by id. Twenty REST: GET /rest/notes/{id}.

Parametersidrequireddepth

twenty_list_tasks

List tasks

List/filter tasks. Supports cursor pagination, raw filter/order_by, and relation depth. Twenty REST: GET /rest/tasks.

Parametersdepthlimitfilterorder_byending_beforestarting_after

twenty_get_task

Get task

Get a single task by id. Twenty REST: GET /rest/tasks/{id}.

Parametersidrequireddepth

twenty_create_person

Create person

Create a new person (contact). All fields optional; firstName/lastName combine into name:{firstName,lastName}. Twenty REST: POST /rest/people.

ParameterscityxUrlextrajobTitlelastNamecompanyIdfirstNamelinkedinUrlprimaryEmailprimaryPhone

twenty_update_person

Update person

Update fields on an existing person. Only provided fields change. Twenty REST: PATCH /rest/people/{id}.

ParametersidrequiredcityxUrlextrajobTitlelastNamecompanyIdfirstNamelinkedinUrlprimaryEmailprimaryPhone

twenty_create_company

Create company

Create a new company. `name` is required. Twenty REST: POST /rest/companies.

ParametersnamerequiredxUrlextraemployeesdomainNameaddressCitylinkedinUrlidealCustomerProfile

twenty_update_company

Update company

Update fields on an existing company. Only provided fields change. Twenty REST: PATCH /rest/companies/{id}.

ParametersidrequirednamexUrlextraemployeesdomainNameaddressCitylinkedinUrlidealCustomerProfile

twenty_create_opportunity

Create opportunity

Create a new opportunity (deal). `name` is required; amountMicros combines with currencyCode into amount:{amountMicros,currencyCode}. Twenty REST: POST /rest/opportunities.

ParametersnamerequiredextrastagecloseDatecompanyIdamountMicroscurrencyCodepointOfContactId

twenty_update_opportunity

Update opportunity

Update fields on an existing opportunity. Only provided fields change. Twenty REST: PATCH /rest/opportunities/{id}.

ParametersidrequirednameextrastagecloseDatecompanyIdamountMicroscurrencyCodepointOfContactId

twenty_create_note

Create note

Create a note. `title` is required; `body` holds the note content. (Attaching to records via noteTargets is out of scope.) Twenty REST: POST /rest/notes.

Parametersbodyextratitlerequired

twenty_create_task

Create task

Create a task. `title` is required. Twenty REST: POST /rest/tasks.

ParametersbodydueAtextratitlerequiredstatusassigneeId

twenty_update_task

Update task

Update fields on an existing task. Only provided fields change. Twenty REST: PATCH /rest/tasks/{id}.

ParametersidrequiredbodydueAtextratitlestatusassigneeId

Version history

22
  1. v1.36.5LatestNov 8, 2026
  2. v1.36.4Nov 7, 2026
  3. v1.35.3Nov 5, 2026
  4. v1.35.2Nov 5, 2026
  5. v1.35.1Nov 4, 2026
  6. v1.35.0Nov 3, 2026
  7. v1.34.1Nov 3, 2026
  8. v1.33.0Nov 1, 2026
  9. v1.31.0Oct 31, 2026
  10. v1.30.0Oct 31, 2026
  11. v1.29.2Oct 30, 2026
  12. v1.29.0Oct 30, 2026
  13. v1.24.0Oct 26, 2026
  14. v1.21.3Oct 25, 2026
  15. v1.21.0Oct 25, 2026
  16. v1.20.0Oct 24, 2026
  17. v1.17.0Oct 23, 2026
  18. v1.16.4Oct 22, 2026
  19. v1.16.3Oct 21, 2026
  20. v1.11.1Oct 9, 2026
  21. v1.10.0Oct 9, 2026
  22. v1.0.0Sep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Usefulapi integrations