Plutio MCP by usefulapi

io.usefulapiPublished by usefulapi.ioOfficial publisherv1.11.3Updated Nov 7, 2026

Manage Plutio clients, projects, tasks, time entries and invoices.

The publisher's own server: Ably MCP by usefulapi

VerifiedStreamable HTTPWeb executableProductivity & WorkflowFinanceBusiness & Commerce

Overview

AI-generated overview

Read and write Plutio workspace data — clients, projects, tasks, time entries, invoices and more — from an AI assistant.

What you can do
  • Read workspace settings, people, companies and custom fields
  • List projects, task boards, task groups, tasks, statuses and time entries
  • Browse calendar events, schedulers, notes, comments, conversations and wiki pages
  • List invoices, recurring invoices, transactions, proposals, contracts, forms and form responses
  • Read document blocks (contract, proposal and invoice text and line items)
  • Create people, companies, projects, tasks, time entries, comments, events and draft invoices, and update tasks
When to use it
Useful when you work in Plutio and want an assistant to answer questions about open projects, overdue tasks, unpaid invoices or logged time, or to add tasks, log time and draft invoices without switching apps.
Requirements
Remote MCP endpoint; no package or local runtime. Sign-in is via OAuth with your Plutio credentials; the README also mentions connecting with a Plutio Client ID and Client Secret plus workspace subdomain. The API client acts with the access of the person who created it. A free tier allows 50 tool calls per month; paid plans raise the limit.
Before you install
Write tools create and change Plutio data (people, companies, projects, tasks, time entries, comments, events, draft invoices and line items); confirm before running them. Comments are visible to everyone who can see the record. The server is a third-party proxy for your Plutio workspace, so your data passes through it. Paid plans are billed through Stripe checkout links, and cancellation gives no refund for the current period.

Installation

In SourceWeft

  1. Open Plutio 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%2Fplutio/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": {
    "plutio-by-usefulapi": {
      "type": "http",
      "url": "https://plutio.usefulapi.io/mcp"
    }
  }
}

README

Plutio MCP by usefulapi

Live endpoint: https://plutio.usefulapi.io/mcp

Connect

  • Claude (claude.ai, Desktop): open Customize → Connectors, click + Add → Add custom connector, and paste https://plutio.usefulapi.io/mcp.
  • Claude Code: claude mcp add --transport http plutio https://plutio.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": {    "plutio": {      "url": "https://plutio.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 Plutio credentials.

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

Connect with the Client ID and Client Secret from Settings → API in Plutio, plus your workspace subdomain. The API client uses the access of the person who created it.

Tools

ToolTypeWhat it does
plutio_get_workspacereadGet workspace
plutio_list_peoplereadList people
plutio_list_companiesreadList companies
plutio_list_projectsreadList projects
plutio_list_task_boardsreadList task boards
plutio_list_task_groupsreadList task groups
plutio_list_tasksreadList tasks
plutio_list_statusesreadList statuses
plutio_list_time_entriesreadList time entries
plutio_list_categoriesreadList categories
plutio_list_eventsreadList events
plutio_list_schedulersreadList schedulers
plutio_list_invoicesreadList invoices
plutio_list_invoice_subscriptionsreadList recurring invoices
plutio_list_transactionsreadList transactions
plutio_list_proposalsreadList proposals
plutio_list_contractsreadList contracts
plutio_list_formsreadList forms
plutio_list_form_responsesreadList form responses
plutio_list_notesreadList notes
plutio_list_commentsreadList comments
plutio_list_conversationsreadList conversations
plutio_list_wiki_pagesreadList wiki pages
plutio_list_filesreadList files
plutio_list_foldersreadList folders
plutio_list_custom_fieldsreadList custom fields
plutio_get_document_blocksreadGet document blocks
plutio_create_personwriteCreate person
plutio_create_companywriteCreate company
plutio_create_projectwriteCreate project
plutio_create_taskwriteCreate task
plutio_update_taskwriteUpdate task
plutio_log_timewriteLog time
plutio_create_commentwriteComment on a task
plutio_create_eventwriteCreate event
plutio_create_invoicewriteCreate draft invoice
plutio_add_invoice_itemswriteAdd invoice line items
plutio_usage_statusmetaUsage status (free-tier meter)
plutio_request_featuremetaRequest a missing feature
plutio_upgrademetaUpgrade to Pro or Pro+
plutio_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 (per workspace)$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 plutio_upgrade (it returns a Stripe Checkout link). Cancel any time with plutio_cancel_subscription: Pro continues to the end of the paid period, with no refund for the current period, and running plutio_upgrade before then undoes the cancel. Or write to [email protected].

