How to integrate Moco MCP with Claude Code

Trusted by
AWS
Glean
Zoom
Airtable

30 min · no commitment · see it on your stack

Moco logo
Claude Code logo
divider

Introduction

Manage your Moco directly from Claude Code with zero worries about OAuth hassles, API-breaking issues, or reliability and security concerns.

You can do this in two different ways:

  1. Via Composio Connect - Direct and easiest approach
  2. Via Composio SDK - Programmatic approach with more control

Also integrate Moco with

Why use Composio?

  • Only one MCP URL to connect multiple apps with Claude Code with zero auth hassles.
  • Programmatic tool calling allows LLMs to write its code in a remote workbench to handle complex tool chaining. Reduces to-and-fro with LLMs for frequent tool calling.
  • Handling Large tool responses out of LLM context to minimize context rot.
  • Dynamic just-in-time access to 20,000 tools across 1000+ other Apps for cross-app workflows. It loads the tools you need, so LLMs aren't overwhelmed by tools you don't need.

Connecting Moco to Claude Code using Composio

1. Add the Composio MCP to Claude

Terminal

2. Start Claude Code

bash
claude

3. Open your MCP list

bash
/mcp

4. Select Composio and click on Authenticate

Select Composio and click Authenticate

5. This will redirect you to the Composio OAuth page. Complete the flow by authorizing Composio and you're all set.

Composio OAuth authorization page
Composio authorization complete
Ask Claude to connect to your account and authenticate via the link

Supported Tools & Triggers

