# How to integrate Repairshopr MCP with Autogen

```json
{
  "title": "How to integrate Repairshopr MCP with Autogen",
  "toolkit": "Repairshopr",
  "toolkit_slug": "repairshopr",
  "framework": "AutoGen",
  "framework_slug": "autogen",
  "url": "https://composio.dev/toolkits/repairshopr/framework/autogen",
  "markdown_url": "https://composio.dev/toolkits/repairshopr/framework/autogen.md",
  "updated_at": "2026-05-12T10:23:50.450Z"
}
```

## Introduction

This guide walks you through connecting Repairshopr to AutoGen using the Composio tool router. By the end, you'll have a working Repairshopr agent that can list all upcoming appointments for today, fetch all assets linked to a customer, show attachments for a specific service case through natural language commands.
This guide will help you understand how to give your AutoGen agent real control over a Repairshopr account through Composio's Repairshopr MCP server.
Before we dive in, let's take a quick look at the key ideas and tools involved.

## Also integrate Repairshopr with

- [OpenAI Agents SDK](https://composio.dev/toolkits/repairshopr/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/repairshopr/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/repairshopr/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/repairshopr/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/repairshopr/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/repairshopr/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/repairshopr/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/repairshopr/framework/cli)
- [Google ADK](https://composio.dev/toolkits/repairshopr/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/repairshopr/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/repairshopr/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/repairshopr/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/repairshopr/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/repairshopr/framework/crew-ai)

## TL;DR

Here's what you'll learn:
- Get and set up your OpenAI and Composio API keys
- Install the required dependencies for Autogen and Composio
- Initialize Composio and create a Tool Router session for Repairshopr
- Wire that MCP URL into Autogen using McpWorkbench and StreamableHttpServerParams
- Configure an Autogen AssistantAgent that can call Repairshopr tools
- Run a live chat loop where you ask the agent to perform Repairshopr operations

## What is AutoGen?

Autogen is a framework for building multi-agent conversational AI systems from Microsoft. It enables you to create agents that can collaborate, use tools, and maintain complex workflows.
Key features include:
- Multi-Agent Systems: Build collaborative agent workflows
- MCP Workbench: Native support for Model Context Protocol tools
- Streaming HTTP: Connect to external services through streamable HTTP
- AssistantAgent: Pre-built agent class for tool-using assistants

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

The Repairshopr MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Repairshopr account. It provides structured and secure access to your repair shop management system, so your agent can perform actions like managing customer records, handling appointments, viewing assets, retrieving attachments, and organizing contacts on your behalf.
- Effortless appointment management: Instantly retrieve details of specific appointments, get upcoming schedules, or delete canceled slots directly through your agent.
- Comprehensive customer and contact handling: Let your agent fetch lists of customers or contacts, update records, or permanently remove outdated customer information for streamlined CRM workflows.
- Asset tracking and lookup: Quickly search for assets, confirm asset details, or filter assets by customer or status, making it easy to keep tabs on all equipment under management.
- Service case and attachment retrieval: Have your agent pull all attachments linked to a specific service case, ensuring quick access to important files and documentation.
- Estimate and invoice cleanup: Empower your agent to delete estimates or invoices that are no longer needed, helping you maintain a tidy, organized business record system.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `REPAIRSHOPR_ADD_ESTIMATE_LINE_ITEM` | Add Estimate Line Item | Tool to add a line item to an existing estimate. Use when you need to add products or services to an estimate in RepairShopr. |
| `REPAIRSHOPR_ADD_PURCHASE_ORDER_LINE_ITEM` | Add Purchase Order Line Item | Tool to add a product line item to an existing purchase order. Use when you need to add inventory items to a purchase order. The product must have stock tracking enabled (maintain_stock=true). |
| `REPAIRSHOPR_ADD_SCHEDULE_LINE_ITEM` | Add Schedule Line Item | Tool to add a line item to an invoice schedule. Use when adding recurring charges or one-time items to an existing schedule. Required permission: Recurring Invoices - Edit. |
| `REPAIRSHOPR_ADD_TICKET_COMMENT` | Add Ticket Comment | Tool to add a comment to an existing ticket in RepairShopr. Use when you need to add notes, updates, or responses to a ticket. Requires Tickets - Edit permission. Single-Customer Users can only access their own tickets. |
| `REPAIRSHOPR_ADD_TICKET_LINE_ITEM` | Add Ticket Line Item | Tool to add a line item to an existing ticket in RepairShopr. Use when you need to add products, services, or charges to a ticket. Requires Tickets - Edit permission. Single-customer users can only access their own tickets. |
| `REPAIRSHOPR_CHARGE_TICKET_TIMER` | Charge Ticket Timer | Tool to charge a timer entry for a specific ticket. Use when a timer entry needs to be converted to a billable line item on the ticket. Requires 'Ticket Timers - Overview' permission. The timer entry must exist and be associated with the specified ticket. |
| `REPAIRSHOPR_CONVERT_ESTIMATE_TO_INVOICE` | Convert Estimate to Invoice | Tool to convert an existing estimate to an invoice in RepairShopr. Use when you have an approved estimate that needs to be billed. Requires the estimate ID and appropriate permissions ("Estimates - View Details" and "Invoices - Create"). Returns the created invoice with all line items copied from the estimate. |
| `REPAIRSHOPR_CREATE_APPOINTMENT_TYPE` | Create Appointment Type | Tool to create a new appointment type in RepairShopr. Use when defining appointment categories with specific location settings. Requires Global Admin permission. |
| `REPAIRSHOPR_CREATE_CANNED_RESPONSE` | Create Canned Response | Tool to create a new Canned Response. Use when you need to add a pre-formatted response template for tickets. Requires 'Ticket Canned Responses - Manage' permission. |
| `REPAIRSHOPR_CREATE_CONTACT` | Create Contact | Tool to create a new contact associated with a customer. Use when you need to add a contact record to a customer account. Requires 'Customers - Edit' permission. |
| `REPAIRSHOPR_CREATE_CONTRACT` | Create Contract | Tool to create a new contract for a customer. Use when you need to establish a service contract with specified terms and conditions. Requires Contracts - Edit permission. |
| `REPAIRSHOPR_CREATE_INVOICE_LINE_ITEM` | Create Invoice Line Item | Tool to create a new line item on an existing invoice in RepairShopr. Use when adding products or services to an invoice that already exists. Required permission: Invoices - Edit. |
| `REPAIRSHOPR_CREATE_PHONE` | Create Phone | Tool to create a phone number for a customer. Use when you need to add a new phone number record to a customer's profile. Requires Customers - Edit permission. Single-Customer Users can only access their own records. |
| `REPAIRSHOPR_CREATE_PORTAL_USER` | Create Portal User | Tool to create a portal user in RepairShopr. Use when you need to give a customer or contact access to the customer portal. Requires Global Admin permission. |
| `REPAIRSHOPR_CREATE_PRODUCT_SERIAL` | Create Product Serial | Tool to create a product serial for a specific product. Use when you need to add a serial number to track individual product instances. |
| `REPAIRSHOPR_CREATE_RMM_ALERT` | Create RMM Alert | Tool to create an RMM Alert. Use when you need to register a new monitoring alert for an asset or customer. Requires 'RMM Alerts - Create' permission. Single-customer users can only create alerts for their own resources. |
| `REPAIRSHOPR_CREATE_SCHEDULE` | Create Invoice Schedule | Tool to create a recurring invoice schedule. Use when setting up automated invoicing for a customer at regular intervals. Requires Recurring Invoices - New permission. |
| `REPAIRSHOPR_CREATE_TICKET` | Create Ticket | Tool to create a new ticket in RepairShopr. Use when you need to create a support ticket for a customer. Requires customer_id. Single-customer users can only access their own tickets. |
| `REPAIRSHOPR_CREATE_TICKET_TIMER` | Create Ticket Timer | Tool to create a ticket timer entry for a specific ticket in RepairShopr. Use when you need to log time spent on a ticket. Requires Ticket Timers - Overview permission. |
| `REPAIRSHOPR_CREATE_VENDOR` | Create Vendor | Tool to create a new vendor. Use when you need to add a vendor record with contact details and information. Required permission: Vendors - New. |
| `REPAIRSHOPR_CREATE_WIKI_PAGE` | Create Wiki Page | Tool to create a Wiki Page in RepairShopr. Use when you need to add documentation or knowledge base content. Requires Documentation - Create permission. |
| `REPAIRSHOPR_DELETE_APPOINTMENT` | Delete Appointment | Tool to delete a specific appointment by its ID. Use when an appointment is canceled and needs removal permanently. |
| `REPAIRSHOPR_DELETE_APPOINTMENT_TYPE` | Delete Appointment Type | Tool to delete an Appointment Type by ID. Use when an appointment type is no longer needed and requires permanent removal. Requires Global Admin permission. |
| `REPAIRSHOPR_DELETE_CANNED_RESPONSE` | Delete Canned Response | Tool to delete a specific canned response by ID. Use when a canned response template is no longer needed and should be permanently removed. Required permission: Ticket Canned Responses - Manage. |
| `REPAIRSHOPR_DELETE_CONTACT` | Delete Contact | Tool to delete a specific contact by ID. Use when you need to permanently remove a contact record. Requires permission: Customers - Edit. Single-Customer Users can only access own contacts. |
| `REPAIRSHOPR_DELETE_CONTRACT` | Delete Contract | Tool to delete a contract by its unique ID. Use when a contract needs to be permanently removed from the system. Required permission: Contracts - Delete. |
| `REPAIRSHOPR_DELETE_CUSTOMER` | Delete Customer | Tool to delete a specific customer by ID. Use after confirming the customer ID when you need to remove a customer record permanently. |
| `REPAIRSHOPR_DELETE_ESTIMATE` | Delete Estimate | Permanently deletes an estimate from RepairShopr by its unique ID. Use this action when you need to remove an estimate that is no longer needed, was created in error, or has been replaced. The deletion is permanent and cannot be undone. The API will return a confirmation message indicating successful deletion, or notify if the estimate was not found or already deleted. |
| `REPAIRSHOPR_DELETE_ESTIMATE_LINE_ITEM` | Delete Estimate Line Item | Tool to delete a line item from an estimate in RepairShopr. Use when you need to remove a specific product or service entry from an estimate. Required permission: Estimates - Edit. The API returns the updated estimate object with recalculated totals after deletion. |
| `REPAIRSHOPR_DELETE_INVOICE` | Delete Invoice | Tool to delete a specific invoice by ID. Use when you need to remove an invoice permanently after confirming it's no longer needed. Ensure no dependent records require it before running. |
| `REPAIRSHOPR_DELETE_INVOICE_LINE_ITEM` | Delete Invoice Line Item | Tool to delete a specific line item from an invoice by invoice ID and line item ID. Use when you need to remove an individual line item from an existing invoice. |
| `REPAIRSHOPR_DELETE_PHONE` | Delete Phone | Tool to delete a specific phone by ID for a given customer. Use when you need to remove a phone number record permanently. Requires Customers - Edit permission. |
| `REPAIRSHOPR_DELETE_PORTAL_USER` | Delete Portal User | Tool to permanently delete a portal user by ID. Use when removing portal user access. Requires Global Admin permission to execute successfully. |
| `REPAIRSHOPR_DELETE_RMM_ALERT` | Delete RMM Alert | Tool to delete/clear an RMM alert by its ID. Use when an RMM alert needs to be cleared or removed. Requires 'RMM Alerts - Delete' permission. Single-customer users can only delete their own alerts. |
| `REPAIRSHOPR_DELETE_SCHEDULE` | Delete Schedule | Tool to delete a specific schedule by its ID. Use when a recurring invoice schedule needs to be permanently removed. Required permission: Recurring Invoices - Delete. |
| `REPAIRSHOPR_DELETE_TICKET` | Delete Ticket | Tool to delete a specific ticket by its ID. Use when a ticket needs to be permanently removed. Requires 'Tickets - Delete' permission. Single-Customer Users can only delete their own tickets. |
| `REPAIRSHOPR_DELETE_TICKET_TIMER` | Delete Ticket Timer | Tool to delete a specific ticket timer entry by its ID. Use when a timer entry needs to be removed from a ticket. Required permission: Ticket Timers - Overview. |
| `REPAIRSHOPR_DELETE_WIKI_PAGE` | Delete Wiki Page | Tool to delete a Wiki Page by its ID. Use when a wiki page needs to be permanently removed. Required permission: Documentation - Delete. |
| `REPAIRSHOPR_EMAIL_ESTIMATE` | Email Estimate | Tool to send an estimate to a customer via email. Use when you need to email an existing estimate to the associated customer. |
| `REPAIRSHOPR_EMAIL_INVOICE` | Email Invoice | Tool to send an invoice to a customer via email. Use when you need to email an existing invoice to the associated customer. Requires the invoice ID. |
| `REPAIRSHOPR_GET_APPOINTMENT` | Get Appointment | Tool to retrieve details of a specific appointment by its ID. Use when you need exact details of an appointment by ID. |
| `REPAIRSHOPR_GET_APPOINTMENTS` | Get Appointments | Retrieves a list of appointments from RepairShopr. Supports filtering by date range and user assignment, with pagination for large result sets. Each appointment includes full details such as summary, description, start/end times, location, and associated customer information when available. Returns up to 25 appointments per page. |
| `REPAIRSHOPR_GET_APPOINTMENT_TYPE` | Get Appointment Type | Tool to retrieve details of a specific appointment type by ID. Use when you need to fetch appointment type configuration including name, location settings, and email instructions. Requires Global Admin permission. |
| `REPAIRSHOPR_GET_ASSET` | Get Asset | Tool to retrieve details of a specific asset by its ID. Use when you need to confirm asset details after obtaining its ID. Requires Assets - View Details permission. |
| `REPAIRSHOPR_GET_ASSETS` | Get Assets | Tool to retrieve a paginated list of assets. Use when you need to list or search assets by SNMP status, customer, asset type, or query after authenticating. Returns 25 items per page. |
| `REPAIRSHOPR_GET_CALLER_ID` | Get Caller ID | Tool to retrieve caller identification information based on a phone number. Use when you need to identify a caller by their phone number and check associated ticket status. |
| `REPAIRSHOPR_GET_CANNED_RESPONSE_SETTING` | Get Canned Response Settings | Tool to retrieve settings for Canned Responses. Use when you need to get available categories and subjects for canned responses. Requires 'Ticket Canned Responses - Manage' permission. Single-Customer Users can only access their own canned responses. |
| `REPAIRSHOPR_GET_CONTACT` | Get Contact | Tool to retrieve a specific contact by ID. Use when you need to fetch detailed information about a single contact. Requires 'Customers - View Detail' permission. |
| `REPAIRSHOPR_GET_CONTACTS` | Get Contacts | Tool to retrieve a paginated list of contacts. Use when you need to fetch contacts optionally filtered by customer. Returns up to 50 contacts per page. |
| `REPAIRSHOPR_GET_CONTRACT` | Get Contract | Tool to retrieve details of a specific contract by ID. Use when you need contract information including terms, dates, and status. Requires Contracts - Edit permission. |
| `REPAIRSHOPR_GET_CUSTOMER` | Get Customer | Tool to retrieve details of a specific customer by ID. Use after confirming the customer exists. Example: "Get customer details for ID 123". |
| `REPAIRSHOPR_GET_CUSTOMER_PAYMENT_PROFILES` | Get Customer Payment Profiles | Tool to retrieve a paginated list of payment profiles for a specific customer. Use when you need to view saved payment methods for a customer. |
| `REPAIRSHOPR_GET_CUSTOMERS` | Get Customers | Tool to retrieve a list of customers. Use when you need to search or filter customers with pagination. Returns up to 25 results per page. |
| `REPAIRSHOPR_GET_CUSTOMERS_AUTOCOMPLETE` | Get Customers Autocomplete | Tool to retrieve a list of customers for autocomplete query. Use when you need to search for customers to populate autocomplete suggestions or dropdown menus. Returns customers matching the search query. |
| `REPAIRSHOPR_GET_EMPLOYEE_TIME_CLOCK` | Get Employee Time Clock | Tool to retrieve the last time clock entry for a specific user. Use when needing the most recent clock-in/out. Example: "Get the latest time clock entry for user 5". |
| `REPAIRSHOPR_GET_ESTIMATE` | Get Estimate | Tool to retrieve details of a specific estimate by ID. Use when you need exact details of an estimate by ID. |
| `REPAIRSHOPR_GET_ESTIMATES` | Get Estimates | Retrieves a paginated list of estimates from RepairShopr. Returns estimate details including ID, number, customer information, status, amounts (subtotal, tax, total), and timestamps. Use this action to: - List all estimates in the system - Filter estimates by customer_id - Paginate through large result sets using page and per_page parameters The response includes pagination metadata showing total pages and current page number. |
| `REPAIRSHOPR_GET_INVOICE` | Get Invoice | Tool to retrieve details of a specific invoice by ID. Use after confirming the invoice exists. Example: "Get invoice details for ID 456". |
| `REPAIRSHOPR_GET_INVOICES` | Get Invoices | Tool to retrieve a paginated list of invoices. Use when you need to list invoices, optionally filtered by payment status, ticket association, or update date. Returns up to 25 invoices per page. |
| `REPAIRSHOPR_GET_INVOICE_TICKET` | Get Invoice Ticket | Tool to retrieve the associated ticket for a specific invoice. Use when you need ticket details linked to an invoice. Requires "Invoices - View Details" and "Tickets - View Details" permissions. |
| `REPAIRSHOPR_GET_LATEST_CUSTOMER` | Get Latest Customer | Tool to retrieve the most recently created customer. Use when you need to access the latest customer record without knowing their ID. Requires Customers - Edit permission. |
| `REPAIRSHOPR_GET_LEAD` | Get Lead | Tool to retrieve details of a specific lead by its ID. Use when you need to inspect a single lead after obtaining its ID. Example: "Get lead details for ID 123". |
| `REPAIRSHOPR_GET_LEADS` | Get Leads | Tool to retrieve a paginated list of leads. Use when you need to browse or filter potential customers. Returns up to 25 leads per page. |
| `REPAIRSHOPR_GET_ME` | Get Current User | Tool to retrieve information about the currently authenticated user. Use when you need to verify authentication, get the current user's details, or check their permissions across different modules. |
| `REPAIRSHOPR_GET_PAYMENT` | Get Payment | Tool to retrieve details of a specific payment by ID. Use after obtaining the payment ID. Example: "Get payment details for ID 123". |
| `REPAIRSHOPR_GET_PAYMENTS` | Get Payments | Tool to retrieve a paginated list of payments. Use when you need to view or search payment records, with optional filtering by query or pagination. |
| `REPAIRSHOPR_GET_PRODUCT` | Get Product | Retrieves comprehensive details for a specific product by its unique ID. Use this action when you need detailed product information including pricing, inventory levels, category, and other metadata. Requires a valid product ID (obtain via Get Products action if needed). Returns: Complete product details including retail/cost/wholesale pricing, current stock quantity, category information, tax status, and various product attributes. Example use cases: - "Get details for product ID 12345" - "What's the price and stock level for product 98765?" - "Retrieve full information about product 54321" |
| `REPAIRSHOPR_GET_PRODUCT_BY_BARCODE` | Get Product by Barcode | Retrieves product details by searching for a specific barcode (UPC code). Use this action when you have a product's barcode and need to look up its full details including pricing, inventory, and metadata. |
| `REPAIRSHOPR_GET_PRODUCTS` | Get Products | Retrieve a list of products from RepairShopr with optional filtering, searching, and sorting. All filters are optional - call without parameters to get all products. Results are paginated; use the 'meta' field in the response to determine if there are more pages. |
| `REPAIRSHOPR_GET_PRODUCTS_CATEGORIES` | Get Product Categories | Retrieve all product categories from RepairShopr. Returns a list of categories with their IDs, names, descriptions, and hierarchical relationships. Use this to discover available categories for organizing products, filtering product queries, or creating new products with proper categorization. |
| `REPAIRSHOPR_GET_PRODUCT_SERIALS` | Get Product Serials | Tool to retrieve all serial numbers for a specific product. Use when you need to list serials by product ID after confirming the product exists. |
| `REPAIRSHOPR_GET_PURCHASE_ORDER` | Get Purchase Order | Tool to retrieve details of a specific purchase order by ID. Use when you need to view purchase order details. Requires Purchase Orders - View Details permission. |
| `REPAIRSHOPR_GET_RMM_ALERT` | Get RMM Alert | Tool to retrieve details of an RMM Alert by its ID. Use when you need to check the status or details of a specific RMM alert. Requires 'RMM Alerts - List' permission. Single-customer users can only access their own RMM alerts. |
| `REPAIRSHOPR_GET_SCHEDULE` | Get Schedule | Tool to retrieve a specific schedule by ID. Use when you need to fetch detailed information about a recurring invoice schedule. Requires Recurring Invoices - List permission. |
| `REPAIRSHOPR_GET_SETTINGS` | Get Settings | Tool to retrieve account settings for the RepairShopr instance. Use when you need to access system configuration, preferences, or account-level settings. |
| `REPAIRSHOPR_GET_SETTINGS_PRINTING` | Get Printing Settings | Tool to retrieve printing settings configuration. Use when you need to get the messaging channel ID or registered printers for the account. |
| `REPAIRSHOPR_GET_SETTINGS_TABS` | Get Settings Tabs | Tool to retrieve the tabs settings configuration. Use when you need to determine which tabs (features) are enabled in the RepairShopr system. Returns boolean flags for each available tab, indicating whether it's enabled or disabled. |
| `REPAIRSHOPR_GET_TICKET` | Get Ticket | Tool to retrieve details of a specific ticket by its ID. Use when you need full ticket information after obtaining its ID. |
| `REPAIRSHOPR_GET_TICKETS_SETTINGS` | Get Tickets Settings | Tool to retrieve tickets settings and configuration. Use when you need to obtain available ticket statuses, appointment types, users for assignment, worksheet templates, or other ticket-related configuration metadata. |
| `REPAIRSHOPR_GET_USER` | Get User | Retrieve detailed information about a specific user (staff/technician) by their unique ID. Returns user details including full name, email, group membership, admin status, and timestamps. Use this when you need to look up a specific user's information or verify a user exists in the system. Example: "Get details for user ID 223535" |
| `REPAIRSHOPR_GET_USER_DEVICE` | Get User Device | Tool to retrieve details of a specific user device by its UUID. Use when you need to fetch information about a user's device. |
| `REPAIRSHOPR_GET_USERS` | Get Users | Retrieves a list of all users (staff members and technicians) in the RepairShopr system. Use this action when you need to: - List all available staff members and technicians - Map user IDs to names for assignment or display purposes - Get a complete roster of team members This endpoint requires no parameters and returns all active users in the system. |
| `REPAIRSHOPR_GET_VENDOR` | Get Vendor | Tool to retrieve details of a specific vendor by ID. Use after confirming the vendor exists. Required permission: Vendors - View Details. |
| `REPAIRSHOPR_GET_WIKI_PAGE` | Get Wiki Page | Tool to retrieve a Wiki Page by its ID. Use when you need to view documentation or knowledge base content. Required permission: Documentation - Allow Usage. |
| `REPAIRSHOPR_LIST_APPOINTMENT_TYPES` | List Appointment Types | Tool to retrieve a paginated list of all appointment types. Use when you need to view available appointment type configurations. Requires Global Admin permission. |
| `REPAIRSHOPR_LIST_CANNED_RESPONSES` | List Canned Responses | Tool to retrieve a list of Canned Responses with optional search query. Use when you need to find pre-formatted response templates for tickets. Requires 'Ticket Canned Responses - Manage' permission. |
| `REPAIRSHOPR_LIST_CONTRACTS` | List Contracts | Tool to retrieve a paginated list of contracts. Use when you need to list contracts with details including terms, dates, and status. Returns up to 50 contracts per page. Requires Contracts - List/Search permission. |
| `REPAIRSHOPR_LIST_ITEMS` | List Items | Tool to retrieve a paginated list of Part Orders. Use when you need to list part orders, optionally filtered by completion status or search query. Returns up to 50 items per page. Requires Parts Orders - List/Search permission. |
| `REPAIRSHOPR_LIST_LINE_ITEMS` | List Line Items | Tool to retrieve a paginated list of Line Items from RepairShopr. Use when you need to list line items across invoices or estimates, with optional filtering by specific invoice/estimate ID or to get all line items associated with any invoice or estimate. Required permission: Global Admin. |
| `REPAIRSHOPR_LIST_NEW_TICKET_FORMS` | List New Ticket Forms | Tool to retrieve a paginated list of Ticket Forms. Use when you need to view available ticket form configurations for ticket workflows. Requires permission: Ticket Workflows - Manage. |
| `REPAIRSHOPR_LIST_PAYMENT_METHODS` | List Payment Methods | Tool to retrieve a paginated list of payment methods. Use when you need to view available payment methods in the system. All users except Single Customer Users may use this action. |
| `REPAIRSHOPR_LIST_PHONES` | List Phones | Tool to retrieve a paginated list of phone numbers for a specific customer. Use when you need to view all phone contacts for a customer. Requires Customers - View Detail permission. Single-Customer Users can only access their own records. |
| `REPAIRSHOPR_LIST_PORTAL_USERS` | List Portal Users | Tool to retrieve a paginated list of Portal Users. Use when you need to search or filter portal users by customer or email. Returns up to 100 results per page. Requires Global Admin permission. |
| `REPAIRSHOPR_LIST_PURCHASE_ORDERS` | List Purchase Orders | Tool to retrieve a paginated list of purchase orders. Use when you need to list all purchase orders in the system. Returns up to 20 purchase orders per page. Requires Purchase Orders - List/Search permission. |
| `REPAIRSHOPR_LIST_RMM_ALERTS` | List RMM Alerts | Tool to retrieve a paginated list of RMM Alerts. Use when you need to browse or filter RMM alerts by status. Returns up to 25 alerts per page. Requires 'RMM Alerts - List' permission. Single-customer users can only access their own RMM alerts. |
| `REPAIRSHOPR_LIST_SCHEDULES` | List Schedules | Tool to retrieve a paginated list of invoice schedules. Use when you need to list recurring invoice schedules, optionally filtered by customer. Returns up to 25 schedules per page. Requires Recurring Invoices - List permission. |
| `REPAIRSHOPR_LIST_TICKET_COMMENTS` | List Ticket Comments | Tool to retrieve comments for a specific ticket by its ID. Use when you need to view all comments or filter comments by date. Requires Tickets - View Details or Tickets - View 'Their Ticket' Details permission. Single-Customer Users can only access comments for their own tickets. |
| `REPAIRSHOPR_LIST_TICKETS` | List Tickets | Tool to retrieve a paginated list of tickets. Use when you need to list or search tickets with optional filtering by customer, status, date ranges, or assigned user. Returns up to 25 tickets per page. Single-customer users can only access their own tickets. |
| `REPAIRSHOPR_LIST_TICKET_TIMERS` | List Ticket Timers | Tool to retrieve a paginated list of Ticket Timers from RepairShopr. Use when you need to list timer entries, optionally filtered by creation date range. Returns up to 25 timer entries per page. Requires 'Ticket Timers - Overview' permission. |
| `REPAIRSHOPR_LIST_TIMELOGS` | List Timelogs | Tool to retrieve a paginated list of timelogs. Returns timelogs for any/all users if you have 'Timelogs - Manage' permission, otherwise results are scoped to the current user. Use when you need to view time tracking records. |
| `REPAIRSHOPR_LIST_VENDORS` | List Vendors | Tool to retrieve a paginated list of vendors. Use when you need to browse or search through vendors. Returns up to 100 results per page. Required permission: Vendors - List. |
| `REPAIRSHOPR_LIST_WIKI_PAGES` | List Wiki Pages | Tool to retrieve a paginated list of Wiki Pages. Use when you need to browse or search documentation. Returns 100 results per page. Required permission: Documentation - Allow Usage. |
| `REPAIRSHOPR_LIST_WORKSHEET_RESULTS` | List Worksheet Results | Tool to retrieve a paginated list of Worksheet Results for a specific ticket. Use when you need to view worksheets/checklists completed on a ticket. Required permissions: "Tickets - View Details" or "Tickets - View 'Their Ticket' Details (assigned to them)". Single-Customer Users can only access their own tickets. |
| `REPAIRSHOPR_MUTE_RMM_ALERT` | Mute RMM Alert | Tool to mute an RMM Alert by ID for a specified duration. Use when you need to temporarily silence an alert. Requires RMM Alerts - Clear/Manage permission. Single-Customer Users can only access their own RMM Alerts. |
| `REPAIRSHOPR_POST_APPOINTMENT` | Create Appointment | Tool to create a new appointment. Use after gathering summary and date range. |
| `REPAIRSHOPR_POST_ASSET` | Create Asset | Tool to create a new asset. Use when you need to register a device under a customer with either an existing or new asset type. |
| `REPAIRSHOPR_POST_CUSTOMER` | Create Customer | Tool to create a new customer. Use when you need to add a customer record with contact details. |
| `REPAIRSHOPR_POST_ESTIMATE` | Create Estimate | Tool to create a new estimate. Use when you have final customer details and line items ready to generate an estimate in RepairShopr. |
| `REPAIRSHOPR_POST_INVOICE` | Create Invoice | Create a new invoice for a customer in RepairShopr. Requires a valid customer_id, invoice date, and due date. Optionally include line items with SKU/item codes, quantities, prices, and tax settings. Supports custom invoice numbers, purchase orders, notes, and hardware costs. Returns the created invoice with auto-generated invoice number if not provided. |
| `REPAIRSHOPR_POST_LEAD` | Create Lead | Tool to create a new lead. Use when you need to add a potential customer to the system. |
| `REPAIRSHOPR_POST_PAYMENT` | Create Payment | Create a payment record in RepairShopr. Records a payment against an invoice for a customer. Requires customer_id and amount_cents. Either invoice_id or invoice_number must be provided to link the payment to an invoice. |
| `REPAIRSHOPR_POST_PRODUCT` | Create Product | Tool to create a new product in inventory. Use when you need to add an item with price and details to your RepairShopr catalog. |
| `REPAIRSHOPR_POST_PRODUCT_PHOTO` | Add Product Photo | Tool to add photo(s) to a specific product. Use when you need to attach one or more images to a product after confirming the product ID. |
| `REPAIRSHOPR_POST_PURCHASE_ORDER` | Create Purchase Order | Tool to create a new purchase order for a vendor. Use when you need to order inventory or supplies from a vendor in RepairShopr. Requires Purchase Orders - Edit permission. |
| `REPAIRSHOPR_POST_USER_DEVICE` | Create User Device | Tool to create a new user device. Use when you need to register a device for a user in RepairShopr. |
| `REPAIRSHOPR_PRINT_ESTIMATE` | Print Estimate | Tool to queue a print job for an estimate. Use when you need to send an existing estimate to the printer queue. |
| `REPAIRSHOPR_PRINT_INVOICE` | Print Invoice | Tool to queue a print job for an invoice in RepairShopr. Use when you need to send an invoice to the print queue. Requires Invoices - View Details permission. |
| `REPAIRSHOPR_PRINT_TICKET` | Print Ticket | Tool to print a ticket by its ID. Use when you need to generate a printable version of a ticket. Requires 'Tickets - View Details' permission. Single-Customer Users can only print their own tickets. |
| `REPAIRSHOPR_PROCESS_TICKET_FORM` | Process Ticket Form | Tool to process a ticket form submission and create a new ticket in RepairShopr. Use when you have a ticket form ID and need to submit customer details, ticket information, and optionally schedule an appointment. Required permission: Tickets - Create. |
| `REPAIRSHOPR_RECEIVE_PURCHASE_ORDER` | Receive Purchase Order | Tool to mark a purchase order as received in RepairShopr. Use when inventory has been delivered and needs to be received into stock. Can receive all items or a specific line item. Note: Products marked as serialized will require serial numbers to be provided. Requires Purchase Orders - Edit permission. |
| `REPAIRSHOPR_REMOVE_TICKET_LINE_ITEM` | Remove Ticket Line Item | Tool to delete a line item from an existing ticket in RepairShopr. Use when you need to remove a product, service, or charge from a ticket. Requires Tickets - Edit permission. Single-customer users can only access their own tickets. |
| `REPAIRSHOPR_SEARCH_ALL` | Search All | Tool to search across all RepairShopr entities including customers, contacts, assets, leads, invoices, estimates, tickets, products, purchase orders, vendors, reports, and wiki pages. Use when you need to find entities without knowing the specific type. Note: Requires appropriate permissions for each entity type returned in results (e.g., 'Customers - List/Search' for customer results, 'Leads - List/Search' for lead results). |
| `REPAIRSHOPR_UPDATE_APPOINTMENT` | Update Appointment | Tool to update an existing appointment by ID. Use when you need to modify appointment details like time, description, or attendees. |
| `REPAIRSHOPR_UPDATE_APPOINTMENT_TYPE` | Update Appointment Type | Tool to update an existing appointment type by ID. Use when modifying appointment type configuration including name, location settings, and email instructions. Requires Global Admin permission. |
| `REPAIRSHOPR_UPDATE_ASSET` | Update Asset | Tool to update an existing asset by its ID. Use when you need to modify asset details such as name, serial number, type, or custom properties. Requires Assets - Edit permission. |
| `REPAIRSHOPR_UPDATE_CANNED_RESPONSE` | Update Canned Response | Tool to update an existing Canned Response by ID. Use when you need to modify the title, body, subject, or category of a pre-formatted response template. Required permission: Ticket Canned Responses - Manage. |
| `REPAIRSHOPR_UPDATE_CONTACT` | Update Contact | Tool to update an existing contact. Use when you need to modify contact information for an existing contact record. Requires 'Customers - Edit' permission. Single-Customer Users can only access their own contacts. |
| `REPAIRSHOPR_UPDATE_CONTRACT` | Update Contract | Tool to update an existing contract by ID. Use when you need to modify contract terms, status, or other details. Requires Contracts - Edit permission. |
| `REPAIRSHOPR_UPDATE_CUSTOMER` | Update Customer | Tool to update an existing customer by ID. Use when you need to modify customer details such as contact information, address, or preferences. Single-customer users can only access their own customer record. |
| `REPAIRSHOPR_UPDATE_ESTIMATE` | Update Estimate | Tool to update an existing estimate by ID. Use when you need to modify estimate details such as status, notes, customer, or other fields. Requires Estimates - Edit permission. |
| `REPAIRSHOPR_UPDATE_ESTIMATE_LINE_ITEM` | Update Estimate Line Item | Tool to update an existing line item on an estimate in RepairShopr. Use when you need to modify products or services on an estimate. Required permission: Estimates - Edit. |
| `REPAIRSHOPR_UPDATE_INVOICE` | Update Invoice | Tool to update an existing invoice by ID. All provided parameters overwrite existing values. Use when you need to modify invoice details such as notes, dates, amounts, or customer information. |
| `REPAIRSHOPR_UPDATE_INVOICE_LINE_ITEM` | Update Invoice Line Item | Tool to update an existing line item on an invoice in RepairShopr. Use when modifying the properties of a line item that already exists on an invoice. All parameters overwrite existing values. |
| `REPAIRSHOPR_UPDATE_LEAD` | Update Lead | Tool to update an existing lead by ID. Use when you need to modify lead details such as status, contact information, or notes. |
| `REPAIRSHOPR_UPDATE_PHONE` | Update Phone | Tool to update an existing phone number by ID. Use when you need to modify phone details for a customer's existing phone record. Requires Customers - Edit permission. Single-Customer Users can only access their own records. |
| `REPAIRSHOPR_UPDATE_PORTAL_USER` | Update Portal User | Tool to update an existing Portal User by ID. Use when you need to modify portal user details such as email, password, or associated customer/contact. Requires Global Admin permission. |
| `REPAIRSHOPR_UPDATE_PRODUCT` | Update Product | Tool to update an existing product by ID. Use when you need to modify product details such as name, description, pricing, inventory levels, or other attributes. |
| `REPAIRSHOPR_UPDATE_PRODUCT_SERIAL` | Update Product Serial | Tool to update an existing product serial by ID. Use when you need to modify serial number details, pricing, or condition for a product. Required permission: Products - Edit. |
| `REPAIRSHOPR_UPDATE_SCHEDULE` | Update Invoice Schedule | Tool to update an existing invoice schedule by ID. Use when modifying recurring invoice settings such as frequency, name, or payment options. Requires Recurring Invoices - Edit permission. |
| `REPAIRSHOPR_UPDATE_SCHEDULE_LINE_ITEM` | Update Schedule Line Item | Tool to update a line item in an invoice schedule. Use when modifying existing recurring charges or one-time items in a schedule. Required permission: Recurring Invoices - Edit. |
| `REPAIRSHOPR_UPDATE_TICKET` | Update Ticket | Tool to update an existing ticket by ID in RepairShopr. Use when you need to modify ticket details such as status, priority, subject, or other fields. Requires 'Tickets - Edit' permission. Single-Customer Users can only update their own tickets. |
| `REPAIRSHOPR_UPDATE_TICKET_LINE_ITEM` | Update Ticket Line Item | Tool to update an existing line item on a ticket in RepairShopr. Use when you need to modify products, services, or charges already added to a ticket. Requires Tickets - Edit permission. Single-customer users can only access their own tickets. |
| `REPAIRSHOPR_UPDATE_TICKET_TIMER` | Update Ticket Timer | Tool to update an existing ticket timer entry in RepairShopr. Use when you need to modify time logged on a ticket. Requires Ticket Timers - Overview permission. |
| `REPAIRSHOPR_UPDATE_TIMELOG` | Update Timelog | Tool to update an existing timelog entry in RepairShopr. Use when you need to modify clock-in/out times, add or update notes, or record lunch breaks. Users with 'Timelogs - Manage' permission may update any user's timelogs, otherwise updates are scoped to the current user's timelogs only. |
| `REPAIRSHOPR_UPDATE_USER_DEVICE` | Update User Device | Tool to update an existing user device by UUID. Use when you need to modify device information such as the GCM registration token. |
| `REPAIRSHOPR_UPDATE_VENDOR` | Update Vendor | Tool to update an existing vendor by ID. Use when you need to modify vendor details such as contact information, address, or notes. Required permission: Vendors - Edit. |
| `REPAIRSHOPR_UPDATE_WIKI_PAGE` | Update Wiki Page | Tool to update an existing Wiki Page by ID. Use when you need to modify documentation or knowledge base content. Required permission: Documentation - Edit. |

## Supported Triggers

None listed.

## Creating MCP Server - Stand-alone vs Composio SDK

The Repairshopr MCP server is an implementation of the Model Context Protocol that connects your AI agents and assistants directly to Repairshopr. Instead of manually wiring Repairshopr APIs, OAuth, and scopes yourself, you get a structured, tool-based interface that an LLM can call safely.
With Composio's managed implementation, you don't have to create your own developer app. For production, if you're building an end product, we recommend using your own credentials. The managed server helps you prototype fast and go from 0-1 faster.

## Step-by-step Guide

### 1. Prerequisites

You will need:
- A Composio API key
- An OpenAI API key (used by Autogen's OpenAIChatCompletionClient)
- A Repairshopr account you can connect to Composio
- Some basic familiarity with Autogen and Python async

### 1. Getting API Keys for OpenAI and Composio

OpenAI API Key
- Go to the [OpenAI dashboard](https://platform.openai.com/settings/organization/api-keys) and create an API key. You'll need credits to use the models, or you can connect to another model provider.
- Keep the API key safe.
Composio API Key
- Log in to the [Composio dashboard](https://dashboard.composio.dev?utm_source=toolkits&utm_medium=framework_docs).
- Navigate to your API settings and generate a new API key.
- Store this key securely as you'll need it for authentication.

### 2. Install dependencies

Install Composio, Autogen extensions, and dotenv.
What's happening:
- composio connects your agent to Repairshopr via MCP
- autogen-agentchat provides the AssistantAgent class
- autogen-ext-openai provides the OpenAI model client
- autogen-ext-tools provides MCP workbench support
```bash
pip install composio python-dotenv
pip install autogen-agentchat autogen-ext-openai autogen-ext-tools
```

### 3. Set up environment variables

Create a .env file in your project folder.
What's happening:
- COMPOSIO_API_KEY is required to talk to Composio
- OPENAI_API_KEY is used by Autogen's OpenAI client
- USER_ID is how Composio identifies which user's Repairshopr connections to use
```bash
COMPOSIO_API_KEY=your-composio-api-key
OPENAI_API_KEY=your-openai-api-key
USER_ID=your-user-identifier@example.com
```

### 4. Import dependencies and create Tool Router session

What's happening:
- load_dotenv() reads your .env file
- Composio(api_key=...) initializes the SDK
- create(...) creates a Tool Router session that exposes Repairshopr tools
- session.mcp.url is the MCP endpoint that Autogen will connect to
```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Repairshopr session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["repairshopr"]
    )
    url = session.mcp.url
```

### 5. Configure MCP parameters for Autogen

Autogen expects parameters describing how to talk to the MCP server. That is what StreamableHttpServerParams is for.
What's happening:
- url points to the Tool Router MCP endpoint from Composio
- timeout is the HTTP timeout for requests
- sse_read_timeout controls how long to wait when streaming responses
- terminate_on_close=True cleans up the MCP server process when the workbench is closed
```python
# Configure MCP server parameters for Streamable HTTP
server_params = StreamableHttpServerParams(
    url=url,
    timeout=30.0,
    sse_read_timeout=300.0,
    terminate_on_close=True,
    headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
)
```

### 6. Create the model client and agent

What's happening:
- OpenAIChatCompletionClient wraps the OpenAI model for Autogen
- McpWorkbench connects the agent to the MCP tools
- AssistantAgent is configured with the Repairshopr tools from the workbench
```python
# Create model client
model_client = OpenAIChatCompletionClient(
    model="gpt-5",
    api_key=os.getenv("OPENAI_API_KEY")
)

# Use McpWorkbench as context manager
async with McpWorkbench(server_params) as workbench:
    # Create Repairshopr assistant agent with MCP tools
    agent = AssistantAgent(
        name="repairshopr_assistant",
        description="An AI assistant that helps with Repairshopr operations.",
        model_client=model_client,
        workbench=workbench,
        model_client_stream=True,
        max_tool_iterations=10
    )
```

### 7. Run the interactive chat loop

What's happening:
- The script prompts you in a loop with You:
- Autogen passes your input to the model, which decides which Repairshopr tools to call via MCP
- agent.run_stream(...) yields streaming messages as the agent thinks and calls tools
- Typing exit, quit, or bye ends the loop
```python
print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
print("Ask any Repairshopr related question or task to the agent.\n")

# Conversation loop
while True:
    user_input = input("You: ").strip()

    if user_input.lower() in ["exit", "quit", "bye"]:
        print("\nGoodbye!")
        break

    if not user_input:
        continue

    print("\nAgent is thinking...\n")

    # Run the agent with streaming
    try:
        response_text = ""
        async for message in agent.run_stream(task=user_input):
            if hasattr(message, "content") and message.content:
                response_text = message.content

        # Print the final response
        if response_text:
            print(f"Agent: {response_text}\n")
        else:
            print("Agent: I encountered an issue processing your request.\n")

    except Exception as e:
        print(f"Agent: Sorry, I encountered an error: {str(e)}\n")
```

## Complete Code

```python
import asyncio
import os
from dotenv import load_dotenv
from composio import Composio

from autogen_agentchat.agents import AssistantAgent
from autogen_ext.models.openai import OpenAIChatCompletionClient
from autogen_ext.tools.mcp import McpWorkbench, StreamableHttpServerParams

load_dotenv()

async def main():
    # Initialize Composio and create a Repairshopr session
    composio = Composio(api_key=os.getenv("COMPOSIO_API_KEY"))
    session = composio.create(
        user_id=os.getenv("USER_ID"),
        toolkits=["repairshopr"]
    )
    url = session.mcp.url

    # Configure MCP server parameters for Streamable HTTP
    server_params = StreamableHttpServerParams(
        url=url,
        timeout=30.0,
        sse_read_timeout=300.0,
        terminate_on_close=True,
        headers={"x-api-key": os.getenv("COMPOSIO_API_KEY")}
    )

    # Create model client
    model_client = OpenAIChatCompletionClient(
        model="gpt-5",
        api_key=os.getenv("OPENAI_API_KEY")
    )

    # Use McpWorkbench as context manager
    async with McpWorkbench(server_params) as workbench:
        # Create Repairshopr assistant agent with MCP tools
        agent = AssistantAgent(
            name="repairshopr_assistant",
            description="An AI assistant that helps with Repairshopr operations.",
            model_client=model_client,
            workbench=workbench,
            model_client_stream=True,
            max_tool_iterations=10
        )

        print("Chat started! Type 'exit' or 'quit' to end the conversation.\n")
        print("Ask any Repairshopr related question or task to the agent.\n")

        # Conversation loop
        while True:
            user_input = input("You: ").strip()

            if user_input.lower() in ['exit', 'quit', 'bye']:
                print("\nGoodbye!")
                break

            if not user_input:
                continue

            print("\nAgent is thinking...\n")

            # Run the agent with streaming
            try:
                response_text = ""
                async for message in agent.run_stream(task=user_input):
                    if hasattr(message, 'content') and message.content:
                        response_text = message.content

                # Print the final response
                if response_text:
                    print(f"Agent: {response_text}\n")
                else:
                    print("Agent: I encountered an issue processing your request.\n")

            except Exception as e:
                print(f"Agent: Sorry, I encountered an error: {str(e)}\n")

if __name__ == "__main__":
    asyncio.run(main())
```

## Conclusion

You now have an Autogen assistant wired into Repairshopr through Composio's Tool Router and MCP. From here you can:
- Add more toolkits to the toolkits list, for example notion or hubspot
- Refine the agent description to point it at specific workflows
- Wrap this script behind a UI, Slack bot, or internal tool
Once the pattern is clear for Repairshopr, you can reuse the same structure for other MCP-enabled apps with minimal code changes.

## How to build Repairshopr MCP Agent with another framework

- [OpenAI Agents SDK](https://composio.dev/toolkits/repairshopr/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/repairshopr/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/repairshopr/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/repairshopr/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/repairshopr/framework/codex)
- [OpenClaw](https://composio.dev/toolkits/repairshopr/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/repairshopr/framework/hermes-agent)
- [CLI](https://composio.dev/toolkits/repairshopr/framework/cli)
- [Google ADK](https://composio.dev/toolkits/repairshopr/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/repairshopr/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/repairshopr/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/repairshopr/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/repairshopr/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/repairshopr/framework/crew-ai)

## Related Toolkits

- [Hubspot](https://composio.dev/toolkits/hubspot) - HubSpot is an all-in-one marketing, sales, and customer service platform. It lets teams nurture leads, automate outreach, and track every customer interaction in one place.
- [Pipedrive](https://composio.dev/toolkits/pipedrive) - Pipedrive is a sales management platform offering pipeline visualization, lead tracking, and workflow automation. It helps sales teams keep deals moving forward efficiently and never miss a follow-up.
- [Salesforce](https://composio.dev/toolkits/salesforce) - Salesforce is a leading CRM platform that helps businesses manage sales, service, and marketing. It centralizes customer data, enabling teams to drive growth and build strong relationships.
- [Apollo](https://composio.dev/toolkits/apollo) - Apollo is a CRM and lead generation platform that helps businesses discover contacts and manage sales pipelines. Use it to streamline customer outreach and track your deals from one place.
- [Attio](https://composio.dev/toolkits/attio) - Attio is a customizable CRM and workspace for managing your team's relationships and workflows. It helps teams organize contacts, automate tasks, and collaborate more efficiently.
- [Acculynx](https://composio.dev/toolkits/acculynx) - AccuLynx is a cloud-based roofing business management software for contractors. It streamlines project tracking, lead management, and document sharing.
- [Addressfinder](https://composio.dev/toolkits/addressfinder) - Addressfinder is a data quality platform for verifying addresses, emails, and phone numbers. It helps you ensure accurate customer and contact data every time.
- [Affinity](https://composio.dev/toolkits/affinity) - Affinity is a relationship intelligence CRM that helps private capital investors find, manage, and close more deals. It streamlines deal flow and surfaces key connections to help you win opportunities.
- [Agencyzoom](https://composio.dev/toolkits/agencyzoom) - AgencyZoom is a sales and performance platform built for P&C insurance agencies. It helps agents boost sales, retain clients, and analyze producer results in one place.
- [Bettercontact](https://composio.dev/toolkits/bettercontact) - Bettercontact is a smart contact enrichment tool for finding emails and phone numbers. It helps boost lead generation with automated, waterfall search across multiple sources.
- [Blackbaud](https://composio.dev/toolkits/blackbaud) - Blackbaud provides cloud-based software for nonprofits, schools, and healthcare institutions. It streamlines fundraising, donor management, and mission-driven operations.
- [Brilliant directories](https://composio.dev/toolkits/brilliant_directories) - Brilliant Directories is an all-in-one platform for building and managing online membership communities and business directories. It streamlines listings, member management, and engagement tools into a single, easy interface.
- [Capsule crm](https://composio.dev/toolkits/capsule_crm) - Capsule CRM is a user-friendly CRM platform for managing contacts and sales pipelines. It helps businesses organize relationships and streamline their sales process efficiently.
- [Centralstationcrm](https://composio.dev/toolkits/centralstationcrm) - CentralStationCRM is an easy-to-use CRM software focused on collaboration and long-term customer relationships. It helps teams manage contacts, deals, and communications all in one place.
- [Clientary](https://composio.dev/toolkits/clientary) - Clientary is a platform for managing clients, invoices, projects, proposals, and more. It streamlines client work and saves you serious admin time.
- [Close](https://composio.dev/toolkits/close) - Close is a CRM platform built for sales teams, combining calling, email automation, and predictive dialers. It streamlines sales workflows and boosts productivity with all-in-one communication tools.
- [Dropcontact](https://composio.dev/toolkits/dropcontact) - Dropcontact is a B2B email finder and data enrichment service for professionals. It delivers verified email addresses and enriches contact info with up-to-date data.
- [Dynamics365](https://composio.dev/toolkits/dynamics365) - Dynamics 365 is Microsoft's platform combining CRM, ERP, and productivity apps. It streamlines sales, marketing, service, and operations in one place.
- [Espocrm](https://composio.dev/toolkits/espocrm) - EspoCRM is an open-source web application for managing customer relationships. It helps businesses organize contacts, track leads, and streamline their sales process.
- [Fireberry](https://composio.dev/toolkits/fireberry) - Fireberry is a CRM platform that streamlines customer and sales management. It helps businesses organize contacts, automate sales, and integrate with other business tools.

## Frequently Asked Questions

### What are the differences in Tool Router MCP and Repairshopr MCP?

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

### Can I use Tool Router MCP with Autogen?

Yes, you can. Autogen 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 Repairshopr tools.

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

Yes, absolutely. You can configure which Repairshopr 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 Repairshopr data and credentials are handled as safely as possible.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
