# Nimble CRM MCP

> Nimble CRM (Social Sales CRM & Contacts API) lets your AI agent manage and query your Nimble account contacts via natural language commands. Use this server to list, search, retrieve full metadata for specific leads by ID, or delete old records directly from your chat client. It keeps your social sales data organized without opening the web app.

## Overview
- **Category:** sales-automation
- **Price:** Free
- **Tags:** crm, contact-management, social-sales, sales-intelligence, relationship-management

## Description

You wanna manage your Nimble CRM contacts without ever opening a browser tab? This server lets your AI agent handle all that heavy lifting—listing leads, pulling profiles, and cleaning up old junk—using nothing but natural conversation. It keeps your social sales data locked down and organized right in your chat client. You don't need to navigate complex menus; you just tell your agent what you want.

**Getting Your Own Account Details**
You can always check who you are connected as using the `get_myself` tool. It pulls up all the basic details about the Nimble account that’s attached here, letting you confirm the user profile your agent's working with. This gives you immediate confirmation of the connection parameters.

**Searching and Listing Contacts**
Need to find a group of leads or just check what's in the database? You use `list_contacts`. This tool searches your entire contact database, letting you narrow down massive lists using keywords, specific tags, or custom criteria. You don't have to scroll through thousands of entries; you filter them right up front. It’s perfect when you know the general area but not a unique ID.

**Retrieving Specific Contact Profiles**
When you know exactly who you're looking for, you get all the goods using `get_contact`. You provide the contact's unique ID, and the tool pulls back every bit of data available. This includes their full social profiles, detailed metadata, and everything else Nimble tracks on that person. You’ll see a complete picture of the lead right away.

**Cleaning Up Junk Records**
Keep your CRM clean so you don't waste time on dead ends. The `delete_contacts` tool lets you get rid of contacts based on advanced search criteria. If you know exactly what junk records need to go—say, all leads tagged 'inactive' from last quarter—you run the search parameters and delete them right there. It keeps your data actionable.

*How it works:* Your AI agent runs these functions for you. When you ask your client to list contacts with the tag 'demo-ready', it invokes `list_contacts`. If you then ask, 'What's their LinkedIn profile?', it takes a specific ID from that list and calls `get_contact` to deliver just those social details. It’s all conversational commands executing structured API calls.

Using these tools means your agent can manage the entire lifecycle of a lead—from discovery (using `list_contacts`) to deep research (using `get_contact`), and finally, maintenance (using `delete_contacts`)—all without you ever touching the web app. You get direct, programmatic access to all four core functions: checking user details with **`get_myself`**, searching broad groups with **`list_contacts`**, pulling deep data on one person with **`get_contact`**, and clearing out old records using **`delete_contacts`**.

## Tools

### delete_contacts
Deletes specific contacts from your Nimble account based on provided search criteria.

### get_contact
Retrieves all available data, including social profiles, for a single contact when you know their unique ID.

### get_myself
Fetches and displays the core details of the user account that is currently connected to Nimble CRM.

### list_contacts
Searches your entire contact database, allowing you to filter results using keywords, tags, or custom criteria.

## Prompt Examples

**Prompt:** 
```
Show me my Nimble user profile details.
```

**Response:** 
```
I've retrieved your profile. You are logged in as 'Alex Rivera' (ID: 54321) with the email alex@company.com. Your account is currently active.
```

**Prompt:** 
```
Search for contacts tagged as 'Lead' with the keyword 'Software'.
```

**Response:** 
```
I found 3 contacts matching your criteria. The top results are 'Jordan Smith' from TechSoft and 'Casey Lee' from SoftSystems. Would you like the details for any of them?
```

**Prompt:** 
```
Get all information for contact ID 5f4e3d2c1b.
```

**Response:** 
```
Inspecting contact 5f4e3d2c1b... This is 'Morgan Blake', Senior VP at GlobalCorp. I've found their LinkedIn profile, Twitter handle, and primary work phone number.
```

## Capabilities

### Get User Profile
Retrieves basic details about the authenticated Nimble account.

### Search and List Contacts
Finds groups of contacts by applying keywords, tags, or custom filters.

### Get Specific Contact Details
Fetches all metadata, social profiles, and detailed data for one contact using their unique ID.

### Clean Up Contacts
Deletes contacts based on advanced search queries to keep the CRM clean.

## Use Cases

