# Expofp — how to use (mcp.ai)

Connect your Expofp account and use 18 tools for event management straight from your AI agent. Connect with your own API key. ExpoFP provides free interactive floor plan software for expos and conferences.

## Option A — via MCP (recommended)
Remote MCP endpoint (HTTP, streamable): `https://api.mcp.ai/p_expofp?ms=1787295840000`
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. `expofp_add_category`).

## Option B — via direct REST API
Base URL: `https://api.mcp.ai/api/expofp`
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/expofp/_endpoints`

### Endpoints
- `POST https://api.mcp.ai/api/expofp/add/category` — Tool to add a new category to an expo. Use when you have both the expo event ID and a valid API token. Example: "Add category 'Keynotes' to event 2655."
  - body: { name: string, token: string, eventId: integer }
- `POST https://api.mcp.ai/api/expofp/delete/exhibitor` — Tool to delete an exhibitor from an expo by their ID. Use when you have the exhibitor ID and a valid API token.
  - body: { id: integer, token: string }
- `POST https://api.mcp.ai/api/expofp/delete/session/speakers` — Tool to delete session speakers by their IDs. Use when you need to remove one or more session speakers from an expo.
  - body: { ids: integer[], expoId: integer }
- `POST https://api.mcp.ai/api/expofp/delete/session/tracks` — Tool to delete session tracks by IDs from an expo. Use when you need to remove multiple session tracks. Provide the expo ID, API token, and list of session track IDs to delete.
  - body: { ids: integer[], expoId: integer }
- `POST https://api.mcp.ai/api/expofp/get/bulk/read/exhibitors/template` — Tool to get the template structure for bulk reading exhibitors from an expo. Use when you need to understand the required format for bulk importing exhibitor data.
- `POST https://api.mcp.ai/api/expofp/get/offline/archive` — Lightweight retrieval of offline archive state that never starts a build. Returns the current known ExpoOfflineState for the specified version if available, or null if not. Use when you need to check 
  - body: { expoKey: string, version: string }
- `POST https://api.mcp.ai/api/expofp/get/or/create/offline/archive` — Retrieve the offline archive state for a specific expo version. If the archive does not exist and the requested version is 'latest', the server automatically starts the creation process and returns th
  - body: { version: string, expo_key: string, waitseconds?: integer }
- `POST https://api.mcp.ai/api/expofp/get/session/tracks` — Retrieve all session tracks for a specific expo event. Session tracks are categories or themes used to organize sessions within an expo, such as "Technology", "Marketing", "Product", etc. This action 
  - body: { expoId: integer }
- `POST https://api.mcp.ai/api/expofp/list/all/expo/extras` — Retrieves all extras (additional services/items) available for a specific expo event, including general extras and booth-specific extras with exhibitor details. Use this action to get a comprehensive 
  - body: { eventId: integer }
- `POST https://api.mcp.ai/api/expofp/list/all/expos` — Retrieve all expos (events/exhibitions) accessible with the authenticated ExpoFP account. This action fetches a complete list of expos with their details including event IDs, names, descriptions, date
- `POST https://api.mcp.ai/api/expofp/list/categories` — Retrieve all categories for a specific expo event. This action fetches a complete list of categories with their IDs and names for a given expo. The category IDs returned can be used with other ExpofP 
  - body: { eventId: integer }
- `POST https://api.mcp.ai/api/expofp/list/exhibitors` — Tool to bulk read exhibitors from an expo with customizable response template. This action retrieves all exhibitors from a specified expo. You can optionally provide a response template to control whi
  - body: { token: string, expoId: integer, responseItemTemplate?: object }
- `POST https://api.mcp.ai/api/expofp/remove/category` — Tool to remove a category from an expo. Use when you have the category ID and a valid API token. Example: "Remove category #123."
  - body: { id: integer, token: string }
- `POST https://api.mcp.ai/api/expofp/set/exhibitor/logo` — Tool to set or remove an exhibitor logo using multipart/form-data. Use when you need to upload a logo image file or provide an image URL for an exhibitor, or remove an existing logo by passing null fo
  - body: { token: string, img_url?: string, img_file?: object, exhibitorid: integer }
- `POST https://api.mcp.ai/api/expofp/update/category` — Tool to update an existing category. Use when you have the category ID and a valid API token. Example: "Update category #1 name to 'Category Blue'."
  - body: { id: integer, name: string, token: string }
- `POST https://api.mcp.ai/api/expofp/update/exhibitor` — Tool to update an existing exhibitor. Use when you have the exhibitor ID and want to modify exhibitor details. Only fields provided in the request are updated; undefined fields remain unchanged.
  - body: { id: integer, zip?: string, city?: string, name?: string, tags?: string[], xing?: string, state?: string, token: string, phone1?: string, phone2?: string, address?: string, country?: string, twitter?: string, website?: string, youtube?: string, address2?: string, facebook?: string, featured?: boolean, linkedin?: string, metadata?: object[], videoUrl?: string, instagram?: string, vatNumber?: string, adminNotes?: string, advertised?: boolean, categories?: integer[], externalId?: string, googlePlus?: string, contactName?: string, description?: string, publicEmail?: string, autoLoginUrl?: string, contactPhone?: string, privateEmail?: string }
- `POST https://api.mcp.ai/api/expofp/upsert/session/tracks` — Tool to create or update session tracks in bulk for an expo. Use when you need to add new tracks or modify existing ones. Provide an id in the track object to update; omit it to create new. Example: "
  - body: { token: string, expoId: integer, sessionTracks: object[] }
- `POST https://api.mcp.ai/api/expofp/upsert/sessions` — Tool to create or update sessions in bulk for an expo event. Sessions are upserted based on externalId if provided - existing sessions with matching externalId are updated, otherwise new sessions are 
  - body: { expoId: integer, sessions: object[] }

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

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