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.
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
Read and write Plutio workspace data — clients, projects, tasks, time entries, invoices and more — from an AI assistant.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
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.Add this to your client's mcpServers config.
{
"mcpServers": {
"plutio-by-usefulapi": {
"type": "http",
"url": "https://plutio.usefulapi.io/mcp"
}
}
}Live endpoint: https://plutio.usefulapi.io/mcp
https://plutio.usefulapi.io/mcp.claude mcp add --transport http plutio https://plutio.usefulapi.io/mcp, then run /mcp to log in.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.
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.
*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].
MIT
Source: servers/plutio/README.md at commit 4046075
Get workspace
The Plutio workspace this API client is connected to: name, domain, currency, locale, timezone and settings. GET /businesses.
Takes no parameters.
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.
idroleskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersstatusIdstatusTitleList 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.
idskipsortlimitqueryfiltersprojectIdList 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.
idskipsortlimitqueryfilterstaskBoardIdList 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.
idskipsortlimitquerystatusfiltersprojectIdtaskBoardIdtaskGroupIdList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitquerytaskIdfilterspersonIdprojectIdList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitquerystatusfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryformIdfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersentityIdentityTypeList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersList 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.
idskipsortlimitqueryfiltersGet 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).
entityIdrequiredentityTyperequiredCreate person
WRITE: add a person (a client by default) to the workspace. Returns the new record with its _id. POST /people.
roleemaillastNamefirstNamerequiredCreate company
WRITE: add a company, optionally linking existing people to it. Returns the new record. POST /companies.
titlerequiredindustrypersonIdsCreate 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.
namerequireddueDateclientIdstartDateclientTypedescriptionHTMLCreate 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.
titlerequireddueDateprojectIdrequiredtaskBoardIdrequiredtaskGroupIddescriptionHTMLUpdate 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.
idrequiredtitlestatusdueDatedescriptionHTMLLog 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.
timerequiredtaskIdrequiredpersonIdrequiredprojectIdrequiredstartedAtrequiredstoppedAtrequiredComment 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.
bodyHTMLrequiredentityIdrequiredentityTyperequiredCreate event
WRITE: add a calendar event. No invitations are sent. Returns the new record. POST /events.
titlerequiredendDateisAllDaystartDaterequireddescriptionHTMLCreate 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.
namerequireddueDateclientIdrequiredcurrencyrequiredclientTyperequiredAdd 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.
itemsrequiredinvoiceIdrequired100% 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.
io.usefulapiOfficial publisher
Hosted MCP server for Ably realtime messaging: inspect channel history, presence and occupancy, publish messages, and review app usage and configuration.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant look up Woffu company users, employment contracts, departments and offices.
io.usefulapiOfficial publisher
Hosted MCP server for White Label Loyalty: browse rewards, read a customer's points wallet and tier progress, and buy rewards with points.
io.usefulapiOfficial publisher
Hosted Weekdone connector that lets an assistant read weekly reports, teams, objectives and KPIs, and add report items, comments and KPI values.
io.usefulapiOfficial publisher
Hosted read-only MCP server that lets an assistant list WebinarKit webinars, their dates, series, meetings and white-label sub-accounts.
{ "mcpServers": { "plutio": { "url": "https://plutio.usefulapi.io/mcp" } }}