Model Context Protocol · Any model you bring

Bring your own MCP servers.
Let the agent call them.

Duct's agent can use any MCP server you connect. Six are one click away (OpenSEO, PostHog, Notion, Linear, Railway and Cloudflare), and any other public server connects by its address.

Free with your own keys · No credit card · macOS, Windows and Linux

On a ready-made server, a tool marked read-only runs straight away. Anything else shows you the arguments it will send, and waits for you.

How to connect a server

Three steps. Then ask.

01

Open Connections

In the Duct app, open Connections. The ready-made servers are listed there, and any other connects by its address.

02

Pick a server or paste its address

Choose OpenSEO, PostHog, Notion, Linear, Railway or Cloudflare. For anything else, paste the server's https address.

03

Sign in once

One click where the server supports sign-in. Where it does not, paste an API key from the vendor. Duct keeps it encrypted.

Then ask in the chat. The agent looks through the tools on the servers you connected, calls the one that fits, and answers from what comes back.

Ready-made

Six servers. One click each.

Pick one on Connections and sign in with the account you already have. Each address is here for reference; you never have to type it.

OpenSEO

Keyword volume, difficulty and backlinks.

Server addresshttps://app.openseo.so/mcp
One-click sign-inAPI key works tooResearch spends your OpenSEO credits

Try: Which keywords on this list are worth the effort to rank for?

Notion

The pages and databases in your workspace.

Server addresshttps://mcp.notion.com/mcp
One-click sign-in

Try: What did we decide in the launch plan?

Linear

Your issues and projects.

Server addresshttps://mcp.linear.app/mcp
One-click sign-in

Try: Which issues in the onboarding project are still open?

PostHog

Your product analytics.

Server addresshttps://mcp.posthog.com/mcp
One-click sign-inAPI key works too

Try: Which onboarding step loses the most people?

Railway

Your services, deployments, logs and variables.

Server addresshttps://mcp.railway.com
One-click sign-inEvery call asks first

Try: Did yesterday's deploy go out cleanly?

Cloudflare

Your account through its API: Workers, DNS and analytics.

Server addresshttps://mcp.cloudflare.com/mcp
One-click sign-inEvery call asks first

Try: How much of last week's traffic was bots?

Any other server

Not on the list? Paste its address.

Duct connects to any MCP server it can reach over the public internet. Here is what that takes, and what does not work.

Connects
  • A public https:// address serving MCP over Streamable HTTP.
  • One-click sign-in when the server publishes OAuth discovery and either accepts a client metadata document or allows dynamic client registration.
  • Otherwise, an API key you paste, sent to the server as a bearer token.
Not supported
  • Local servers that run over stdio on your own computer.
  • Servers on a private network. The hosted service only calls public internet addresses.
  • Vendors that only admit pre-approved clients. Figma and Slack work that way today.

What the agent will and won't do

Read-only runs. Everything else asks first.

The same rules hold for every server you connect, with one difference: a server you add by its address asks before every call.

Read-only tools run straight away

When OpenSEO, PostHog, Notion or Linear marks a tool read-only, the agent calls it without stopping to ask. Railway and Cloudflare get no such trust, because their reads can return your secrets, and nor does a server you add by address: every call to those asks first.

Everything else waits for you

Any other call pauses and shows you everything it will send. Approve it or skip it.

Replies are data, not orders

What a server sends back is treated as data to read, never as instructions to follow.

Your tokens never reach the model

Sign-ins and API keys stay on Duct's side, encrypted, and are never shown to the model.

Your servers, your chats

A server belongs to the person who connected it, and only their own chats use it, in any project. Someone you share a project with connects their own and never reads through yours.

The insights chat, for now

Today, connected servers are used in the insights chat. Scheduled briefs and Content Studio do not call them yet.

Troubleshooting

When a server says no.

It says “This server needs an API key”

The server offers no sign-in Duct can use. Create an API key in the vendor's settings and paste it on Connections.

It says “Needs reconnecting”

The sign-in expired, or was revoked on the vendor's side. Press Reconnect on Connections and sign in again.

It says “Duct only connects to servers on the public internet”

The address points at your own computer or a private network. The hosted service only calls public internet addresses, so a local or internal server cannot be reached.

Why can't I connect Figma or Slack?

Both only admit clients they have approved in advance, so their server address alone is not enough. They do not work with Duct yet.

Does a tool call cost anything?

Some do, on the vendor's side. A call that costs credits there, such as OpenSEO research, spends your credits with that vendor, the same as it would from any other client.