License

MIT

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

Tools

37

plutio_get_workspace

Get workspace

The Plutio workspace this API client is connected to: name, domain, currency, locale, timezone and settings. GET /businesses.

Takes no parameters.

plutio_list_people

List people

People: clients and your own team members (name, role, contactEmails, contactPhones, companies). Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /people.

Parametersidroleskipsortlimitqueryfilters

plutio_list_companies

List companies

Companies (clients that group people): title, industry, people, contact details. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /companies.

Parametersidskipsortlimitqueryfilters

plutio_list_projects

List projects

Projects: name, client, status, dates, budget, billing rate. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /projects.

ParametersidskipsortlimitqueryfiltersstatusIdstatusTitle

plutio_list_task_boards

List task boards

Task boards of projects. A project has one or more boards that hold tasks. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /task-boards.

ParametersidskipsortlimitqueryfiltersprojectId

plutio_list_task_groups

List task groups

Task groups (columns/lists on a task board). Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /task-groups.

ParametersidskipsortlimitqueryfilterstaskBoardId

plutio_list_tasks

List tasks

Tasks: title, status (incomplete, completed, overdue), dueDate, assignedTo, projectId, taskBoardId. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /tasks.

ParametersidskipsortlimitquerystatusfiltersprojectIdtaskBoardIdtaskGroupId

plutio_list_statuses

List statuses

Custom statuses (for projects and similar records): title, type, entityType. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /statuses.

Parametersidskipsortlimitqueryfilters

plutio_list_time_entries

List time entries

Time entries: personId, projectId, taskId, startedAt, stoppedAt, time in seconds, billing amount and rate. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /time-tracks.

ParametersidskipsortlimitquerytaskIdfilterspersonIdprojectId

plutio_list_categories

List categories

Categories used to organize records such as time entries and transactions. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /categories.

Parametersidskipsortlimitqueryfilters

plutio_list_events

List events

Calendar events: title, startDate, endDate, location, participants. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /events.

Parametersidskipsortlimitqueryfilters

plutio_list_schedulers

List schedulers

Scheduling pages (booking links) and their settings. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /scheduler.

Parametersidskipsortlimitqueryfilters

plutio_list_invoices

List invoices

Invoices: name, client, status (draft, pending, paid and so on), amount, amountPaid, currency, dueDate, issueDate. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /invoices.

Parametersidskipsortlimitquerystatusfilters

plutio_list_invoice_subscriptions

List recurring invoices

Recurring invoice subscriptions: client, schedule, amount. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /invoice-subscriptions.

Parametersidskipsortlimitqueryfilters

plutio_list_transactions

List transactions

Payments and expenses: amount, currency, client, invoiceId, status, type, issueDate. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /transactions.

Parametersidskipsortlimitqueryfilters

plutio_list_proposals

List proposals

Proposals: name, client, status, amount. The text is in blocks: see plutio_get_document_blocks. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /proposals.

Parametersidskipsortlimitqueryfilters

plutio_list_contracts

List contracts

Contracts: name, client, status, signatures. The text is in blocks: see plutio_get_document_blocks. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /contracts.

Parametersidskipsortlimitqueryfilters

plutio_list_forms

List forms

Forms (intake forms, questionnaires): name and status. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /forms.

Parametersidskipsortlimitqueryfilters

plutio_list_form_responses

List form responses

Submitted responses to forms. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /form-responses.

ParametersidskipsortlimitqueryformIdfilters

plutio_list_notes

List notes

Notes: title, descriptionHTML, entityType and entityId of the record they belong to. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /notes.

Parametersidskipsortlimitqueryfilters

plutio_list_comments

List comments

Comments on tasks, files and conversations: bodyHTML, createdBy, entityType, entityId. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /comments.

ParametersidskipsortlimitqueryfiltersentityIdentityType

