io.usefulapi/plutio · v1.0.0 · productivity
Plutio MCP by usefulapi is healthy: it completed an MCP handshake in 882 ms and exposes 37 tools.
Manage Plutio clients, projects, tasks, time entries and invoices.
Endpoint: https://plutio.usefulapi.io/mcp (streamable-http)
Repository · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 37 |
| Latency | 882 ms |
| Last checked (UTC) | 2026-10-28T12:40:10.722Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-28T12:40:10.722Z | Healthy | 882 |
plutio_get_workspace | The Plutio workspace this API client is connected to: name, domain, currency, locale, timezone and settings. GET /businesses. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_list_invoice_subscriptions | 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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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). |
plutio_create_person | WRITE: add a person (a client by default) to the workspace. Returns the new record with its _id. POST /people. |
plutio_create_company | WRITE: add a company, optionally linking existing people to it. Returns the new record. POST /companies. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_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. |
plutio_create_comment | WRITE: post a comment on a task, file or conversation. Visible to everyone who can see that record. Returns the new record. POST /comments. |
plutio_create_event | WRITE: add a calendar event. No invitations are sent. Returns the new record. POST /events. |
plutio_create_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. |
plutio_add_invoice_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. |