Browse documentation
Cursor
One JSON file, project or global.
Configuration
Cursor reads mcp.json. Put it in the project at .cursor/mcp.json, or globally at
~/.cursor/mcp.json.
{
"mcpServers": {
"unlob": {
"url": "https://api.unlob.com/mcp",
"headers": { "x-api-key": "ulb_…" }
}
}
}
Then Settings → MCP (or Tools & Integrations, depending on your version), where
unlob should appear with a green indicator and eleven tools. Toggle it on if it is not
already.
Keep the key out of the repository
.cursor/mcp.json is a project file, and project files get committed. Either add it to
.gitignore, or use the global ~/.cursor/mcp.json and share only the fact that the
server exists.
Cursor’s environment-variable expansion in this file has varied between versions; if
${UNLOB_API_KEY} arrives literally rather than expanded, that is why. A committed literal
key is not a disaster — rotate it in the console — but it is
better avoided.
If the remote form does not work
Older builds only spawn stdio servers. Bridge it:
{
"mcpServers": {
"unlob": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.unlob.com/mcp",
"--header", "x-api-key:ulb_…"]
}
}
}
No space after the colon — argument splitting eats it.
Using it
Cursor’s agent picks tools from the task. Being explicit helps:
Use unlob to find corroborated reporting on this, then tell me which sources are independent.
Add the habits to .cursorrules if you use it often:
When using unlob: prefer assemble_context for open questions, web_search for
specific pages. Run corroborate before stating something as established.