Tools
Activate Offer Customer ApprovalTool to activate customer approval on an offer to generate the offer_document_url.
List ActivitiesRetrieves a list of activities (time entries) from MOCO.
Get ActivityTool to retrieve a single activity by ID.
Update ActivityTool to update an existing activity.
Assign OfferTool to assign an offer to a project, company, or deal.
Assign Purchase to ProjectTool to assign a purchase item to a project by creating or linking to an expense.
List commentsTool to retrieve a list of comments.
Create CompanyCreates a new company in MOCO (customer, supplier, or organization).
Delete a companyTool to delete a company.
List ContactsTool to retrieve a list of contacts.
Create Account Catalog ServiceTool to create a catalog service including its items.
Create Catalog Service ItemTool to create a new item within a catalog service in MOCO.
Create Account Custom PropertyTool to create a new custom property in MOCO.
Create Activities BulkTool to bulk create multiple activities (time entries) at once in MOCO.
Create ActivityTool to create a new activity (time tracking entry) in MOCO.
Create CommentTool to create a new comment on a MOCO resource.
Create Comments BulkTool to create multiple comments in bulk for MOCO objects.
Create ContactTool to create a new contact person in MOCO.
Create DealTool to create a new deal in MOCO.
Create Deal CategoryCreates a new deal category in MOCO with a name and probability percentage.
Create EmploymentCreate a new employment (weekly work model) for a user in MOCO.
Create Expense TemplateTool to create a new expense template in MOCO.
Create HolidayCreate a new holiday entry for a user in MOCO.
Add Invoice AttachmentTool to add a PDF attachment to an existing invoice.
Create Invoice Bookkeeping ExportTool to create a new invoice bookkeeping export.
Create Invoice PaymentTool to create a new invoice payment.
Create Invoice ReminderTool to create a new invoice reminder for an existing invoice.
Create Invoice Payments BulkTool to create multiple invoice payments in bulk.
Create OfferTool to create a new offer/proposal.
Create Offer AttachmentTool to upload an attachment to an offer.
Create Project ContractTool to create a new contract (assign staff) for a project in MOCO.
Create Project ExpenseTool to create an additional service entry (expense) on a project.
Create Project Expenses BulkTool to create multiple project expense entries in bulk.
Create Project Payment ScheduleTool to create a payment schedule entry for a project.
Create Recurring Expense on ProjectTool to create a recurring additional services entry on a project in MOCO.
Trigger Recurring ExpenseTool to manually trigger the creation of an expense entry for an active recurring expense ahead of its automatic schedule.
Create Project TaskTool to create a new task (service) for a project in MOCO.
Create Purchase Bookkeeping ExportTool to create a new purchase bookkeeping export.
Create Purchase PaymentTool to create a new purchase payment.
Create Purchase Payments BulkTool to create multiple purchase payments in bulk.
Create ReceiptTool to create a new receipt.
Create ScheduleTool to create a planning entry (absence/schedule).
Create TagTool to create a new tag in MOCO.
Create Task TemplateTool to create a new task template in MOCO.
Create UnitTool to create a new unit/team in MOCO.
Create UserTool to create a new staff member/user in MOCO.
Create Users PresencesTool to create a presence entry (work time tracking) in MOCO.
Toggle User PresenceTool to toggle user presence (clock in/out) in MOCO.
Create Work Time AdjustmentTool to create a new work time adjustment in MOCO.
Deactivate Offer Customer ApprovalTool to deactivate a customer approval on an offer to prevent access and signing.
List Deal CategoriesRetrieves all deal categories configured in MOCO with their IDs, names, probabilities, and timestamps.
Delete DealTool to delete a deal.
Get DealRetrieves detailed information for a specific deal/lead by its ID from MOCO.
List DealsTool to retrieve a list of all deals (leads).
Update DealTool to update an existing deal.
Delete Catalog ServiceTool to delete a catalog service.
Delete Account Custom PropertyTool to delete a custom property in MOCO.
Delete Expense TemplateTool to delete an expense template.
Delete Catalog Service ItemTool to delete an item from a catalog service.
Delete CommentTool to delete a manually created comment.
Delete Contact PersonTool to delete a contact person in MOCO.
Delete Deal CategoryTool to delete a deal category.
Delete InvoiceTool to delete a single invoice.
Delete Invoice PaymentTool to delete an invoice payment.
Delete Offers AttachmentsTool to remove an attachment from an offer.
Delete PresenceTool to delete a presence entry.
Delete ProjectTool to delete a project.
Delete Project Staff AssignmentTool to delete a staff assignment (contract) from a project.
Delete Project ExpenseTool to delete an additional services entry on a project.
Delete Project Payment ScheduleTool to delete a payment schedule from a project.
Delete Project Recurring ExpenseTool to delete a recurring expense from a project.
Delete Project TaskTool to delete a specific task from a project.
Delete All Project TasksTool to bulk delete all deletable tasks on a project.
Delete PurchaseTool to delete a purchase.
Delete Purchase PaymentTool to delete a purchase payment.
Delete ScheduleTool to delete a schedule entry (absence).
Delete TagTool to delete a tag in MOCO.
Delete TaggingsTool to selectively remove tags from an entity.
Delete UserTool to delete a user from MOCO.
Delete EmploymentTool to delete an employment (weekly work model) for a user.
Disable Project ShareTool to deactivate project report sharing.
Mark Project Expenses as BilledTool to mark project expense entries as already billed.
Get Catalog Service ItemTool to retrieve a specific item within a catalog service in MOCO.
Get Account Fixed CostsTool to retrieve all fixed costs from the account.
Get Cashflow ReportTool to retrieve the cashflow report from MOCO.
Get CommentTool to retrieve a single comment by ID.
Get CompanyTool to retrieve a single company by ID from MOCO.
Get ContactTool to retrieve detailed information for a specific contact person by ID from MOCO.
Get Custom PropertyTool to retrieve a single custom property by ID from MOCO.
Get Deal CategoryTool to retrieve a single deal category by ID.
Get EmploymentTool to retrieve a single employment (weekly work model) by ID.
Get HolidayTool to retrieve a single holiday entry by ID.
Get Internal Hourly RatesTool to retrieve all internal hourly rates from the account.
Get InvoiceTool to retrieve a single invoice by ID with full details including items, payments, and reminders.
Get Invoice Bookkeeping ExportTool to retrieve a single invoice bookkeeping export by ID.
Get Invoice PaymentTool to retrieve a single invoice payment by ID.
Get Invoice ReminderTool to retrieve a single invoice reminder by ID.
Get Invoice RemindersTool to retrieve all invoice reminders.
Get Invoice Bookkeeping ExportsTool to retrieve all invoice bookkeeping exports.
Get Invoice ExpensesTool to retrieve all expenses that were invoiced in a particular invoice.
Get Locked InvoicesTool to retrieve all locked invoices.
Get Invoice PaymentsTool to retrieve all invoice payments.
Get Invoice TimesheetTool to retrieve a time sheet for a particular invoice, i.
Get Offer Customer ApprovalTool to retrieve customer approval status and URL for an offer.
Get Offer PDFTool to retrieve a single offer document as PDF.
Get PresenceTool to retrieve a single presence entry by ID.
Get ProfileTool to retrieve the current authenticated user's profile.
Get Project ContractTool to retrieve a single staff assignment (contract) on a project.
Get Single Project ExpenseTool to retrieve a single additional service (expense) for a project.
Get Project Payment Schedules By IDTool to retrieve all payment schedules for a specific project by its ID.
Get Project ReportTool to retrieve a project report with budget, hours, costs, and business indicators.
Get Project ExpensesTool to retrieve all additional services (expenses) for a project.
Get Projects Payment SchedulesTool to retrieve all payment schedules for fixed price projects.
Get Project Payment ScheduleTool to retrieve a single payment schedule entry for a project by its ID.
Get Project Recurring ExpensesTool to retrieve all recurring expenses for a specific project.
Get Project TaskTool to retrieve a single task on a project by project ID and task ID.
Get PurchaseTool to retrieve a single purchase by ID.
Get Purchase Bookkeeping ExportTool to retrieve a single purchase bookkeeping export by ID.
Get Purchase PaymentTool to retrieve a single purchase payment by ID.
Get Purchase Bookkeeping ExportsTool to retrieve all purchase bookkeeping exports.
Get Purchase BudgetsTool to retrieve purchase budgets for a given fiscal year.
Get Purchase PaymentsTool to retrieve all purchase payments.
Get ReceiptTool to retrieve a single receipt by ID from MOCO.
Get ReceiptsRetrieves a list of receipts (expense receipts) from MOCO.
Get All Recurring ExpensesTool to retrieve all recurring additional services entries across all projects in MOCO.
Get Report AbsencesTool to retrieve absence report showing employee absences by type and date range.
Get Finance ReportTool to retrieve the finance report from MOCO.
Get Utilization ReportTool to retrieve the utilization report from MOCO.
Get ScheduleTool to retrieve a single planning entry (schedule) by ID.
Get TagTool to retrieve a single tag by ID.
Get TaggingsTool to retrieve the list of tags associated with an entity.
Get TagsTool to retrieve the list of tags from MOCO.
Get Task TemplateTool to retrieve a single task template by ID.
Get UnitTool to retrieve a single unit/team by ID from MOCO.
Get UserTool to retrieve detailed information for a specific user/staff member by ID.
Get User Performance ReportTool to retrieve a user's performance report comparing tracked hours vs target hours.
Get VAT Code PurchaseTool to retrieve a single VAT code for purchases by ID from MOCO.
Get VAT Code PurchasesTool to retrieve the list of purchase VAT codes.
Get VAT Code SaleTool to retrieve a single VAT code for sales by ID from MOCO.
Get VAT Code SalesTool to retrieve the list of sale VAT codes from MOCO.
Get Work Time AdjustmentTool to retrieve a single work time adjustment by ID.
Create InvoiceTool to create a new invoice.
List InvoicesTool to retrieve a list of all invoices.
List All Project ExpensesTool to retrieve all project expenses across all projects.
List Assigned ProjectsTool to retrieve all projects assigned to the authenticated user.
List Catalog ServicesList all catalog services (Leistungskatalog) from the account.
List CompaniesTool to retrieve all companies (customers and suppliers).
List Custom PropertiesTool to retrieve all custom properties from MOCO.
List EmploymentsRetrieve all user employments from MOCO.
List Expense TemplatesTool to retrieve all expense templates from MOCO.
List HolidaysTool to retrieve all user holidays/vacation entries from MOCO.
List Hourly RatesTool to retrieve all hourly rates from MOCO.
List Invoice AttachmentsTool to retrieve all attachments for an invoice.
List Offer AttachmentsTool to retrieve all attachments for a specific offer.
List PresencesTool to retrieve all user presences (attendance entries) from MOCO.
List Project ContractsTool to retrieve all contracts (assigned staff) for a project.
List Project GroupsRetrieve all project groups from MOCO.
List Project TasksTool to retrieve all tasks (services) for a project by project ID.
List Purchase CategoriesRetrieves all purchase categories configured in MOCO with their IDs, names, account codes, and status.
List Purchase DraftsTool to retrieve all purchase drafts (German: Ausgaben – Entwürfe).
List PurchasesTool to retrieve all purchases (supplier invoices).
List SchedulesTool to retrieve all absences (schedules) from MOCO.
List Task TemplatesTool to retrieve all task templates from MOCO.
List UnitsTool to retrieve all units/teams in MOCO.
List User RolesTool to retrieve all user permission roles in MOCO.
List Work Time AdjustmentsTool to retrieve all user work time adjustments from MOCO.
Get OfferTool to retrieve a single offer by ID.
List OffersTool to retrieve a list of all offers.
Patch TaggingsTool to partially update taggings by adding new tags to an entity without removing existing tags.
List Planning EntriesTool to retrieve a list of all planning entries.
Create Planning EntryTool to create a new planning entry.
Get Planning EntryTool to retrieve a single planning entry by ID.
Create ProjectTool to create a new project in MOCO.
Get ProjectRetrieves comprehensive details for a specific project by its ID.
List ProjectsTool to retrieve a list of all projects.
Update ProjectTool to update an existing project.
Create PurchaseTool to create a new purchase.
Send Invoice by EmailTool to send an invoice by email.
Send Invoice Reminder EmailTool to send an invoice reminder by email.
Send Offer EmailTool to send an offer by email to specified recipients.
Share ProjectTool to activate project report sharing and get a shareable URL.
Start Activity TimerTool to start or continue a timer on an activity.
Stop Activity TimerTool to stop a timer running on an activity.
Unassign Project from Project GroupTool to unassign a project from its project group.
Update Account Catalog ServiceTool to update a catalog service.
Update Catalog Service ItemTool to update an existing item within a catalog service in MOCO.
Update Account Custom PropertiesTool to update a custom property in MOCO.
Update Expense TemplateTool to update an existing expense template in MOCO.
Update Account Internal Hourly RatesTool to update internal hourly rates for one or more users for a specific year.
Update CommentTool to update an existing comment on a MOCO resource.
Update CompanyTool to update an existing company.
Update Contact PersonTool to update an existing contact person in MOCO.
Update Deal CategoryTool to update an existing deal category in MOCO.
Update HolidayTool to update an existing holiday entry in MOCO.
Update Invoice StatusTool to update an invoice status.
Update Offer StatusTool to update the status of an offer.
Update Planning EntryTool to update an existing planning entry.
Update PresenceTool to update a presence entry (work time tracking) in MOCO.
Archive ProjectTool to archive a project in MOCO.
Update Project ContractTool to update a staff assignment to a project.
Update Project ExpenseTool to update an additional services entry (expense) on a project.
Update Project Payment ScheduleTool to update a payment schedule entry for a project.
Update Project Recurring ExpenseTool to update a recurring additional services entry on a project.
Update Project TaskTool to update an existing task on a project in MOCO.
Unarchive ProjectTool to reactivate an archived project.
Update PurchaseTool to update an existing purchase.
Update Purchase DocumentTool to update or store a purchase document.
Update Purchase StatusTool to update the status of a purchase.
Update ReceiptTool to update an existing receipt.
Update ScheduleTool to update a planning entry (absence/schedule).
Update TagTool to update an existing tag in MOCO.
Update TaggingsTool to replace all tags associated with an entity.
Update Task TemplateTool to update an existing task template in MOCO.
Update UnitTool to update an existing unit/team.
Update UserTool to update an existing staff member/user in MOCO.
Update User EmploymentTool to update a user employment record.
Update Work Time AdjustmentTool to update an existing work time adjustment in MOCO.
List UsersList all users in MOCO with optional filters.

