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.

MCP server URLhttps://mcp.dusted.io/mcp

Or 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)
  1. Open Settings, then Connectors. Choose Add custom connector.

  2. Paste the server URL as the remote MCP server URL and choose Add. Leave Advanced settings empty — Dusted registers your client automatically.

  3. Choose Connect, sign in to Dusted, and approve the request. Claude asks for the openid, profile, and email scopes; all three are required.

  4. 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)
  1. Add the server over HTTP transport.

    terminal
    claude mcp add --transport http dusted https://mcp.dusted.io/mcp
  2. Start Claude Code and run the MCP panel, then choose Dusted and authenticate. Your browser opens for Dusted sign-in and approval.

    in Claude Code
    /mcp
  3. Confirm the connection. Dusted should read Connected rather than Needs authentication.

    terminal
    claude 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)
  1. Register the server.

    terminal
    codex mcp add dusted --url https://mcp.dusted.io/mcp
  2. Start the OAuth flow and approve the request in your browser.

    terminal
    codex mcp login dusted
  3. Alternative: 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)
  1. Go to grok.com/connectors and choose New Connector, then Custom.

  2. Enter the server URL, then complete the Dusted sign-in and approval.

  3. 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)
  1. Add Dusted to the mcp_servers block in ~/.hermes/config.yaml.

    config.yaml
    mcp_servers:
      dusted:
        url: "https://mcp.dusted.io/mcp"
        auth: oauth
  2. Restart Hermes, or reload MCP in a running session. Hermes runs the OAuth flow and opens your browser for Dusted approval.

    terminal
    /reload-mcp
  3. The 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)
  1. Add the server.

    terminal
    openclaw mcp add dusted \
      --url https://mcp.dusted.io/mcp \
      --transport streamable-http \
      --auth oauth
  2. Authorize it. OpenClaw prints an authorization URL, listens on a loopback callback, and finishes the token exchange once you approve.

    terminal
    openclaw mcp login dusted
  3. Check that it came back authorized.

    terminal
    openclaw 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_draft

    Opens a new draft from a title, plus any of the five sections your agent has already written.

  • get_case_study

    Reads a case study back in full: every section, its tools, taxonomy, attached assets, and current revision.

  • update_case_study_sections

    Rewrites 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_taxonomy

    Sets the industry, up to three disciplines, and up to five goals — catalog entries or your own goal label.

  • set_case_study_tools

    Replaces the tools tagged on a case study from the vendor catalog. Custom tools you added in the editor are kept.

  • search_vendors

    Looks 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_snapshot

    Writes the AI summary publication requires, or returns the stored one when it is still fresh.

  • get_publish_readiness

    Reports 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_studies

    Full-text search across your own work — title, content, and summary — filtered by status, tool, vendor, discipline, goal, industry, or publication date.

  • list_my_case_studies

    Lists your drafts and published work without a query.

  • get_vendor_usage

    Shows how a vendor appears across published work: which tools, which disciplines and goals, and example case studies.

  • get_my_profile

    Reads 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.

IllustrationNot a recording of a real session
  1. You

    I've pasted my launch retro below. Make it a Dusted case study.

  2. create_case_study_draftRepositioning the self-serve trial
  3. update_case_study_sectionscontext, challenge, approach, result
  4. Agent

    Draft is in. I left the tools section empty — the retro names Figma and Amplitude but not what you did in them.

  5. You

    Tag it and check whether it's ready.

  6. search_vendorsfigma, amplitude
  7. set_case_study_taxonomysaas · growth, lifecycle · activation
  8. set_case_study_toolsfigma-design, amplitude
  9. generate_snapshot
  10. get_publish_readiness
  11. 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.

  12. 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.

Create an account