Write case studies from wherever your agent already lives.
The Dusted MCP server connects your assistant to your own case studies. It drafts and rewrites sections, tags the work against the real vendor catalog, writes the summary, and checks the draft against every publication gate.
Then it stops. Your agent prepares the case study and hands you the editor link — publishing stays a decision you make in Dusted.
https://mcp.dusted.io/mcpOr let your agent connect itself.
You sign in with your Dusted account and approve access in your browser. There are no API keys to manage.
Approving lets your agent read and write your own case studies, and nothing else. It cannot publish them, delete them, comment as you, or reach another member’s work. Clients ask for three sign-in scopes — openid, profile and email — which identify your account and carry no further access.
Changed your mind? Remove the Dusted connection in your client and its access ends. You need a Dusted account first — it takes a minute.
Connect your client
Every client below speaks the same protocol, so the URL never changes — only where you paste it. Any other MCP client works too: point it at the same URL over streamable HTTP with OAuth.
Claude
Web and desktop
Added once as a custom connector, then switched on per conversation.
Claude connector docs(opens in a new tab)Open Settings, then Connectors. Choose Add custom connector.
Paste the server URL as the remote MCP server URL and choose Add. Leave Advanced settings empty — Dusted registers your client automatically.
Choose Connect, sign in to Dusted, and approve the request. Claude asks for the openid, profile, and email scopes; all three are required.
In a chat, open the + menu, choose Connectors, and switch Dusted on.
On Team and Enterprise plans an Owner adds the connector first, under Organization settings → Connectors → Add → Custom → Web. Everyone else then connects it from their own Connectors page.
Claude Code
Terminal and IDE
One add command, then authenticate from inside a session.
Claude Code MCP docs(opens in a new tab)Add the server over HTTP transport.
terminalclaude mcp add --transport http dusted https://mcp.dusted.io/mcpStart Claude Code and run the MCP panel, then choose Dusted and authenticate. Your browser opens for Dusted sign-in and approval.
in Claude Code/mcpConfirm the connection. Dusted should read Connected rather than Needs authentication.
terminalclaude mcp list
Add --scope user to make Dusted available in every project instead of only the current one.
Codex
CLI and IDE extension
Registered from the terminal, authorized with a login command.
Codex MCP docs(opens in a new tab)Register the server.
terminalcodex mcp add dusted --url https://mcp.dusted.io/mcpStart the OAuth flow and approve the request in your browser.
terminalcodex mcp login dustedAlternative: Prefer editing config directly? Write this into ~/.codex/config.toml instead of step one, then run the login command.
config.toml[mcp_servers.dusted] url = "https://mcp.dusted.io/mcp" auth = "oauth"
In the IDE extension: gear menu → MCP servers → Add server, choose Streamable HTTP, paste the URL, then restart the extension.
Known issue with Codex loopback callbacks
Some Codex builds register their callback on 127.0.0.1 and then authorize with localhost. Those are different redirect URIs, so approval fails at the last step with a redirect_uri mismatch. Dusted sign-in and consent both work; the mismatch is on the client side and is fixed by upgrading Codex.
Track openai/codex#31038(opens in a new tab)Grok
Web
Added as a custom connector; Grok discovers the tools itself.
xAI connector docs(opens in a new tab)Go to grok.com/connectors and choose New Connector, then Custom.
Enter the server URL, then complete the Dusted sign-in and approval.
Grok reads the tool list and makes it available in your next conversation.
Team admins add it for everyone from console.x.ai → your team → Grok Business → Connectors → Add Connector → Other.
Hermes
Local agent
Declared in config, authorized in the browser on first connect.
Hermes MCP docs(opens in a new tab)Add Dusted to the mcp_servers block in ~/.hermes/config.yaml.
config.yamlmcp_servers: dusted: url: "https://mcp.dusted.io/mcp" auth: oauthRestart Hermes, or reload MCP in a running session. Hermes runs the OAuth flow and opens your browser for Dusted approval.
terminal/reload-mcpThe tools register as mcp_dusted_<tool>. Tokens are stored under ~/.hermes/mcp-tokens/ and refresh on their own.
OpenClaw
Local agent and gateway
Added and authorized with two commands.
OpenClaw MCP docs(opens in a new tab)Add the server.
terminalopenclaw mcp add dusted \ --url https://mcp.dusted.io/mcp \ --transport streamable-http \ --auth oauthAuthorize it. OpenClaw prints an authorization URL, listens on a loopback callback, and finishes the token exchange once you approve.
terminalopenclaw mcp login dustedCheck that it came back authorized.
terminalopenclaw mcp status --verbose
The equivalent entry lives under mcp.servers in ~/.openclaw/openclaw.json if you would rather edit config directly.
What your agent can do
Twelve tools, scoped to your own work. Your agent never sees another member’s drafts, and it cannot publish, delete, or post on your behalf.
Draft and revise
Your agent can start a case study from whatever you already have — notes, a retro doc, a rambling voice memo — and keep editing it section by section.
“Turn my notes from the Q3 launch into a Dusted draft. Fill in context, challenge, and approach for now.”
create_case_study_draftOpens a new draft from a title, plus any of the five sections your agent has already written.
get_case_studyReads a case study back in full: every section, its tools, taxonomy, attached assets, and current revision.
update_case_study_sectionsRewrites any of context, challenge, approach, tools, or result — and the title. A revision check stops a concurrent edit from being silently overwritten.
Tag the work
Tags are what make a case study findable, and they are the part everyone skips. Your agent reads the draft and proposes them from the real catalog.
“Tag it: B2B SaaS, growth and lifecycle, and the tools were Figma, Notion, and Customer.io.”
set_case_study_taxonomySets the industry, up to three disciplines, and up to five goals — catalog entries or your own goal label.
set_case_study_toolsReplaces the tools tagged on a case study from the vendor catalog. Custom tools you added in the editor are kept.
search_vendorsLooks vendors and their tools up by name or category, so your agent tags the real entry instead of inventing one.
Get it ready to publish
Publishing has five gates. Your agent can clear all of them and tell you exactly what is left — then it hands the draft back to you.
“Write the summary, then tell me what is still missing before I can publish this.”
generate_snapshotWrites the AI summary publication requires, or returns the stored one when it is still fresh.
get_publish_readinessReports each publication gate as passed or failed, flags empty sections, and returns the editor link.
Find your work and its context
Everything you have already published is searchable by your agent — useful when you are writing the next one, or answering what you did with a given tool.
“Which of my published case studies mention Amplitude, and what did I say about it?”
search_case_studiesFull-text search across your own work — title, content, and summary — filtered by status, tool, vendor, discipline, goal, industry, or publication date.
list_my_case_studiesLists your drafts and published work without a query.
get_vendor_usageShows how a vendor appears across published work: which tools, which disciplines and goals, and example case studies.
get_my_profileReads your Dusted profile and names the fields still missing from it.
A draft, start to finish
What a working session actually looks like once Dusted is connected.
- You
I've pasted my launch retro below. Make it a Dusted case study.
create_case_study_draftRepositioning the self-serve trialupdate_case_study_sectionscontext, challenge, approach, result- Agent
Draft is in. I left the tools section empty — the retro names Figma and Amplitude but not what you did in them.
- You
Tag it and check whether it's ready.
search_vendorsfigma, amplitudeset_case_study_taxonomysaas · growth, lifecycle · activationset_case_study_toolsfigma-design, amplitudegenerate_snapshotget_publish_readiness- Agent
All five gates pass. The tools section is still empty, which won't block you but is worth two sentences. Open the editor and hit Publish when you're happy.
dusted.io/c/case-study/editor/…Your agent hands back a link. You publish.
When something goes wrong
- Unauthorized, or insufficient scope
- The access token expired, or was approved without all of openid, profile, and email.Remove the Dusted connection in your client, add it again, and approve all three scopes.
- Profile not ready
- You signed in successfully, but your Dusted account has not finished setup.Open Dusted in the browser once, complete onboarding, then retry.
- Not found
- That case study does not exist, is deleted, or belongs to somebody else.Your agent only ever reaches your own drafts and published work. Ask it to list your case studies and pick from those.
- Conflict
- The case study changed while your agent was writing — usually you, editing in another tab.Ask your agent to re-read and retry. The response carries the current text so nothing is lost.
- Temporarily unavailable
- A service Dusted depends on is having a moment.Reads are safe to retry straight away. Writes should not be retried automatically — check the case study first.
You'll need a Dusted account
The MCP server works against your own case studies, so it needs an account behind it. Signing up takes a minute.