The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Front MCP listing page.
Use Front from any MCP-compatible client. Search conversations, manage contacts, send messages, tag, assign, and automate inbox workflows — 26 tools, 172 actions.
Get a Front API token from Settings > Developers > API tokens.
Add to your Claude Code settings (~/.claude/settings.json):
Search for a conversation:
"Search Front conversations about billing issues"
Inspect a thread:
"Get the messages in conversation cnv_abc123"
Manage contacts:
"List contacts and find the one with email alice@example.com"
Tag and assign:
"Tag conversation cnv_abc123 with 'urgent' and assign it to teammate tea_xyz"
Draft a reply:
"Create a draft reply to conversation cnv_abc123 saying we'll follow up tomorrow"
OAuth provides automatic token refresh and better security than API tokens.
https://localhost:9876/callback.~/.front-mcp/config.json:npx @houst-com/front-mcp auth to authenticate (opens browser).The MCP server needs Front API permissions matching the actions you want to use:
| Permission | Required for |
|---|---|
| Read | All list/get/search actions |
| Write | create, update, assign, add, merge, reply |
| Delete | delete, remove actions |
| Send | messages.create, messages.reply |
For OAuth, configure these in your Front app under Features > OAuth > Resource permissions. For API tokens, permissions are set when creating the token.
| Tool | Actions |
|---|---|
accounts | list, get, create, update, delete, list_contacts, add_contact, remove_contact |
analytics | create_export, get_export, create_report, get_report |
channels | list, get, update, validate, create, list_for_teammate, list_for_team |
comments | list, get, create, update, list_mentions, reply |
contact_groups | list, create, delete, list_contacts, add_contacts, remove_contacts |
contact_lists | list, create, delete, list_contacts, add_contacts, remove_contacts |
contact_notes | list, create |
contacts | list, get, create, update, delete, merge, list_conversations, add_handle, remove_handle |
conversations | list, get, search, create, update, delete, assign, list_events, list_followers, add_followers, remove_followers, list_inboxes, add_link, remove_links, list_messages, update_reminders, add_tag, remove_tag |
custom_fields | list_for_accounts, list_for_contacts, list_for_conversations, list_for_inboxes, list_for_links, list_for_teammates |
drafts | list, create, create_reply, update, delete |
events | list, get |
inboxes | list, get, create, list_channels, list_conversations, list_access, grant_access, revoke_access |
knowledge_bases | list, get, create, update, list_categories, list_articles, get_article, create_article, update_article, delete_article, get_category, create_category, update_category, delete_category |
links | list, get, create, update, list_conversations |
message_template_folders | list, get, create, update, delete, list_children, create_child |
message_templates | list, get, create, update, delete |
messages | get, create, reply, import, receive_custom, get_seen_status, mark_seen |
rules | list, get, list_for_teammate, list_for_team |
shifts | list, get, create, update, list_teammates, add_teammates, remove_teammates |
signatures | list, get, update, delete, create_for_teammate, create_for_team |
tags | list, get, create, update, delete, list_children, create_child, list_conversations |
teammate_groups | list, get, create, update, delete, list_inboxes, add_inboxes, remove_inboxes, list_teammates, add_teammates, remove_teammates, list_teams, add_teams, remove_teams |
teammates | list, get, update, list_conversations, list_inboxes |
teams | list, get, add_teammates, remove_teammates |
token_identity | get |
See docs/TOOL_REFERENCE.md for the complete reference with policy tiers per action.
Every action is classified into a tier with a default decision:
| Tier | Default | Examples |
|---|---|---|
read | allow | list, get, search |
write | confirm | create, update, assign |
destructive | deny | delete, remove |
Write actions require a two-step confirmation: the first call returns a prompt, the second call with confirm: true executes. Destructive actions are denied by default.
Create ~/.front-mcp/policy.json:
Override precedence: specific action > tool wildcard > tier default.
| Variable | Required | Description |
|---|---|---|
FRONT_API_TOKEN | Yes (unless OAuth) | Front API token |
FRONT_MCP_AUTH_METHOD | No | oauth or api_token (default: api_token) |
FRONT_MCP_OAUTH_SECRET | Yes (if OAuth) | OAuth client secret |
FRONT_MCP_LOG_LEVEL | No | error, warn, info, debug (default: info) |
FRONT_MCP_POLICY_FILE | No | Path to custom policy JSON file |
The project includes 519 unit/integration tests and a 172-action live API test script (scripts/live-test-full.js).
package.json and server.jsonCHANGELOG.mdgit commit -m "chore: release vX.Y.Z"git tag vX.Y.Zgit push origin main --tagsNPM_TOKEN secret)mcp-publisher publishSee SECURITY.md for vulnerability reporting.
See CONTRIBUTING.md for setup, code standards, and PR process.
MIT