What is the Moco MCP server, and what's possible with it?

The Moco MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Moco account. It provides structured and secure access to your business and project management data, so your agent can manage time tracking, handle deals, organize contacts, and update project activities on your behalf.

  • Automated time tracking and activity management: Let your agent list, retrieve, and update time entries, so tracking billable hours and project work is effortless.
  • Deal and pipeline automation: Ask your agent to fetch deal details, delete obsolete deals, or reference available deal categories to keep your sales pipeline up to date.
  • Comprehensive contact and company organization: Have your agent list contacts, add new companies, or delete companies as your business relationships evolve.
  • Comment retrieval for collaboration: Retrieve and review comments on various resources, helping your team stay in sync and informed.
  • Flexible project and resource control: Use your agent to access and manage project-related information, so you can stay organized without manual data entry.

Connecting Moco via Composio SDK

Composio SDK is the underlying tech that powers Rube. It's a universal gateway that does everything Rube does but with much more programmatic control. You can programmatically generate an MCP URL with the app you need (here Moco) for even more tool search precision. It's secure and reliable.

How the Composio SDK works

The Composio SDK follows a three-phase workflow:

  1. Discovery: Searches for tools matching your task and returns relevant toolkits with their details.
  2. Authentication: Checks for active connections. If missing, creates an auth config and returns a connection URL via Auth Link.
  3. Execution: Executes the action using the authenticated connection.

