Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the MOCO in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
Let your AI work with your MOCO agency account: look up projects and customers, review tracked time by person or project, check open invoices and team utilization, and book time. With your MOCO subdomain and an API key from your MOCO profile.
Try asking
Example prompts for MOCO
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → MOCO, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
MOCO
Let your AI work with your MOCO agency account: look up projects and customers, review tracked time by person or project, check open invoices and team utilization, and book time. With your MOCO subdomain and an API key from your MOCO profile.
Setup
- In MOCO, click your profile picture at the top right to open your profile, then the Integrations tab, and copy your personal API key. It reaches exactly what your own MOCO user can see and do.
- Alternatively, create an account API key under Settings → Extensions → API & Webhooks → API Keys, with read-only or full access. A read-only key cannot book time.
- Paste the key into
MOCO_API_KEY. - Set
MOCO_SUBDOMAINto the first part of your MOCO address only: foragency.mocoapp.comenteragency, withouthttps://and without.mocoapp.com. The connector then callshttps://agency.mocoapp.com/api/v1. - Install the connector. There is no Authorize with Provider step: the key is stored encrypted and sent with every request.
- Start with
moco_list_users: if it lists your colleagues with their IDs, key and subdomain are right.
Staying signed in: the connector uses the key directly, so there is no sign-in to renew. If the key is replaced or deleted in MOCO, paste the new one into MOCO_API_KEY.
What the AI sees: every list returns only the records the key's user may see. A project or invoice that seems to be missing is usually a permission question in MOCO, not a fault of the connector.
Booking time: moco_create_activity is the only tool that writes to MOCO. It books one time entry for the user the key belongs to, with a date, a project ID, a task ID, the duration in whole seconds (2 hours is 7200) and an optional description. The AI finds the project with moco_list_projects and its tasks with moco_get_project. Every call creates a new entry, and a repeated call books the time twice, so the AI shows you date, project, task and duration first and waits for your yes.
Permissions and read-only setup: for a connector that only reads, disable moco_create_activity on the connector page, or use an account API key with read-only access. Do not hand a full-access key to people who should only read data.
Reports and invoices: moco_list_activities and moco_report_utilization always need a start and an end date (from and to, as YYYY-MM-DD). Activities can be narrowed to one person, one project or billable time only; the utilization report compares available and booked capacity. moco_list_invoices filters by status (draft, created, sent, partially_paid, paid, overdue, ignored, several at once separated by commas), invoice date and company.
Limits: lists return up to 100 entries per page, and the AI keeps paging until the last one. MOCO allows about 120 requests per two minutes on standard plans; above that it answers 429, so wait a moment and try again.
Common errors: 401 means the key is wrong, was deleted, or belongs to a different MOCO account than MOCO_SUBDOMAIN. If every call fails, check that MOCO_SUBDOMAIN holds only the subdomain and not the full address. 404 on a single project means the ID is wrong or the key's user cannot see that project. A rejected booking names the field MOCO did not accept, for example a task that does not belong to the project.
The connector does not create or send invoices, download PDFs, set up webhooks, edit or delete time entries, or change projects, companies and users.
Prerequisites: MOCO_SUBDOMAIN, MOCO_API_KEY
Install the connector locally
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Open http://localhost:3000/connectors/store, pick MOCO and paste in the env vars listed under Prerequisites.
Available tools
| Tool | What it does |
|---|---|
moco_list_users | List MOCO users visible to this API key, including their IDs and names |
moco_list_projects | List MOCO projects with IDs, names, customer links and status |
moco_get_project | Get a single MOCO project by its numeric ID, including project details and assigned tasks needed when creating a time activity |
moco_list_activities | List tracked time activities within a date range, optionally filtered by user, project or billability |
moco_list_companies | List customers, suppliers and organizations in MOCO |
moco_list_invoices | List MOCO invoices visible to this API key |
moco_report_utilization | Get MOCO's utilization report for a date range, showing available and booked capacity so you can assess team workload |
moco_create_activity | Book a new MOCO time activity for the API key's user |
Example prompts
- "How many hours did the team book on the Website Relaunch project in September, and how much of that was billable?"
- "Which invoices are overdue or partially paid right now, and which customers do they belong to?"
- "How was the team's utilization last month? Compare available and booked capacity."
- "Book 2.5 hours today on the Acme website project for the homepage layout review. Show me the entry before you book it."
Next steps
Was this guide helpful?