# Forcemanager — how to use (mcp.ai)

Connect your Forcemanager account and use 20 tools for CRM straight from your AI agent. Connect with your own API key. ForceManager is a mobile-first CRM designed to enhance sales team productivity by providing real-time insights and streamlined management of customer interactions.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_forcemanager?ms=1787293680000`
Add it as a custom/remote MCP connector in your client (Claude, Cursor, VS Code…), then authenticate when prompted. Once connected, ask the agent to use the server's tools (e.g. `forcemanager_delete_activity`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/forcemanager`
Auth: `Authorization: Bearer sk_live_…` — create a workspace API key at https://mcp.ai/settings/api-keys
Discover endpoints: `GET https://api.mcp.ai/api/forcemanager/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/forcemanager/delete/activity` — Delete an existing activity by ID. Tries multiple base hosts and path variants to maximize compatibility across environments and gateways.
  - body: { id: integer, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/delete/company` — Tool to delete a company by its ForceManager ID. Use when you need to remove an existing company from the system.
  - body: { id: integer, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/delete/contact` — Permanently deletes a contact from ForceManager by its unique ID. This action removes the specified contact and all associated data. The operation is irreversible. The action automatically tries multi
  - body: { id: integer, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/delete/sales/order` — Delete a sales order by ID using ForceManager REST API. Tries multiple base hosts and path variants to maximize compatibility across environments. Accepts successful HTTP status codes (< 300) even whe
  - body: { id: integer, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/delete/sales/order/line` — Delete a sales order line by ID. Attempts deletion across multiple ForceManager API hosts and path variations to ensure compatibility. Returns detailed information about the deletion result, including
  - body: { id: integer, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/delete/value` — Delete a master-data value (Z_ table) by ID using ForceManager REST API. Tries multiple base hosts and path variants to maximize compatibility across environments. Accepts successful HTTP status codes
  - body: { id: integer, api_version?: integer, resourceName: string }
- `POST https://api.mcp.ai/api/forcemanager/delete/view` — Delete a saved view (custom filter) by its ID. Views in ForceManager are saved filter configurations that users create to quickly access filtered lists of entities (accounts, activities, opportunities
  - body: { id: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/activity` — Retrieves a single activity by its ID from ForceManager CRM. Use this tool when you need to: - Fetch details of a specific activity by its ID - Check if an activity exists - Retrieve activity data inc
  - body: { id: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/company` — Retrieve a single company by its ID from ForceManager. Returns company details when found, or an empty entity with found=False when the company doesn't exist or the API returns non-JSON content. The a
  - body: { id: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/internal/id` — Tool to retrieve ForceManager internal IDs mapping for a given externalId and entity type. This action calls the documented endpoint /api/internalid with required authentication headers and optional p
  - body: { page?: integer, type: string, externalId: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/product` — Retrieve a single product by its ID from ForceManager/Sage Sales Management. This action tries multiple known ForceManager API endpoints in sequence until one succeeds. If a product is not found or th
  - body: { id: integer, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/sales/order/line` — Retrieves a single sales order line by ID from ForceManager. A sales order line represents a product item within a sales order, including quantity, pricing, and discount information. Use this when you
  - body: { id: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/user` — Retrieves a single ForceManager user by their ID, returning comprehensive user information including name, email, phone, active status, permission level, manager, branches, and more. Returns the compl
  - body: { id: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/get/view` — Tool to get a single view by ID. Returns a list with zero or one view object.
  - body: { id: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/list/views` — Tool to list saved view filters. Use when you need to retrieve saved views for a specific entity (e.g., list views for entity 'account').
  - body: { q?: string, name?: string, page?: integer, entity?: string, api_version?: integer }
- `POST https://api.mcp.ai/api/forcemanager/update/activity` — Tool to update an existing activity by ID. Use when you need to change fields such as comment, date/time, linked entities, or geocode.
  - body: { id: integer, ext_id?: string, comment?: string, geocoded?: boolean, account_id?: integer, contact_id?: integer, is_checkin?: boolean, api_version?: integer, checkin_type?: string, sales_rep_id?: integer, opportunity_id?: integer, activity_type_id?: integer, geocode_accuracy?: number, geocode_latitude?: number, permission_level?: integer, geocode_longitude?: number, activity_date_time?: string, checkout_date_time?: string }
- `POST https://api.mcp.ai/api/forcemanager/update/company` — Update Company
  - body: { id: integer, fax?: string, name?: string, email?: string, phone?: string, ext_id?: string, comment?: string, phone_2?: string, website?: string, postcode?: string, address_1?: string, address_2?: string, branch_id?: string, city_name?: string, country_id?: string, segment_id?: string, vat_number?: string, api_version?: integer, extra_fields?: object, mobile_phone?: string, sales_rep_id?: string, province_name?: string, sales_rep_2_id?: string, sales_rep_3_id?: string, sales_rep_4_id?: string, sales_rep_5_id?: string, visible_to_all?: boolean, account_type_id?: string, product_rate_id?: string, permission_level?: integer, account_status_id?: string, geolocalisation_accuracy?: string }
- `POST https://api.mcp.ai/api/forcemanager/update/product` — Updates an existing product by ID in ForceManager. Use this tool to modify product details such as name, price, cost, description, availability status, category, family, discount limits, and custom fi
  - body: { id: integer, cost?: number, model?: string, price?: number, ext_id?: string, family_id?: integer, api_version?: integer, category_id?: integer, description?: string, extra_fields?: object, max_discount?: number, not_available?: boolean, permission_level?: integer }
- `POST https://api.mcp.ai/api/forcemanager/update/sales/order` — Update Sales Order
  - body: { id: integer, year?: integer, topic?: string, amount?: number, ext_id?: string, number?: integer, address?: string, rate_id?: integer, archived?: boolean, comments?: string, branch_id?: integer, status_id?: integer, account_id?: integer, contact_id?: integer, discount_1?: number, discount_2?: number, discount_3?: number, discount_4?: number, api_version?: integer, closed_date?: string, currency_id?: integer, extra_fields?: object, sales_rep_id?: integer, opportunity_id?: integer, closing_date_expected?: string }
- `POST https://api.mcp.ai/api/forcemanager/update/sales/order/line` — Tool to update sales order line by ID. Use when modifying details of an existing sales order line. Retries with query auth on 401 for proxy-pro host.
  - body: { id: integer|string, price?: number, quantity?: integer, discount_1?: number, discount_2?: number, discount_3?: number, discount_4?: number, product_id?: integer|string, api_version?: integer, final_price?: number, extra_fields?: object, salesorder_id?: integer|string }

## Example prompts
- "What can I do in Forcemanager?"
- "Show me a summary of my Forcemanager account"

## More
- Page: https://mcp.ai/forcemanager
- Agent spec (llms.txt): https://mcp.ai/forcemanager/llms.txt
- Postman collection: https://mcp.ai/forcemanager/postman.json
