Wire Amdahl into your agents.
Amdahl connects through one command, one URL, or one API key.
Connect in one command
npx @amdahl/cli install claude-codeWrites your client’s config and tells you how to sign in. Also takes codex and cursor.
Or add it by hand. Every path signs you in over OAuth in the browser, so no key goes in a file.
Connect in the Claude web app or Claude Desktop
- In Claude, open Customize (in the left sidebar), then Connectors.
- Click + Add, then Add custom connector.
- Name it Amdahl, set the URL to
https://app.amdahl.ai/mcp, then click Continue, then Add. - On Amdahl’s connector page, click Connect, sign in to Amdahl with your work email, and choose your workspace.
- Open a new chat. In the + menu, under Connectors, turn on Amdahl. If Amdahl is not there, reload the app (Cmd+R, or Ctrl+R on Windows).
- Add the Amdahl skill, so Claude sends a plain “make this better” to Amdahl: download amdahl.zip, then open Customize → Skills, click + Add, then Upload skill, and choose the file. If your browser unzips it (Safari does), upload the SKILL.md inside the amdahl folder instead.
- Optional: on Amdahl’s connector page, under Tool permissions, set Read-only tools to Always allow, so Claude does not ask before each rewrite.
- Paste a draft and ask “make this better: …”. Without the skill, name the server: “Use the Amdahl MCP server to optimize this draft: …”.
Prefer a config file? Copy the snippet for your client.
Add to your Claude Desktop config and restart. Sign in when prompted.
{
"mcpServers": {
"amdahl": {
"url": "https://app.amdahl.ai/mcp"
}
}
}Any other MCP client works too: point it at https://app.amdahl.ai/mcp over streamable HTTP and let it run the OAuth flow.
Check it worked
One call answers the whole setup. Ask your agent to call the connections tool with:
{ "action": "setup_status" }It names the workspace you reached and your role in it, and when something is wrong it names the one thing to fix.
Your first run
The fastest first result needs no data and no draft to hand. Paste this:
Load and follow https://docs.amdahl.ai/skills/amdahl-optimizer/SKILL.mdYour agent finds a few of your upcoming drafts and optimizes each one, before and after. It writes nothing back until you approve.
No workspace yet? Start with 25 free runs.
Try the OptimizerRead the docs over MCP
The documentation is a second, public MCP server, so an agent can list, read and search these pages with no key and no workspace behind it:
https://docs.amdahl.ai/mcpSeparate from the server above on purpose: your data needs a credential, the manual does not.
Building a custom agent instead of an MCP client?
Secure by default.
Every connection is authenticated, every call is logged, every customer’s data sits in its own isolated tenancy. Same posture across MCP and REST.
SOC 2 Type 2 certified
Audited for security, availability, and confidentiality. Per-customer isolation at the database layer.
Encryption in transit and at rest
TLS 1.2+ in transit, AES-256 at rest. Zero retention with every LLM provider we query.
Scoped, revocable API keys
One key per agent, scoped to the tools it needs, revoked the moment a teammate leaves. Read-only by default.
No training on customer data
Your data is used to generate your outputs and nothing else. Answers stay grounded in your data; the data stays yours.
MCP semantics, plain English
Tool responses go to the runtime you chose (your Claude, Cursor, or custom client) and nowhere else. Rate limits, audit logs, and observability ship by default.
Agents that check their work before it ships.
Score outbound before it sends
The SDR agent pastes the opener. Amdahl searches the objections that killed similar deals, then scores the draft against them. Thin evidence never ships.
amdahl.evals({ action: "run", inputs: { message: opener, artifact_type: "outreach" } })Search buyer language for today's draft
A cron pulls the language customers used this month, then scores the morning LinkedIn draft against it. Every mark links back to the source call.
amdahl.search({ action: "query", query: "buyer language for today's POV" })Pull churn signal, then score the outreach
Queries what at-risk accounts actually said this month, then scores the retention draft against it.
amdahl.search({ action: "query", query: "churn signals this month", audience: "customer_voice", hydrate: true })Battle card claim scored in Cursor
An engineer pastes a competitive claim. The MCP pulls what buyers said about that competitor, then returns a score and cited wins.
amdahl.evals({ action: "run", inputs: { message: claim, artifact_type: "objection_response" } })Run Amdahl from the agents you already use.
No workspace yet? Join the beta.