mcp-nimble-crm
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| NIMBLE_API_KEY | Yes | Your Nimble API key. Generate from Nimble Settings > API Tokens. |
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": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_myselfA | Get current authenticated Nimble user info and account details. |
| list_contactsA | List contacts with optional keyword search. Args: record_type: Filter by 'person', 'company', or 'all'. keyword: Simple search across indexed fields (name, email, etc). per_page: Results per page (default 30). page: Page number (starts at 1). |
| search_contactsA | Search contacts with an advanced NSE query. Args: query_json: JSON string with search criteria. Format: {"and": [{"field name": {"operator": "value"}}]} Operators: is, is_not, contain, not_contain, starts_with, is_empty, in, range, gt, gte, lt, lte, in_the_last, not_in_the_last, day_month_range. Example: {"and": [{"first name": {"is": "Jack"}}, {"company name": {"contain": "Acme"}}]} per_page: Results per page (default 30). page: Page number (starts at 1). |
| list_contact_idsA | List contact IDs only (faster than a full contact listing). Args: record_type: Filter by 'person', 'company', or 'all'. keyword: Simple search across indexed fields. per_page: Results per page (default 30). page: Page number (starts at 1). |
| get_contacts_by_idsA | Return standard contact listings for up to 30 explicit IDs. Args: contact_ids: Comma-separated contact IDs (max 30). |
| get_contactA | Get a single contact by ID with all fields and tags. Args: contact_id: The Nimble contact ID. |
| create_contactA | Create a new contact (person or company). Args: record_type: 'person' or 'company'. first_name: First name (for person records). last_name: Last name (for person records). company_name: Company name (required for company records). email: Email address. email_modifier: Email type: 'work', 'personal', or 'other'. phone: Phone number. phone_modifier: Phone type: 'work', 'home', 'mobile', 'main', 'other'. tags: Comma-separated tags (max 5 on creation). |
| update_contactA | Update an existing contact's fields. Args: contact_id: The Nimble contact ID. fields_json: JSON string of fields to update. Format: {"field name": [{"value": "val", "modifier": "mod"}]} Example: {"email": [{"value": "new@example.com", "modifier": "work"}]} Set a field to an empty list to remove all values for it. replace: If true, replaces all values for each field type. If false, merges with existing values. |
| delete_contactA | Delete a single contact by ID. Args: contact_id: The Nimble contact ID. deletion_method: 'regular' (errors if relations block deletion) or 'force' (delete despite relations). cleanup_email_lists: If true, also remove matching email list entries. |
| delete_contactsA | Delete one or more contacts by ID. Args: contact_ids: Comma-separated contact IDs to delete. |
| delete_contacts_by_queryA | Bulk-delete contacts matching an advanced query or keyword list. Requires bulk delete permission for the authenticated user. Args: query_json: JSON-encoded advanced search query. If provided, record_type is ignored by Nimble. keyword: Comma-separated list of keywords; contacts whose fields contain any of these values will be deleted. record_type: 'person', 'company', or 'all'. preflight_checks: If true, verify contacts are editable first. |
| list_notesA | List notes for a specific contact. Args: contact_id: The Nimble contact ID. per_page: Results per page (default 5). page: Page number (starts at 1). |
| get_noteA | Get a single note by ID. Args: note_id: The Nimble note ID. |
| create_noteA | Create a note attached to one or more contacts. Args: contact_ids: Comma-separated contact IDs (1-10). note: Full note text (can contain HTML). note_preview: Short plain-text preview. If empty, first 100 chars of note are used. |
| create_contact_noteA | Create a note attached to a single contact. Args: contact_id: The Nimble contact ID. note: Full note text. note_preview: Short preview. Defaults to the full note if omitted. |
| update_noteA | Update an existing note. Args: note_id: The Nimble note ID. contact_ids: Comma-separated contact IDs (1-10). note: Updated full note text. note_preview: Updated short preview. If empty, first 100 chars of note are used. |
| delete_noteB | Delete a note by ID. Args: note_id: The Nimble note ID. |
| replace_tagsA | Replace all tags on a contact. WARNING: This is a full replace — tags not in the list will be REMOVED. To add a tag, first get current tags with get_contact, then include all existing tags plus the new one. Args: contact_id: The Nimble contact ID. tags: Comma-separated list of tags to set. |
| list_contact_fieldsA | List all contact field metadata — tabs, groups, and fields. Returns the complete schema of available contact fields including custom fields, their types, and valid modifiers. |
| create_contact_fieldA | Create a new custom contact field. Args: name: Field name (1-50 chars). field_kind: One of 'string', 'long_string', 'choice', 'number', 'datetime', 'boolean', 'address', 'user'. tab_id: ID of the tab this field belongs to. presentation_json: JSON string describing presentation (required for number/datetime fields, e.g. {"number_type": "integer"}). group_id: Optional group ID to nest the field under. insert_after: Optional field/group ID to insert after. multiples: Whether this field can hold multiple values. |
| update_contact_fieldA | Update an existing custom contact field. Args: field_id: The field ID. name: New field name. presentation_json: JSON string for new presentation settings. group_id: New group ID to move the field into. tab_id: New tab ID. insert_after: Field/group ID to move this field after. |
| delete_contact_fieldA | Delete a custom contact field. Args: field_id: The field ID. preflight_checks: If true, errors if the field is in use by any contacts instead of deleting it. |
| create_contact_field_groupA | Create a new contact fields group. Args: name: Group name (1-50 chars). tab_id: ID of the tab this group belongs to. logo_id: Optional logo ID to display. insert_after: Optional field/group ID to insert after. |
| create_contact_field_tabB | Create a new contact fields tab. Args: tab_name: Tab name (1-50 chars). contact_types: Comma-separated types: 'person', 'company'. insert_after: Optional tab ID to insert after. |
| list_contact_pipelinesA | List contact/lead pipelines visible to the requesting user. |
| move_lead_to_stageC | Move a lead (contact) into a pipeline stage. Args: lead_id: The contact/lead ID. pipeline_id: The pipeline ID. stage_id: The target stage ID. |
| exit_lead_successfulA | Exit a lead from a pipeline as won. Args: lead_id: The contact/lead ID. pipeline_id: The pipeline ID. notes: Optional notes about the transition. |
| exit_lead_unsuccessfulB | Exit a lead from a pipeline as lost. Args: lead_id: The contact/lead ID. pipeline_id: The pipeline ID. notes: Optional notes about the transition. lost_reason: Optional lost reason. |
| undo_lead_transitionC | Undo a recent won/lost transition for a lead. Args: lead_id: The contact/lead ID. pipeline_id: The pipeline ID. |
| list_activitiesA | List activities (pending or past) matching filters. Args: direction: 'pending' (future) or 'past' (old) activities. limit: Max activities to return. contact_ids: Comma-separated contact IDs to filter by. deal_ids: Comma-separated deal IDs to filter by. completed: True for only completed, False for uncompleted. |
| create_taskB | Create a task in Nimble CRM. Args: subject: Task title. notes: Additional task notes. related_contacts: Comma-separated contact IDs to associate. related_deals: Comma-separated deal IDs to associate. due_date: Due date, e.g. YYYY-MM-DDTHH:MM:SS. tags: Comma-separated tags to apply. |
| list_dealsA | List all of the current user's deals. Args: sort: Sort spec as ":", e.g. "name:asc". limit: Max deals to return. |
| get_dealA | Get a single deal by ID. Args: deal_id: The Nimble deal ID. |
| create_dealA | Create a new deal in Nimble CRM (deals_v2). Args: pipeline_id: Pipeline to place the deal in. stage_id: Stage within that pipeline. fields_values_json: JSON string keyed by field id, each a list of {"value": ...} dicts. Must include the deal name field; probability is required unless the stage has a default. Example: {"63760e653af0e748fe48366a": [{"value": "Big Deal"}]} owner_id: User ID who owns the deal. currency: ISO-4217 3-letter currency code. tags: Comma-separated tags to apply. |
| update_dealA | Update an existing deal. Args: deal_id: The Nimble deal ID. fields_values_json: JSON string keyed by field id, each a list of {"value": ...} dicts. Send an empty list to clear a field. pipeline_id: Move the deal to a different pipeline. stage_id: Move the deal to a different stage. owner_id: Reassign the deal owner. tags: Comma-separated new tag list (replaces existing tags). |
| delete_dealB | Delete a deal by ID. Args: deal_id: The Nimble deal ID. |
| get_won_deals_last_monthA | Get the sum and count of deal amounts won in the last month. |
| list_deal_tagsA | List deal tags, optionally filtered by prefix. Args: starts_with: Only return tags starting with this string. limit: Max tags to return. |
| add_tags_to_dealsA | Assign tags to all deals matching an advanced search query. Args: query_json: JSON-encoded advanced search query for deals. tags: Comma-separated tags to assign. |
| rename_deal_tagA | Rename a deal tag. Args: tag_name: Current tag name. new_tag: New tag name. |
| delete_deal_tagC | Delete/unlink a deal tag from all deals. Args: tag_name: Tag name to delete. |
| create_deal_noteA | Create a note attached to a deal. Args: deal_id: The Nimble deal ID. title: Note title (1-256 chars). body: Note body text. |
| update_deal_noteB | Update a deal note. Args: deal_id: The Nimble deal ID. note_id: The note ID. title: New title. body: New body text. |
| delete_deal_noteC | Delete a note from a deal. Args: deal_id: The Nimble deal ID. note_id: The note ID. |
| list_deal_overdue_activitiesA | List a deal's overdue activities, most-overdue first. Args: deal_id: The Nimble deal ID. limit: Max activities to return. |
| list_deal_fieldsB | List deal standard fields and per-pipeline fields. |
| list_deal_column_catalogueB | List the deal column/column-group catalogue for the user. |
| list_deal_pipelinesA | List all deal pipelines and their stages in Nimble CRM. |
| get_deal_pipelineA | Get a single deal pipeline by ID. Args: pipeline_id: The Nimble pipeline ID. |
| create_deal_pipelineB | Create a new deal pipeline in Nimble CRM. Args: name: Pipeline name (1-200 chars). description: Pipeline description. color: Pipeline color. default_currency: ISO-4217 3-letter currency code. |
| update_deal_pipelineA | Update an existing deal pipeline's name, description, or color. Args: pipeline_id: The Nimble pipeline ID. name: New pipeline name. description: New pipeline description. color: New pipeline color. |
| delete_deal_pipelineA | Delete a deal pipeline by ID. All deals in it will also be deleted! Args: pipeline_id: The Nimble pipeline ID. |
| list_pipeline_deals_by_stageA | List a pipeline's deals grouped by stage. Args: pipeline_id: The Nimble pipeline ID. sort: Sort spec as ":". limit: Max deals per stage. |
| list_pipeline_deals_by_ownerA | List a pipeline's deals grouped by owner. Args: pipeline_id: The Nimble pipeline ID. sort: Sort spec as ":". limit: Max deals per owner. |
| archive_deal_pipelineC | Archive a deal pipeline. Args: pipeline_id: The Nimble pipeline ID. |
| unarchive_deal_pipelineB | Un-archive a deal pipeline. Args: pipeline_id: The Nimble pipeline ID. |
| add_pipeline_lost_reasonA | Add a new lost-reason option to a pipeline. Args: pipeline_id: The Nimble pipeline ID. reason: Reason description. |
| create_pipeline_stageB | Create a new stage within a deal pipeline. Args: pipeline_id: The Nimble pipeline ID. name: Stage name. description: Stage description. expected_days: Expected number of days a deal spends in this stage. default_probability: Default win probability (0-100) for deals entering this stage. |
| update_pipeline_stageA | Update an existing pipeline stage. Args: pipeline_id: The Nimble pipeline ID. stage_id: The stage ID to update. name: New stage name. description: New stage description. expected_days: New expected days (pass -1 to leave unchanged). default_probability: New default probability 0-100 (pass -1 to leave unchanged). |
| archive_pipeline_stageB | Archive a pipeline stage. Args: pipeline_id: The Nimble pipeline ID. stage_id: The stage ID to archive. |
| list_message_draftsA | List draft messages in Nimble CRM. Args: recipients: Comma-separated recipient filter. page: Page number (starts at 0). per_page: Results per page. |
| create_message_draftA | Create a draft message in Nimble CRM. Args: subject: Message subject. body: Message body text. to: Comma-separated recipient email addresses. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/meshachjackson/mcp-nimble-crm'
If you have feedback or need assistance with the MCP directory API, please join our Discord server