Step-by-step Guide

Prerequisites

Before starting, make sure you have:
  • Claude Pro, Max, or API billing enabled Anthropic account
  • Composio API Key
  • A Moco account
  • Basic knowledge of Python or TypeScript

Install Claude Code

bash
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash

# Windows PowerShell
irm https://claude.ai/install.ps1 | iex

# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

To install Claude Code, use one of the following methods based on your operating system:

Set up Claude Code

bash
cd your-project-folder
claude

Open a terminal, go to your project folder, and start Claude Code:

  • Claude Code will open in your terminal
  • Follow the prompts to sign in with your Anthropic account
  • Complete the authentication flow
  • Once authenticated, you can start using Claude Code
Claude Code initial setup showing sign-in prompt
Claude Code terminal after successful login

Set up environment variables

bash
COMPOSIO_API_KEY=your_composio_api_key_here
USER_ID=your_user_id_here

Create a .env file in your project root with the following variables:

  • COMPOSIO_API_KEY authenticates with Composio (get it from Composio dashboard)
  • USER_ID identifies the user for session management (use any unique identifier)

Install Composio library

pip install composio-core python-dotenv

Install the Composio Python library to create MCP sessions.

  • composio-core provides the core Composio functionality
  • python-dotenv loads environment variables from your .env file

