Using an agent (MCP)
You can use Ptarmigan-1 from an AI agent through its MCP server. An agent connected to it can find targets and libraries, estimate and run screens, and read the results, all on your account.
Create an API key
Create a key on the API keys page. It appears only once, right after you create it, so copy it with Copy key before you leave the page.
A key acts as your account: it sees your libraries and spends your balance. Treat it like a password, and keep it out of code, notebooks and chats you share. If a key may have leaked, revoke it on the API keys page straight away and create a new one. Give each agent its own key, and revoke any key you no longer use.
Connect a client
The server is at https://ptarmigan.app/api/v1/mcp (Streamable HTTP). Every request carries
the key as Authorization: Bearer <key>. Where your client allows it, also set
a descriptive User-Agent, such as acme-screen-mcp/1.0. If Cloudflare
returns 403 with error code: 1010, see Errors.
Claude Code: put the key in an environment variable, then add the server. The command reads the key from the variable, so it stays out of your shell history:
export PTARMIGAN_API_KEY=... # from the API keys page
claude mcp add --transport http ptarmigan https://ptarmigan.app/api/v1/mcp \
--header "Authorization: Bearer $PTARMIGAN_API_KEY" \
--header "User-Agent: acme-screen-mcp/1.0"
Claude Desktop connects through mcp-remote, which needs Node.js. Add to
claude_desktop_config.json:
{
"mcpServers": {
"ptarmigan": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://ptarmigan.app/api/v1/mcp", "--header", "Authorization:${AUTH_HEADER}"],
"env": { "AUTH_HEADER": "Bearer <your API key>" }
}
}
}
Cursor: add to ~/.cursor/mcp.json:
{
"mcpServers": {
"ptarmigan": {
"url": "https://ptarmigan.app/api/v1/mcp",
"headers": { "Authorization": "Bearer <your API key>" }
}
}
}
Other clients: any MCP client that can send a custom header over Streamable HTTP works with the same URL and header.
claude.ai: add Ptarmigan-1 as a custom connector.
- Go to Customize > Connectors and choose Add custom connector.
- Enter a name, such as Ptarmigan-1, and the URL
https://ptarmigan.app/api/v1/mcp. - Under Authentication, choose No sign-in. Ptarmigan-1 takes an API key, not a sign-in.
- Under Request headers, choose the
authorizationheader and enterBearerfollowed by your key, with the space:Bearer <your API key>. claude.ai sends the value exactly as you enter it, so withoutBearerevery request is refused. - Choose Add.
claude.ai doesn't show the key again, and you can't edit a connector's authentication. To use a new key, remove the connector and add it again.
Request headers is a claude.ai beta that not every account has yet. If your Add custom connector dialog has no Request headers section, connect from Claude Code or Claude Desktop instead. On a Team or Enterprise plan, an Owner adds custom connectors for the whole organization, and every member's requests then carry the key the Owner entered. That key spends the balance of the account that created it, so add Ptarmigan-1 this way only if everyone in the organization should screen on that account.
What the agent can do
| Tool | Does |
|---|---|
list_proteins |
Find targets by gene, name or accession |
list_compound_collections, get_compound_collection |
List libraries and check whether one is ready |
get_balance |
Read the balance |
estimate_screen |
Price a screen before running it |
create_screen |
Queue a screen (this spends the balance) |
list_screens, get_screen, cancel_screen |
Follow or cancel screens |
get_screen_hits |
Read the top of a ranking (25 per page unless it passes limit) |
get_screen_download |
Get a link to the full ranking as Parquet or CSV |
get_screen_compound_detail |
One compound against the target, residue by residue |
Uploading and deleting libraries are not MCP tools; use the web app or the REST API.
Example prompts
Start a conversation by naming Ptarmigan-1, so the agent knows to use its tools:
- "Using Ptarmigan-1, which compound libraries can I screen, and how big is each?"
- "Estimate a Ptarmigan-1 screen of BRAF against the Demo Catalog. Tell me the cost and wait for my go-ahead before running it."
- "Show the top 10 compounds from my latest BRAF screen, with their predicted engagement and highest-scoring residue."
- "For the top compound in that screen, which residues of BRAF have the highest predicted engagement?"
- "Give me a link to download that screen's full ranking as CSV."
- "Help me design a new potential binder for EGFR and screen it with Ptarmigan-1."
Tips
- Ask the agent to estimate first and tell you the cost before it runs a screen.
create_screentakes anIdempotency-Key. An agent that retries a call with the same key gets the same screen back instead of paying twice.- An agent loads Ptarmigan-1's tools when a conversation starts and keeps them for the whole conversation, even if you reconnect it. When we add or change a tool, start a new conversation to use it. The server tells an agent its tools version when it connects and repeats it in every tool error, so an agent with an outdated list can notice and tell you.
- Results stay available in the app for 6 months, so an agent
can come back to a screen later.
get_screen_downloadlinks the full ranking, to keep for longer. - For an agent without MCP, hand it https://ptarmigan.app/llms.txt: the same workflow over REST, written for an agent to read.