| name | moco |
| description | MOCO is a business management platform for agencies and service-based teams that provides project planning, time tracking, invoicing, budgeting, and resource management, allowing organizations to manage operations and financial workflows from a single system with integration and reporting capabilities. Read and write MOCO data through One: projects, activities, purchases, invoices, accountwebhooks, companies and more, 288 actions with real parameter documentation. Use whenever the user asks to look something up in MOCO, create or update a record there, or build code against the MOCO API. |
MOCO through One
MOCO is a business management platform for agencies and service-based teams that provides project planning, time tracking, invoicing, budgeting, and resource management, allowing organizations to manage operations and financial workflows from a single system with integration and reporting capabilities.
One exposes MOCO through four MCP tools. The table below carries real action ids from One's knowledge base, so for a common operation you can skip search and go straight to reading the action's parameters.
How to run an action
- Find the action in the table below, or call
search_one_platform_actions with platform moco if it is not listed.
- Call
get_one_action_knowledge with the action id. Do this every time, including for actions in this table. The table gives you the id, not the parameters.
- Call
execute_one_action with parameters copied from that knowledge.
Never guess a parameter name, a body field, or an enum value. The knowledge has the real schema, and a guessed field is either a 400 or a silent write of the wrong thing.
Before you start
Call list_one_integrations once and confirm MOCO is connected. If it is missing, the user has not connected it: say so and point them at https://app.withone.ai rather than reaching for raw HTTP.
Each connection carries an access field. If it reports {"policy": "methods", "methods": ["GET"]} the agent is read-only here, so plan a read-only answer instead of attempting a write that will be refused.
Before a write
Creates, updates, deletes and sends land on a real MOCO account and cannot be recalled. State the action and the specific target in one line before the first write in a task, and let the user stop you. Reads need no confirmation.
Actions
Projects
| Action | Method | Path | Action id |
|---|
| Get Project | GET | /api/v1/projects/{{id}} | conn_mod_def::GLK3EAsXzGA::XxNXgupITOylu1a_xjIOUA |
| Get Project Report | GET | /api/v1/projects/{{id}}/report | conn_mod_def::GLK3D_l7AmA::xanujcnhQnm8wZRQjUfQGA |
| List Projects | GET | /api/v1/projects | conn_mod_def::GLK3EJIiO6A::oCXnC1X8Q5i_0Bek9Rwt4w |
| List Projects Assigned To Current User | GET | /api/v1/projects/assigned | conn_mod_def::GLK3EAsqOyA::XmzUZMl1RDKDmaIa9l0hRQ |
| Archive Project | PUT | /api/v1/projects/{{id}}/archive | conn_mod_def::GLK3Dzvinfg::cnrSWldLQFyAwVxQEahIHQ |
| Assign Project To Project Group | PUT | /api/v1/projects/{{id}}/assign_project_group | conn_mod_def::GLK3Dxu5T2g::kR28sORtQ9S5UYkZcp7-Fw |
| Create Project | POST | /api/v1/projects | conn_mod_def::GLK3DxNm_CA::eO3MxBPMToqnUJAdhbcH1Q |
| Delete Project | DELETE | /api/v1/projects/{{id}} | conn_mod_def::GLK3D3LuuBg::xw0N00IBQd23r5PMnTMfZw |
| Disable Project Report Sharing | PUT | /api/v1/projects/{{id}}/disable_share | conn_mod_def::GLK3Dw2C1jA::5J1sxv2dR3q334Sc_4JiWw |
| Enable Project Report Sharing | PUT | /api/v1/projects/{{id}}/share | conn_mod_def::GLK3EA3-nIg::NgaTdzq-QyqWXX5spegJgw |
| Recur Project Recurring Expense | POST | /api/v1/projects/{{projectId}}/recurring_expenses/{{id}}/recur | conn_mod_def::GLK3G2vJHvA::UFUr_MPnR9C_0ZU2bMozEw |
| Unarchive Project | PUT | /api/v1/projects/{{id}}/unarchive |
6 more Projects actions are available through search.
Activities
| Action | Method | Path | Action id |
|---|
| Get Activity | GET | /api/v1/activities/{{id}} | conn_mod_def::GLK2_8ZcoBA::cRkkhCXZQpm0_YvGT7CGhw |
| List Activities | GET | /api/v1/activities | conn_mod_def::GLK3AAXTUGg::qFKIyAGoRQuAjO1qsUfmBw |
| Create Activities In Bulk | POST | /api/v1/activities/bulk | conn_mod_def::GLK2_hn4qBA::J8bSY6uYTSq9RBxjgoE0nQ |
| Create Activity | POST | /api/v1/activities | conn_mod_def::GLK2_g4jOOg::ZP92RW1STdif5k0Rdq7ZRw |
| Delete Activity | DELETE | /api/v1/activities/{{id}} | conn_mod_def::GLK2_ziabwA::gvJIFdx7SYmqzB_ZukgVLA |
| Disregard Activities For Invoicing | POST | /api/v1/activities/disregard | conn_mod_def::GLK2_8Osi6A::wdl_V1ScQE-ZqexarKxZMg |
| Start Activity Timer | PATCH | /api/v1/activities/{{id}}/start_timer | conn_mod_def::GLK2_8x5OyA::SqQCJONiTbyCb6TA4ZyKew |
| Stop Activity Timer | PATCH | /api/v1/activities/{{id}}/stop_timer | conn_mod_def::GLK2_7zT3CA::v4VhXgxxTaCxkKW8b5-XPw |
| Update Activity #1 | PUT | /api/v1/activities/{{id}} | conn_mod_def::GLK3AJtDwNg::o4eeD_b8SKuiEjw6HXMFoQ |
| Update Activity #2 | PATCH | /api/v1/activities/{{id}} | conn_mod_def::GLK3AJVD0aA::hZgEFG9kSh-MvD15ZjLsOA |
| Update Activity Billable Seconds | PATCH | /api/v1/activities/{{id}}/billable_seconds | conn_mod_def::GLK3AJNOO2A::yv31iujbReu1j9Af9itgQA |
Purchases
| Action | Method | Path | Action id |
|---|
| Get Purchase | GET | /api/v1/purchases/{{id}} | conn_mod_def::GLK3FPKlOxg::BBKLpFIRR1Wixa3tASfmFQ |
| List Purchases | GET | /api/v1/purchases | conn_mod_def::GLK3FViuJDg::OkJUhwriQYq4N4VwJKvc9g |
| Assign Purchase Item To Project | POST | /api/v1/purchases/{{id}}/assign_to_project | conn_mod_def::GLK3FGQMvqg::r1BETPnXR3uxJVBYHJNdoA |
| Create Purchase | POST | /api/v1/purchases | conn_mod_def::GLK3FFA3oHg::ulMVShqiReiA1sKFdx8t2g |
| Delete Purchase | DELETE | /api/v1/purchases/{{id}} | conn_mod_def::GLK3FFnKP9g::JfuAdw58RleTCgTBkijcmg |
| Store Purchase Document | PATCH | /api/v1/purchases/{{id}}/store_document | conn_mod_def::GLK3FRNPMyg::o2TmmevWTrSjxCQfrq47MQ |
| Update Purchase #1 | PUT | /api/v1/purchases/{{id}} | conn_mod_def::GLK3GaHJcLA::6pyQ9IHKTNeqLD3OMmRgHA |
| Update Purchase #2 | PATCH | /api/v1/purchases/{{id}} | conn_mod_def::GLK3FRQ-IyA::onPNhznsS-W2Ng_NsV6hjQ |
| Update Purchase Status | PATCH | /api/v1/purchases/{{id}}/update_status | conn_mod_def::GLK3GjETwJA::PgalbWPXR0aZk8akI7TBQw |
Invoices
| Action | Method | Path | Action id |
|---|
| Download Invoice PDF | GET | /api/v1/invoices/{{id}}.pdf | conn_mod_def::GLK3CcH_Keg::JjotC9X4RBaum2G5Cu-S_g |
| Download Invoice Timesheet PDF | GET | /api/v1/invoices/{{id}}/timesheet.pdf | conn_mod_def::GLK3CcQee8A::Dpqn5_7sS3Cgm1dKa-NNbA |
| Get Invoice | GET | /api/v1/invoices/{{id}} | conn_mod_def::GLK3Cd7ugyg::ktash2RWTtmnHT9tTD9GlQ |
| List Invoices | GET | /api/v1/invoices | conn_mod_def::GLK3CsC4wig::CySNlpi4RLSJS6UoXiDP2A |
| List Locked Invoices | GET | /api/v1/invoices/locked | conn_mod_def::GLK3ComY8Sg::0NxkdjGvSo6LmkVZ76zmQA |
| Create Invoice | POST | /api/v1/invoices | conn_mod_def::GLK3CRLRdeg::EgOilQloRc6bwGwSVaEHpA |
| Delete Invoice | DELETE | /api/v1/invoices/{{id}} | conn_mod_def::GLK3CcMZ3QA::ZkcwJxD9TGOucipfWovFUQ |
| Send Invoice By Email | POST | /api/v1/invoices/{{id}}/send_email | conn_mod_def::GLK3Cm5gvcg::MPR3Qv7sTKaBkO9YxNz1Pg |
| Update Invoice Status | PUT | /api/v1/invoices/{{id}}/update_status | conn_mod_def::GLK3CmsxFTA::Lq3Ar3l6T1uzbPgRVHT3OA |
AccountWebHooks
| Action | Method | Path | Action id |
|---|
| Get Account Web Hook | GET | /api/v1/account/web_hooks/{{id}} | conn_mod_def::GLK2_Xjr3cA::-ucCyyW2RpibouQLJqm2mA |
| List Account Web Hooks | GET | /api/v1/account/web_hooks | conn_mod_def::GLK2_RyLu-A::3pL5NS07RmSJXAh9Kwgttw |
| Create Account Web Hook | POST | /api/v1/account/web_hooks | conn_mod_def::GLK2-7s2xtg::JW2RmtMdRIWgoNFDZFA2GQ |
| Delete Account Web Hook | DELETE | /api/v1/account/web_hooks/{{id}} | conn_mod_def::GLK2_PJ1p9A::tjwsGNBeQM-VtFyFPpovqw |
| Disable Account Web Hook | PUT | /api/v1/account/web_hooks/{{id}}/disable | conn_mod_def::GLK2_PctSCg::CUNSxrzNSraqNu0PyQPtcg |
| Enable Account Web Hook | PUT | /api/v1/account/web_hooks/{{id}}/enable | conn_mod_def::GLK2_PKjfjA::nBmJH0rJQwGmKzMoxGx5Eg |
| Update Account Web Hook #1 | PUT | /api/v1/account/web_hooks/{{id}} | conn_mod_def::GLK2_gVWbhA::AxJHN5dPTZ6J8yX1zgmi4g |
| Update Account Web Hook #2 | PATCH | /api/v1/account/web_hooks/{{id}} | conn_mod_def::GLK2_gVf4_A::WaF9jB53T0q5AMlHWJxbyg |
Companies
| Action | Method | Path | Action id |
|---|
| Get Company | GET | /api/v1/companies/{{id}} | conn_mod_def::GLK3AeGuooA::lyS7N0J-SXST9kg8wn75Rw |
| List Companies | GET | /api/v1/companies | conn_mod_def::GLK3Af7yeKg::0R6xZC0JQpOpOOovAM7DKQ |
| Archive Company | PUT | /api/v1/companies/{{id}}/archive | conn_mod_def::GLK3AdPiFng::8gt4PDh-T5CFdDID687FEg |
| Create Company | POST | /api/v1/companies | conn_mod_def::GLK3AgfKpZA::4JsK7LEuSNyYF_lEdyCF_w |
| Delete Company | DELETE | /api/v1/companies/{{id}} | conn_mod_def::GLK3Ac906Lg::vhNf7Lk2Rua5yXKnq9_78g |
| Unarchive Company | PUT | /api/v1/companies/{{id}}/unarchive | conn_mod_def::GLK3ApWl1RA::Y5CysI0LT9i8ppQtyef4EQ |
| Update Company #1 | PUT | /api/v1/companies/{{id}} | conn_mod_def::GLK3Aq05L9g::3Sw8LsvlQkmZMnf512enIQ |
| Update Company #2 | PATCH | /api/v1/companies/{{id}} | conn_mod_def::GLK3Aqn_t4g::ZKVbplaTQ7KVEBWC5WWA8Q |
ProjectExpenses
| Action | Method | Path | Action id |
|---|
| Get Project Expense | GET | /api/v1/projects/{{projectId}}/expenses/{{id}} | conn_mod_def::GLK3BlY57bg::RG03nSZdRa2tFy6zQGm3yg |
| List Project Expenses | GET | /api/v1/projects/{{projectId}}/expenses | conn_mod_def::GLK3BqCpGrg::jp2YfhZDSee0jfdLt2qsoA |
| Create Project Expense | POST | /api/v1/projects/{{projectId}}/expenses | conn_mod_def::GLK3BdH3cEg::3Wz8-ii4RCey1SagXygGFQ |
| Create Project Expenses In Bulk | POST | /api/v1/projects/{{projectId}}/expenses/bulk | conn_mod_def::GLK3BcyCWAg::t4dThzcKRsG-BXDvhm2HVg |
| Delete Project Expense | DELETE | /api/v1/projects/{{projectId}}/expenses/{{id}} | conn_mod_def::GLK3Bcp288A::TR4CJ2xLTnCHyRswJFHqxg |
| Disregard Project Expenses | POST | /api/v1/projects/{{projectId}}/expenses/disregard | conn_mod_def::GLK3BmDZPkA::vQHmrMMnSCqkVuVHhV2tFg |
| Update Project Expense #1 | PUT | /api/v1/projects/{{projectId}}/expenses/{{id}} | conn_mod_def::GLK3BmIbzHg::75ml3YOgTkaIr1BeDi7Fwg |
| Update Project Expense #2 | PATCH | /api/v1/projects/{{projectId}}/expenses/{{id}} | conn_mod_def::GLK3BzY_9xg::tL86qy-oSbGX7CY5HOPZiQ |
Users
| Action | Method | Path | Action id |
|---|
| Get User | GET | /api/v1/users/{{id}} | conn_mod_def::GLK3I1sZBUA::RZir-lvIRoW65fa-sQALoA |
| List Users | GET | /api/v1/users | conn_mod_def::GLK3JAay6Ag::DE-e2jWBR0qPGqEfOFkWgw |
| Create User | POST | /api/v1/users | conn_mod_def::GLK3I1rF5AA::0nDjRSZHSdGzB53jk-neyg |
| Delete User | DELETE | /api/v1/users/{{id}} | conn_mod_def::GLK3I10BJjA::Jlm4Y6cIS_ujrzI92_l9AQ |
| Update User #1 | PUT | /api/v1/users/{{id}} | conn_mod_def::GLK3I_YYhmA::omjY_L_ORm2cKQrohQAlCA |
| Update User #2 | PATCH | /api/v1/users/{{id}} | conn_mod_def::GLK3I_RPxLA::vb7GFa04SU-bBMzxDEIn_g |
| Update User Employment #1 | PUT | /api/v1/users/employments/{{id}} | conn_mod_def::GLK3IMLZF7g::4FJwf8cGSDWfj27WM0yznQ |
| Update User Employment #2 | PATCH | /api/v1/users/employments/{{id}} | conn_mod_def::GLK3IMD_nMg::WLzpF_z5Ql2KbzgWICexQw |
UserPresences
| Action | Method | Path | Action id |
|---|
| Get User Presence | GET | /api/v1/users/presences/{{id}} | conn_mod_def::GLK3Iqqe9zg::IoPUZmrORGismpWeDPFF3Q |
| List User Presences | GET | /api/v1/users/presences | conn_mod_def::GLK3IubrdWg::vwG-NikVRTa6WzXgTZtWDg |
| Create User Presence | POST | /api/v1/users/presences | conn_mod_def::GLK3IWDl6Hg::FYrvjfmDT9WBfkfnkXgR4A |
| Delete User Presence | DELETE | /api/v1/users/presences/{{id}} | conn_mod_def::GLK3IjcL7fg::t8kXV4yLQn6mhZ-XWb3xMg |
| Touch User Presence | POST | /api/v1/users/presences/touch | conn_mod_def::GLK3ItUm0Eg::JJ1tdnmrToqs5nZkQ_sAcA |
| Update User Presence #1 | PUT | /api/v1/users/presences/{{id}} | conn_mod_def::GLK3IrgB-6A::NMKHzXt8QtGNSGkfi7VPAQ |
| Update User Presence #2 | PATCH | /api/v1/users/presences/{{id}} | conn_mod_def::GLK3Ir1-oXg::SZp0IO4WTQahLlXlRpiziw |
Comments
| Action | Method | Path | Action id |
|---|
| Get Comment | GET | /api/v1/comments/{{id}} | conn_mod_def::GLK3AR7F87g::IyoRfJaNTGqtwNFj3kHbkA |
| List Comments | GET | /api/v1/comments | conn_mod_def::GLK3ASpfIRg::icqxqRFKQSiolN_DA8oWkQ |
| Create Comment | POST | /api/v1/comments | conn_mod_def::GLK3AHzB8Fg::hR5CyjpVRDCV9bKclf_-jw |
| Create Comments In Bulk | POST | /api/v1/comments/bulk | conn_mod_def::GLK3AJJUYnA::SNqUkvHARR6hIfZQYD35dg |
| Delete Comment | DELETE | /api/v1/comments/{{id}} | conn_mod_def::GLK3ARzvJGA::2fKz1bT5RmKQX_BacAw8Lg |
| Update Comment #1 | PUT | /api/v1/comments/{{id}} | conn_mod_def::GLK3ARy-_EA::3S15wdxRRvmNEuBUZdOEQA |
| Update Comment #2 | PATCH | /api/v1/comments/{{id}} | conn_mod_def::GLK3ARy-1TA::FstyItMBRty1mzEdzjpvXw |
InvoicePayments
| Action | Method | Path | Action id |
|---|
| Get Invoice Payment | GET | /api/v1/invoices/payments/{{id}} | conn_mod_def::GLK3CGpU9Ag::hB-ozpS5REymPWmjzPADfA |
| List Invoice Payments | GET | /api/v1/invoices/payments | conn_mod_def::GLK3CJUBd9A::3lE5yll7RD2ZZLJwtikgMw |
| Create Invoice Payment | POST | /api/v1/invoices/payments | conn_mod_def::GLK3B9jqAmA::WYyHjMOhSKKs9I_YyhSEXA |
4 more InvoicePayments actions are available through search.
This lists 90 of 288 actions. For anything not here, call search_one_platform_actions with platform moco. The full catalog is at https://www.withone.ai/knowledge/moco.
When a call fails
The error comes from MOCO, not from One. A 400 or 422 means your parameters do not match the schema, so re-read the knowledge and fix the field. A 401 or 403 means the connection needs re-authorizing, which no retry will fix. A 404 means the id is not on this account. A 429 means slow down. Never retry a write more than once: the first attempt may have landed.
Full catalog: https://www.withone.ai/knowledge/moco
Integration knowledge by One (withone.ai), licensed under One-Knowledge-1.0. Attribution must be preserved in derivative works.