bowimi-mcp
bowimi-mcp
MCP server for Bowimi — the field sales CRM. Connect Claude to your Bowimi account to query routes, locations, contacts, orders, products, and more.
Setup
1. Get your API key
In Bowimi: Settings → Integrations → Zapier → API Key
The key format is subdomain:longkey.
2. Install
git clone https://github.com/Caezarr/bowimi-mcp
cd bowimi-mcp
npm install3. Configure Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"bowimi": {
"command": "node",
"args": ["/absolute/path/to/bowimi-mcp/src/index.js"],
"env": {
"BOWIMI_SUBDOMAIN": "yoursubdomain",
"BOWIMI_API_KEY": "yoursubdomain:yourapikey"
}
}
}
}Restart Claude Desktop. The Bowimi tools will appear.
Alternative: email/password auth
Prefer the API key. Email/password stores a reusable session cookie in the MCP process — use it only on a machine you control, never in a shared config file.
"env": {
"BOWIMI_SUBDOMAIN": "yoursubdomain",
"BOWIMI_EMAIL": "you@company.com",
"BOWIMI_PASSWORD": "yourpassword"
}Available tools
Account & users
Tool | Description |
| Account info, brand details, permission keys |
| All users in the account |
| Currently authenticated user |
| Invite a new user (requires email + roleUuid) |
Tags & surveys
Tool | Description |
| All tag groups and tags (filter: |
| Create a tag in an existing group |
| All surveys and their questions |
Locations (entities)
Tool | Description |
| Full details for one or more locations by UUID |
| Tags assigned to locations |
| Products listed at locations |
| All contacts for a location |
| Create a new location/outlet |
Route
Tool | Description |
| Current user's planned stops (My Route) with names, addresses, coordinates, last contacted date |
Tasks
Tool | Description |
| Task counts: available, overdue, today |
| Create a new task (optionally linked to a location) |
Orders
Tool | Description |
| Order totals: last month, this month, this week |
| Full order details by UUID |
| Place a new order |
Products
Tool | Description |
| All products |
| Full product details by UUID |
| Create a new product |
Companies
Tool | Description |
| All company/RTM UUIDs |
| Create a new company/RTM |
Contacts
Tool | Description |
| Contact details by UUID |
| Create or update a contact on a location or company |
Activity & insights
Tool | Description |
| Today's visit summary: done/missed yesterday, remaining today |
| Combined dashboard: visits + tasks + orders |
| Saved location shortcuts (pre-filtered views) |
Example prompts
"Show me my route for today"
"Which stops haven't been visited in 90+ days?"
"What are the task and order counts this week?"
"Get the contacts for location UUID abc-123"
"List all products and their UUIDs"
Architecture
src/
index.js — MCP server (tool definitions)
client.js — Bowimi API client (HTTP methods)
auth.js — Auth: API key or email/password sessionAPI base: https://{subdomain}.bowimi.com/_api/v4.6.1/
Bowimi uses non-standard HTTP methods: QUERY (read with body) and LIST in addition to standard GET/POST/PATCH/DELETE.
Known limitations
Location search (
location/mapendpoint) returns a server error — useget_routeto get your assigned stops, thenget_locationwith specific UUIDs. Tracked in #1.Activity feed (
activityendpoint) returns a server error — useget_visit_summaryandget_insightsinstead. Tracked in #1.Task listing requires task UUIDs (no filter-based list) — use
get_task_summaryfor counts.Roles endpoint requires admin permissions — not available with field-sales API keys.
License
MIT. See LICENSE.