plutio_list_conversations

List conversations

Inbox conversations: subject, participants, last message. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /conversations.

Parametersidskipsortlimitqueryfilters

plutio_list_wiki_pages

List wiki pages

Pages of the Plutio wiki / knowledge base. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /wiki-entities.

Parametersidskipsortlimitqueryfilters

plutio_list_files

List files

File records (name, size, folder, sharing). File contents are not downloaded. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /files.

Parametersidskipsortlimitqueryfilters

plutio_list_folders

List folders

File folders. Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /file-folders.

Parametersidskipsortlimitqueryfilters

plutio_list_custom_fields

List custom fields

Custom field definitions (label, type, which records they apply to). Returns { count, next_skip, items }; pass next_skip as skip for the next page. Pass id to read one record. Filter with exact-match fields or a MongoDB-style query. GET /custom-fields.

Parametersidskipsortlimitqueryfilters

plutio_get_document_blocks

Get document blocks

The content blocks of a contract, proposal or invoice: the written text (textHTML) and, for invoices, the line items. A document record only holds block ids. GET /blocks (entityType and entityId are both required).

ParametersentityIdrequiredentityTyperequired

plutio_create_person

Create person

WRITE: add a person (a client by default) to the workspace. Returns the new record with its _id. POST /people.

ParametersroleemaillastNamefirstNamerequired

plutio_create_company

Create company

WRITE: add a company, optionally linking existing people to it. Returns the new record. POST /companies.

ParameterstitlerequiredindustrypersonIds

plutio_create_project

Create project

WRITE: create a project. Plutio gives it a default status and a first task board (find it with plutio_list_task_boards). Returns the new record. POST /projects.

ParametersnamerequireddueDateclientIdstartDateclientTypedescriptionHTML

plutio_create_task

Create task

WRITE: add a task to a project's task board. Get taskBoardId from plutio_list_task_boards (projectId filter). New tasks start as incomplete. Returns the new record. POST /tasks.

ParameterstitlerequireddueDateprojectIdrequiredtaskBoardIdrequiredtaskGroupIddescriptionHTML

plutio_update_task

Update task

WRITE: change a task's title, status (incomplete, completed, overdue), due date or description. Only the fields you pass change. Returns the updated record. PUT /tasks.

ParametersidrequiredtitlestatusdueDatedescriptionHTML

plutio_log_time

Log time

WRITE: record a time entry against a task. projectId must be the task's own project (read the task first). time is the length in seconds (5400 = 1.5 hours). POST /time-tracks.

ParameterstimerequiredtaskIdrequiredpersonIdrequiredprojectIdrequiredstartedAtrequiredstoppedAtrequired

plutio_create_comment

Comment on a task

WRITE: post a comment on a task, file or conversation. Visible to everyone who can see that record. Returns the new record. POST /comments.

ParametersbodyHTMLrequiredentityIdrequiredentityTyperequired

plutio_create_event

Create event

WRITE: add a calendar event. No invitations are sent. Returns the new record. POST /events.

ParameterstitlerequiredendDateisAllDaystartDaterequireddescriptionHTML

plutio_create_invoice

Create draft invoice

WRITE: create a DRAFT invoice for a person or company. The client cannot pay it and nothing is emailed. Add line items with plutio_add_invoice_items. Returns the new record. POST /invoices.

ParametersnamerequireddueDateclientIdrequiredcurrencyrequiredclientTyperequired

plutio_add_invoice_items

Add invoice line items

WRITE: put line items on an invoice that has none yet (an invoice made with plutio_create_invoice). Refuses an invoice that already has an items block. Plutio works out line totals, subtotal and total. POST /blocks.

ParametersitemsrequiredinvoiceIdrequired

Version history

11
  1. v1.11.3LatestNov 7, 2026
  2. v1.10.3Nov 5, 2026
  3. v1.10.2Nov 5, 2026
  4. v1.10.1Nov 4, 2026
  5. v1.10.0Nov 3, 2026
  6. v1.9.1Nov 3, 2026
  7. v1.8.0Nov 1, 2026
  8. v1.6.0Oct 31, 2026
  9. v1.5.0Oct 31, 2026
  10. v1.4.2Oct 30, 2026
  11. v1.4.0Oct 30, 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