Generate Composio MCP URL

import os
from composio import Composio
from dotenv import load_dotenv

load_dotenv()

COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
USER_ID = os.getenv("USER_ID")

composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=USER_ID,
    toolkits=["moco"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url

print(f"MCP URL: {COMPOSIO_MCP_URL}")
print(f"\nUse this command to add to Claude Code:")
print(f'claude mcp add --transport http moco-composio "{COMPOSIO_MCP_URL}" --headers "X-API-Key:{COMPOSIO_API_KEY}"')

Create a script to generate a Composio MCP URL for Moco. This URL will be used to connect Claude Code to Moco.

What's happening:

  • We import the Composio client and load environment variables
  • Create a Composio instance with your API key
  • Call create() to create a Tool Router session for Moco
  • The returned mcp.url is the MCP server URL that Claude Code will use
  • The script prints this URL so you can copy it

Run the script and copy the MCP URL

python generate_mcp_url.py

Run your Python script to generate the MCP URL.

  • The script connects to Composio and creates a Tool Router session
  • It prints the MCP URL and the exact command you need to run
  • Copy the entire claude mcp add command from the output

Add Moco MCP to Claude Code

bash
claude mcp add --transport http moco-composio "YOUR_MCP_URL_HERE" --headers "X-API-Key:YOUR_COMPOSIO_API_KEY"

# Then restart Claude Code
exit
claude

In your terminal, add the MCP server using the command from the previous step. The command format is:

  • claude mcp add registers a new MCP server with Claude Code
  • --transport http specifies that this is an HTTP-based MCP server
  • The server name (moco-composio) is how you'll reference it
  • The URL points to your Composio Tool Router session
  • --headers includes your Composio API key for authentication

After running the command, close the current Claude Code session and start a new one for the changes to take effect.

Verify the installation

bash
claude mcp list

Check that your Moco MCP server is properly configured.

  • This command lists all MCP servers registered with Claude Code
  • You should see your moco-composio entry in the list
  • This confirms that Claude Code can now access Moco tools

If everything is wired up, you should see your moco-composio entry listed:

Claude Code MCP list showing the toolkit MCP server

Authenticate Moco

The first time you try to use Moco tools, you'll be prompted to authenticate.

  • Claude Code will detect that you need to authenticate with Moco
  • It will show you an authentication link
  • Open the link in your browser (or copy/paste it)
  • Complete the Moco authorization flow
  • Return to the terminal and start using Moco through Claude Code

Once authenticated, you can ask Claude Code to perform Moco operations in natural language. For example:

  • "List activities tracked for this week"
  • "Create a new company called GreenTech"
  • "Get details for deal with ID 456"

Complete Code

Here's the complete code to get you started with Moco and Claude Code:

import os
from composio import Composio
from dotenv import load_dotenv

load_dotenv()

COMPOSIO_API_KEY = os.getenv("COMPOSIO_API_KEY")
USER_ID = os.getenv("USER_ID")

composio_client = Composio(api_key=COMPOSIO_API_KEY)

composio_session = composio_client.create(
    user_id=USER_ID,
    toolkits=["moco"],
)

COMPOSIO_MCP_URL = composio_session.mcp.url

print(f"MCP URL: {COMPOSIO_MCP_URL}")
print(f"\nUse this command to add to Claude Code:")
print(f'claude mcp add --transport http moco-composio "{COMPOSIO_MCP_URL}" --headers "X-API-Key:{COMPOSIO_API_KEY}"')

Conclusion

You've successfully integrated Moco with Claude Code using Composio's MCP server. Now you can interact with Moco directly from your terminal using natural language commands.

Key features of this setup:

  • Terminal-native experience without switching contexts
  • Natural language commands for Moco operations
  • Secure authentication through Composio's managed MCP
  • Tool Router for dynamic tool discovery and execution

Next steps:

  • Try asking Claude Code to perform various Moco operations
  • Add more toolkits to your Tool Router session for multi-app workflows
  • Integrate this setup into your development workflow for increased productivity

You can extend this by adding more toolkits, implementing custom workflows, or building automation scripts that leverage Claude Code's capabilities.

How to build Moco MCP Agent with another framework

FAQ

What are the differences in Tool Router MCP and Moco MCP?

With a standalone Moco MCP server, the agents and LLMs can only access a fixed set of Moco tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Moco and many other apps based on the task at hand, all through a single MCP endpoint.

Can I use Tool Router MCP with Claude Code?

Yes, you can. Claude Code fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Moco tools.

Can I manage the permissions and scopes for Moco while using Tool Router?

Yes, absolutely. You can configure which Moco scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

How safe is my data with Composio Tool Router?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Moco data and credentials are handled as safely as possible.

Used by agents from

Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai
Context
Letta
glean
HubSpot
Agent.ai
Altera
DataStax
Entelligence
Rolai

Never worry about agent reliability

We handle tool reliability, observability, and security so you never have to second-guess an agent action.