Solo CRM MCP
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HOST | No | HTTP bind host. | 127.0.0.1 |
| PORT | No | HTTP bind port. | 3000 |
| SOLO_CRM_PATH | No | Path to the CRM data file. Must end in .json. | ~/.solo-crm/crm.json |
| MCP_AUTH_TOKEN | No | HTTP only: require this bearer token for authentication. Should be set if exposing the HTTP server publicly. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_contactsA | List contacts, optionally filtered by a search string (name, email, company, notes) or tag. |
| get_contactA | Full contact record with their deals, open follow-ups and the 20 most recent activities. |
| list_dealsB | List deals, optionally by stage or contact. Includes the contact name. |
| list_follow_upsA | Open follow-ups sorted by due date, flagged overdue / due today. Use due_within_days to limit. |
| pipeline_summaryB | Deals and value per stage, weighted forecast, win rate, overdue follow-ups and stale open deals (no activity in N days). |
| draft_outreachA | Draft an email/DM for a contact using their CRM context (deal, last activity). Returns text only; this server has no ability to send messages. |
| upsert_contactA | Create a contact, or update one when contact_id is given (only provided fields change). TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
| delete_contactA | Permanently delete a contact AND their deals, follow-ups and activities. TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
| upsert_dealA | Create a deal for a contact, or update an existing deal (e.g. move stage, change value) when deal_id is given. TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
| delete_dealA | Permanently delete a deal (follow-ups linked to it are unlinked, not deleted). TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
| add_follow_upA | Schedule a follow-up reminder for a contact (optionally tied to a deal). TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
| complete_follow_upA | Mark a follow-up as done. TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
| log_activityA | Record a call, email, meeting, DM or note against a contact (and optionally a deal). TWO-STEP: the first call (no confirm_token) only returns a preview and a confirm_token; nothing is written. Show the preview to the user, and only after they approve call again with the same arguments plus confirm_token. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool has a clearly distinct purpose: contacts (list/get/upsert/delete), deals (list/upsert/delete), follow-ups (list/add/complete), activities (log), analytics (pipeline_summary), and outreach drafting. No two tools overlap in function, and the two-step confirmation applies uniformly to all mutating tools, so there is no ambiguity about which tool to use for a given operation.
All tool names follow a consistent verb_noun or noun_verb pattern (list_contacts, get_contact, upsert_deal, add_follow_up, complete_follow_up, pipeline_summary). Verbs are standard CRM terms and suffixes are predictable, making the naming pattern easy to learn.
13 tools is well-scoped for a CRM: read operations (list/get/pipeline_summary), full create/update/delete for contacts and deals, and follow-up lifecycle management. No redundant or trivial tools; each earns its place.
The surface covers the core CRM lifecycle: contact CRUD, deal CRUD, follow-up scheduling/completion, activity logging, pipeline analytics, and outreach drafting. There are no obvious gaps for the stated domain; the only limitation (no message sending) is explicitly noted and is not a CRUD gap.