# Sansan MCP

> Sansan connects your AI agent directly to your secure, digitized network of business cards and contacts. It lets you list all scanned cards, search by name, and build deep profiles for people across different departments or projects. You stop manually digging through spreadsheets; you ask your agent to find the contact details instantly.

## Overview
- **Category:** productivity
- **Price:** Free
- **Tags:** business-card-digitization, contact-management, network-analysis, data-entry, crm-sync

## Description

Look, this isn't some generic data dump. Sansan connects your AI agent straight into your secure network of business cards and contact records. It turns a pile of scanned cards—data that used to live in dusty spreadsheets or random folders—into an organized, searchable graph. When you use it, your agent doesn't just read data; it acts on it. You stop digging through files yourself.

If you need to know what cards are floating around, start with `list_biz_cards`. That tool gives you an exhaustive rundown of every single business card ever scanned or logged in the system. Need something specific? Use `search_biz_cards` and feed it a name or keyword. It filters your entire network instantly and spits back matching business cards, even if there are multiple hits.

Once you've found a potential match or an ID, you can drill down deep. To get every tiny detail off one specific card, run `get_biz_card` using its unique identifier. For a holistic view—combining all known details from multiple cards and sources—you use `get_person`. This pulls the full, unified profile for any contact person ID you give it. It’s how your agent builds out complete profiles.

Understanding who works where is half the battle. If you want to map out the company structure, your agent can run `list_departments` to show every department registered in the organization. You also need to know the people running things; `list_users` shows all individual Sansan accounts. To see every unique person that's been logged across *all* those cards, use `list_persons`. This gives you a master list of contacts.

It’s not just names and departments either. The system uses tags to organize the chaos, and you can pull that whole context using `list_tags`—it shows every classification tag used across your data set, helping you figure out how things are grouped. You don't have to manually check all these tools; your agent handles it. Give it a prompt like, 'Find me the full profile for John Smith in Marketing and show me every department he reports into,' and it pulls everything together using those connections.

Basically, you connect your AI client, and suddenly that messy pile of networking data is structured. Your agent doesn't just read; it connects dots between cards, people, departments, and tags so you get actionable information straight away.

## Tools

### get_biz_card
Gets all specific data points for a single business card ID.

### get_person
Pulls the full, unified profile details for a known contact person ID.

### list_biz_cards
Generates an exhaustive list of every business card recorded in your system.

### list_departments
Shows a complete listing of all department names registered within the organization.

### list_persons
Lists every unique contact person found across all scanned business cards.

### list_tags
Retrieves a list of every classification tag used to organize the data.

### list_users
Shows all individual Sansan user accounts registered in the organization.

### search_biz_cards
Searches your card database using a name or keyword to find matching business cards.

## Prompt Examples

**Prompt:** 
```
Search for a business card with the name 'Tanaka'.
```

**Response:** 
```
I searched your database and found 2 business cards matching 'Tanaka'. 1. Hiroshi Tanaka (Director at Widget Corp) 2. Kenji Tanaka (Sales Manager at Acme). Let me know if you need full details for a specific ID.
```

**Prompt:** 
```
Can you list all the tag categories in our Sansan database?
```

**Response:** 
```
Certainly. I retrieved your active tags. You have the following categories: 'VIP', '2025 Tech Summit Leads', 'Vendor', and 'Partner'. We can list contacts attached to any of these.
```

**Prompt:** 
```
Get the detailed person profile for the ID 'person-12345'.
```

**Response:** 
```
Here is the detailed profile for person-12345: The contact is Satoshi Nakamoto. Current Title: CEO. Email: satoshi@example.com. Phone: +81 3-1234-5678. The record confirms 3 business cards merging to form this unified profile.
```

## Capabilities

### Find specific contact profiles
Use an ID to pull a complete person record, combining all known details from multiple business cards.

### List every card in the database
Shows a list of every single business card you've ever scanned or entered into the system.

### Search for contacts by name
Filters your entire network to find cards that match a specific name, giving multiple matches if necessary.

### Map company structure
Lists all departments and registered users, allowing you to audit the organization's current setup.

### Analyze network tags
Retrieves a list of all classification tags used across your cards, helping you understand how the data is organized.

## Use Cases

