LABSCO SUMMARY
One integration token, and the agent speaks whatever system that customer runs.
Merge's whole premise is that you write against one schema instead of twenty HR and ATS APIs, and the server carries that through: the tool list is derived from the Linked Account, so the same setup serves a Workday customer and a Greenhouse customer. The flip side is that you cannot read the tool list from this page — it depends on the account you connect.
What it is
The official MCP server for Merge. It talks to the Merge API on behalf of one Linked Account, and the tools it offers are generated from that account's schema — so an HRIS account gets employee tools, an ATS account gets candidate and job tools.
What you get
- Tools built at startup from your Merge API schema: retrieve an entity, list entities, create and update — the exact set depends on the category and the scopes your Linked Account allows
- Scope control on the launch command — pass
--scopeswith entries shaped<category>.<CommonModel>:<permission>, for examplehris.Employee:readorats.Candidate:write. With no scopes given, everything available is enabled - Scopes are validated against the Linked Account, so a scope the account cannot serve produces no tools rather than failing calls later
- Download tools are not supported yet
Requirements
Python 3.10 or higher and uv. Run with uvx merge-mcp — if uvx is not on your client's PATH, use its absolute path. Two environment variables are required: MERGE_API_KEY and MERGE_ACCOUNT_TOKEN (the Linked Account token). MERGE_TENANT is optional and accepts US, EU or APAC, defaulting to US. Package version 0.1.4.
Setup effort
One command plus a key — uvx merge-mcp, then supply credentials
USE CASES
01
Answering questions about employee records without opening the HR system
Connect an HRIS Linked Account with read scopes and ask about people, teams or employment details in conversation.
02
Moving a candidate forward in the pipeline
Enable ATS write scopes for candidates and applications, then create or update the record from the chat.
03
Keeping an agent read-only on purpose
Launch with explicit :read scopes so no write tool is ever generated, regardless of what the account permits.
BEFORE YOU INSTALL
What to know first
Requires
- uvx on PATH
- Python 3.10 or later
- MERGE_API_KEY in your environment
- MERGE_ACCOUNT_TOKEN in your environment
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
TERMINAL
uvx merge-mcpMCP Clients
Claude Desktop
CLAUDE DESKTOP · JSON
{
"mcpServers": {
"merge-mcp-server": {
"command": "uvx",
"args": [
"merge-mcp"
],
"env": {
"MERGE_API_KEY": "<YOUR_MERGE_API_KEY>",
"MERGE_ACCOUNT_TOKEN": "<YOUR_MERGE_ACCOUNT_TOKEN>"
}
}
}
}Settings → Developer → Edit Config, paste, write uvx as its absolute path (which uvx), save, and restart Claude Desktop. The tools may take a minute to appear.
Any MCP client — scoped
ANY MCP CLIENT — SCOPED · JSON
{
"mcpServers": {
"merge-mcp-server": {
"command": "uvx",
"args": [
"merge-mcp",
"--scopes",
"ats.Job:read",
"ats.Candidate",
"ats.Application:write"
],
"env": {
"MERGE_API_KEY": "<YOUR_MERGE_API_KEY>",
"MERGE_ACCOUNT_TOKEN": "<YOUR_MERGE_ACCOUNT_TOKEN>"
}
}
}
}