Quickstart
This guide walks you through connecting the FullContact MCP Server to the most common AI clients. The setup is the same in spirit across every client: point the client at the MCP Server endpoint and supply your FullContact API key as a Bearer token.
If you don't yet have a key, generate one at docs.fullcontact.com/docs/generate-an-api-key before continuing.
All clients require an API keyThe MCP Server reuses your existing FullContact API key for authentication. There is no separate MCP credential to provision. Every example below assumes you have set the environment variable
FULLCONTACT_API_KEYto your key, and we recommend using a secrets manager or.envrather than hard-coding the value.
The hosted MCP Server endpoint is:
https://api.fullcontact.com/v3/mcp
Claude Desktop
Claude Desktop loads MCP servers from claude_desktop_config.json.
1. Open the config file.
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
2. Add the FullContact MCP Server entry.
{
"mcpServers": {
"fullcontact": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.fullcontact.com/v3/mcp",
"--header",
"Authorization: Bearer ${FULLCONTACT_API_KEY}"
],
"env": {
"FULLCONTACT_API_KEY": "<your-fullcontact-api-key>"
}
}
}
}3. Restart Claude Desktop. Open a new conversation. You should see a hammer or tools icon indicating that enrich_person is available. Try:
Enrich a contact with an email using FullContact.
Claude Code
Claude Code (the Anthropic CLI) supports remote MCP servers through claude mcp add.
claude mcp add \
--transport http \
--header "Authorization: Bearer $FULLCONTACT_API_KEY" \
fullcontact https://api.fullcontact.com/v3/mcpTo verify the connection:
claude mcp listYou should see fullcontact listed with a healthy status. Inside any Claude Code session, the enrich_person tool will be available as mcp__fullcontact__enrich_person.
TipUse
claude mcp add --scope userto make the server available across every project on the machine. Use--scope project(the default) to scope it to the current working directory only.
Gemini CLI
Gemini CLI loads MCP servers from ~/.gemini/settings.json (user scope) or .gemini/settings.json (project scope). You can configure the server through a shell command or by editing the settings file directly.
Option A — shell command (recommended). Mirrors the Claude Code pattern and writes the settings file for you:
gemini mcp add \
--transport http \
--header "Authorization: Bearer $FULLCONTACT_API_KEY" \
fullcontact https://api.fullcontact.com/v3/mcpOption B — edit settings.json directly. If the file does not yet exist, create it with an empty JSON object {} and then add the mcpServers block:
{
"mcpServers": {
"fullcontact": {
"httpUrl": "https://api.fullcontact.com/v3/mcp",
"headers": {
"Authorization": "Bearer ${FULLCONTACT_API_KEY}"
},
"timeout": 30000
}
}
}timeout is in milliseconds and is optional — Gemini CLI's default is 600000 ms (10 minutes). The value above (30 s) is a comfortable upper bound for enrich_person calls.
Verify the connection from the shell with gemini mcp list, or inside an interactive session with the /mcp slash command. Both should show fullcontact as CONNECTED. The first time the agent invokes enrich_person, Gemini CLI will display a tool-confirmation prompt — choose Always allow this server to suppress future prompts.
TipGemini CLI substitutes
${VAR}and$VAR(POSIX) and%VAR%(Windows) inside string values insettings.json; undefined variables resolve to an empty string, which will produce a401 unauthorizedfrom the server. ExportFULLCONTACT_API_KEYin the shell that launches Gemini, or paste your literal key in place of${FULLCONTACT_API_KEY}(not recommended on shared machines). If the server fails to connect, rungemini --debugto see the MCP handshake error.
Cursor
Cursor reads MCP configuration from ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project).
{
"mcpServers": {
"fullcontact": {
"url": "https://api.fullcontact.com/v3/mcp",
"headers": {
"Authorization": "Bearer ${FULLCONTACT_API_KEY}"
}
}
}
}After saving, open the Cursor command palette and run MCP: Reload Servers. The enrich_person tool will appear in Cursor's tool list and is callable from Composer or the chat sidebar.
VS Code
The official MCP extension (or any MCP-compatible AI extension such as GitHub Copilot Chat in agent mode) reads server definitions from .vscode/mcp.json in your workspace, or from your user settings.json.
Workspace .vscode/mcp.json:
{
"inputs": [
{
"id": "fullcontact_api_key",
"type": "promptString",
"description": "FullContact API key",
"password": true
}
],
"servers": {
"fullcontact": {
"type": "http",
"url": "https://api.fullcontact.com/v3/mcp",
"headers": {
"Authorization": "Bearer ${input:fullcontact_api_key}"
}
}
}
}The first time you invoke a FullContact tool, VS Code will prompt for the API key and store it securely in the OS keychain.
ChatGPT (Custom Connector)
ChatGPT supports MCP servers as Custom Connectors for users on Plus, Pro, Business, Enterprise, or Edu plans with developer features enabled.
1. Open ChatGPT. Go to Settings → Connectors → Add custom connector.
2. Fill in the connector form:
| Field | Value |
|---|---|
| Name | FullContact |
| MCP Server URL | https://api.fullcontact.com/v3/mcp |
| Authentication | Bearer token |
| Token | Your FullContact API key |
3. Save and enable the connector. Start a new chat with the connector turned on. The enrich_person tool will be discoverable by the model and callable in chat or in Deep Research workflows.
Security noteChatGPT stores the API key in your account's encrypted credential store. Do not paste keys directly into prompts or share connectors that contain customer-specific keys.
Verify the connection
Regardless of client, the easiest way to confirm the server is wired up is to ask:
Use the FullContact tool to enrich
[email protected]and tell me their job title.
A working setup will return a structured profile within a few seconds. If you see an authentication error, double-check that your API key is set and that it has person.enrich access — see Authentication for troubleshooting.
Next steps
- Authentication — How API key authentication and rate limiting work in detail.
- Tool Reference:
enrich_person— Full input/output schema with examples. - Errors and FAQ — Error codes and common questions.
Updated May 2026
Updated about 14 hours ago