### The Post-Conference Debrief
A sales rep attended a conference and collected 50 cards. Instead of manually entering them into the CRM, they ask their agent to 'Process all new contacts.' The agent uses `list_biz_cards` first, then runs `get_person(id)` on each one, grouping redundant data points into clean records.

### Auditing Internal Structure
An ops analyst needs to check if a project team has the right people. They run `list_departments()` and then cross-reference that list with `list_users()` to verify every required role is accounted for.

### Finding an Old Connection
An executive needs contact details for a former colleague, but only remembers the name 'Garcia'. They use `search_biz_cards` and narrow down the results. Then they run `get_person(id)` to get the full current phone number.

### Data Cleanup Before Migration
Before moving data, a user runs `list_tags()` and checks for duplicates using `list_persons()`. This ensures all unique contacts are captured before they lose access to the source system.

## Benefits

- Stop clicking through multiple tabs to find one person. Using `search_biz_cards` and then `get_person(id)` lets your agent pull together a single, unified profile instantly.
- Audit organizational structure without logging into HR software. Running `list_departments()` and `list_users()` quickly maps out who belongs where in the company.
- Never lose a networking lead again. You can use `list_biz_cards` to see every scanned card, then run `get_biz_card(id)` on any specific one for details.
- Get context on contacts' roles and projects. The `list_tags()` tool lets you know exactly how the data was categorized when it came in.
- Keep your CRM workflow intact. Your agent pulls necessary contact info without forcing you to leave your primary application, making calls faster.

## How It Works

The bottom line is that your AI client acts as a universal connector, running the necessary API calls in sequence so you don't have to.

1. 1. Subscribe to this server and enter your Sansan API Key into your MCP client.
2. 2. Prompt your agent with a high-level request (e.g., 'Find the CEO of Acme Corp').
3. 3. The agent executes multiple tools (`list_users`, `search_biz_cards`, etc.) to gather data and returns the structured contact information.

## Frequently Asked Questions

**How do I find a person who was at a conference last year using `search_biz_cards`?**
You search by name first. If that gets too many results, you'll need to use the system tags. Run `list_tags()` to see available event tags, then ask your agent to filter contacts attached to that tag.

**Does `get_person(id)` combine data from all my business cards?**
Yes. The function is designed to merge records. It pulls together the best available details (title, phone, email) across multiple physical or scanned cards associated with that single person ID.

**What if I only know a department name? Can I find users using `list_departments()`?**
You can list the departments first. Then you use those results to filter your search for users by asking the agent to look up contacts within that specific departmental group.

**Which tool should I use if I just want a raw dump of every card?**
You must use `list_biz_cards()`. This tool doesn't analyze or filter; it simply returns the complete, unedited list of every ID in your database for you to work with.

**What happens if I try to use `get_biz_card(id)` with an invalid card ID?**
The API returns a specific error code and message. Your AI client handles this gracefully by notifying you that the provided identifier does not match any existing records in your Sansan database.

**If I run many requests using `list_persons` quickly, is there a rate limit?**
Yes, usage is governed by API rate limits. If you hit the cap, the connection will pause and automatically retry the request after a short delay. We recommend building retries into your agent's workflow for large data pulls.

**How secure is the data accessed when I call `list_users()`?**
Access to user lists strictly adheres to the permissions tied to your API key. Your AI client only sees the organizational structure and users you are authorized to view, ensuring data segregation.

**Do I need to know how tags were created when using `list_tags()`?**
No, you just need to know which tags exist. The list returned by `list_tags()` provides the exact naming conventions and categories that your AI agent can use later for filtering contacts.

**Can my AI agent find a specific business card by just a first name?**
Yes. Ask the agent to run the `search_biz_cards` tool with the contact's name. It will look through all digitized cards in the shared corporate database and return the matching profiles, including their company, department, and direct contact details.

**Is it possible to list only contacts from a specific department?**
Yes, you can ask your agent to first execute `list_departments` to view your organizational structure, and then cross-reference those entities with the cards via natural prompts to summarize card acquisitions per department.

**What is the difference between business cards and persons?**
Business Cards are individual scan snapshots of physical cards acquired over time. A 'Person' represents the consolidated identity created when multiple updated cards from the same individual are merged. You can query both views via `list_biz_cards` or `list_persons`.