### Needs quick social profiles for an inbound lead.
A rep needs details on a prospect who just filled out a form. Instead of searching by name, they ask their agent to 'find contacts tagged 'Webinar' with keyword 'Finance'.' The agent runs `list_contacts`, and the rep can then use `get_contact` on the top result to pull social profiles for the immediate follow-up.

### Cleaning up outdated records after a merger.
The ops team needs to archive old contacts. They ask their agent to 'find all contacts associated with the old department tag and delete them.' The agent executes `delete_contacts`, preventing manual errors and keeping the database lean.

### Checking account access before a meeting.
Before calling a client, an employee asks their AI agent, 'What's my current Nimble user status?' The agent calls `get_myself`, verifying the active credentials and ensuring they have permissions to access sensitive data.

### Identifying target groups for marketing campaigns.
The Marketing Manager needs a list of all contacts who attended Q3 training. They instruct their agent to 'list contacts tagged as 'Q3 Training' and sort by last activity.' The agent runs `list_contacts`, giving them the immediate, actionable data set.

## Benefits

- Stop switching tabs to find data. You can search and list leads using `list_contacts` right inside your agent chat, keeping your focus on the sales conversation.
- Deep dive into a lead's history with `get_contact`. Instead of manually copying an ID into another system, you get all metadata—LinkedIn, phone numbers, everything—in one go.
- Keep your data clean. When records are stale or duplicates build up, use the `delete_contacts` tool to run specific queries and clean out junk entries automatically.
- Verify who's using the account. The `get_myself` tool instantly pulls your user profile details, confirming credentials without needing a separate login screen.
- Focus on outreach, not data retrieval. By handling searches and deletions via MCP, you save time that used to be spent navigating complex CRM menus.

## How It Works

The bottom line is: you tell your agent what contact data you need, and it fetches it without you ever leaving your chat window.

1. Subscribe to this server and enter your Nimble API Access Token.
2. Your AI client (Claude, Cursor, etc.) calls a specific tool function (e.g., `list_contacts`).
3. The server executes the command against your Nimble account and returns structured data directly to your agent.

## Frequently Asked Questions

**Can I search for contacts using the Nimble CRM Contacts API with `list_contacts`?**
Yes, `list_contacts` is designed to search your database. You can apply keywords, tags, or custom filters to narrow down groups of leads without having to manually sift through thousands of records.

**How do I get all information for a contact ID using the Nimble CRM Contacts API with `get_contact`?**
Just pass the unique contact ID into the `get_contact` tool. It fetches everything associated with that single record, including social profiles and full metadata.

**Does `delete_contacts` delete all contacts in my CRM?**
No. You must use specific criteria (like a tag or keyword) when running `delete_contacts`. The tool runs deletions based on the filtered results you specify, preventing accidental mass deletion.

**What does `get_myself` do in the Nimble CRM Contacts API?**
`get_myself` pulls your authenticated user details. It's useful for confirming which account is currently connected and authorized to make changes or view data.

**Before using `list_contacts`, how do I authenticate my connection to Nimble CRM?**
You must provide a valid Nimble API Access Token during setup. This token authenticates your agent's requests, ensuring you only manage data for the correct user account.

**What happens if I use `get_contact` with an ID that doesn't exist?**
The API returns a specific 404 Not Found status code. Your agent should check for this error before attempting to process contact details, preventing the workflow from failing unexpectedly.

**Are there rate limits when running `list_contacts` or searching contacts?**
Yes, Nimble enforces standard API usage rates. Hitting these limits results in a 429 error; you'll need to build exponential backoff into your agent logic to handle temporary service unavailability.

**What kind of data does `get_contact` retrieve for a specific contact?**
The tool pulls comprehensive metadata, including primary work details, associated social profiles (like LinkedIn and Twitter), and historical interaction logs. It provides the full digital view within Nimble.

**Can I search for contacts using specific tags or keywords?**
Yes! Use the `list_contacts` tool with the `keyword` or `tags` parameters. You can also sort the results by fields like last name to find exactly who you need.

**How do I get the full social profile and details of a specific contact?**
Simply use the `get_contact` tool and provide the contact ID. It will return all available data, including social media links and metadata for that specific record.

**Is it possible to delete multiple contacts at once based on a query?**
Yes, the `delete_contacts` tool allows you to perform bulk deletions by providing a JSON-encoded search query and specifying the record type (person, company, or all).