Display MCP server
Publish HTML and Markdown from any MCP client.
Connect the Display MCP server once. Your agent can then publish a page, update it at the same URL, choose who can open it, and read the comments.
The demo shows an agent publishing a doc to display.dev – from a chat or a terminal – then a teammate opening its URL, selecting Edit, changing a number on the page and saving v2, a colleague commenting on v2, the agent publishing v3 at the same URL and resolving the comment, and the doc being shared with someone outside the company.
Cursor, Codex, Claude Code – any agent that writes a file. Switch agents anytime – your URLs, versions and comments stay put.
Is there an MCP server that publishes HTML and Markdown to my company?
Yes. Display (display.dev) is the docs workspace for agents and people. Its MCP server gives an agent tools to publish HTML or Markdown to a URL. The agent can update the page at the same URL, set who can open it, search and read artifacts, and work through comments. On Claude, add Display from the connector directory. In Cursor, Codex, ChatGPT or another MCP client, connect to https://api.display.dev/v1/mcp and sign in. Colleagues open company artifacts with a one-time password on every plan. On Pro and Enterprise, they can also use Google or Microsoft. Every plan has unlimited viewers.
What the tools do
MCP means Model Context Protocol. Agents use this open protocol to call tools. Every user sees the same tool list. Display checks your role, your plan and the artifact when the agent calls a tool.
| Group | Tools | What the agent does |
|---|---|---|
| Publish and update | publish, create_upload, edit, make_copy, rename, delete | Publishes HTML or Markdown, stages a large file, replaces one exact passage as a new version, copies a version, renames, deletes |
| Read and search | list, search, read, get_metadata | Lists artifacts, searches names or source text, reads a range of the source, gets versions and open threads |
| Access | share | Sets the artifact to Public, Company or Private, and changes the list of invited email addresses. The agent does not publish again |
| Comments | list_comments, add_comment, edit_comment, delete_comment, resolve_thread, reopen_thread, watch, unwatch | Reads reviewer comments, replies, resolves threads, and turns comment notifications on or off |
| Members | list_members, change_member_role, preview_member_removal, remove_member | Manages the people in the organization. Owner and Admin roles apply |
| Email domains | list_email_domains, add_email_domain, verify_email_domain, remove_email_domain | Adds a company email domain and checks its DNS record |
| Logo | set_logo, clear_logo | Sets or clears the organization logo on paid plans |
The tool find stays for older clients. New work uses list or search. The remote server reads source in ranges: the agent searches, then reads only the part it needs. The local server in the Display CLI also has export, which returns the full source file. The public endpoint has one tool, publish.
A publish call looks like this:
{
"name": "publish",
"arguments": {
"content": "<h1>Q3 review</h1><p>Summary for the leadership team.</p>",
"name": "Q3 review",
"visibility": "company"
}
}To update the page, the agent calls get_metadata. Then it calls publish again with short_id and base_version. The URL stays the same. If the artifact changed after that version, Display refuses the update, so one writer cannot overwrite a newer version. For a small fix, edit replaces one exact passage and publishes the next version.
Install in your client
Each guide has the full steps and troubleshooting.
| Client | Connection | Command or setting | Guide |
|---|---|---|---|
| Claude (web, Desktop, mobile, Cowork) | OAuth, from the connector directory | Open Display in the directory, select Connect, sign in | Claude Desktop |
| Claude Code | OAuth | claude mcp add --transport http --scope user display https://api.display.dev/v1/mcp, then /mcp | Claude Code |
| Cursor | OAuth or API key | Add the remote URL https://api.display.dev/v1/mcp to ~/.cursor/mcp.json | Cursor |
| Codex | Plugin with OAuth, or API key | codex plugin marketplace add display-dev/skill, then codex plugin add display-dev@display-dev | Codex |
| ChatGPT | OAuth, developer mode | Create an app with the endpoint https://api.display.dev/v1/mcp | ChatGPT |
| Other MCP clients | OAuth or API key | Remote URL https://api.display.dev/v1/mcp | MCP tools |
Claude shows a Community label on the Display listing. In Display's docs, the label means that Anthropic screens directory connectors but did not review this one in depth.
Cursor supports OAuth for remote MCP servers. Add {"mcpServers": {"display": {"url": "https://api.display.dev/v1/mcp"}}} with no headers entry, and sign in when Cursor asks. To use an API key in Cursor, set DISPLAYDEV_API_KEY in the environment that starts Cursor. Then add this to ~/.cursor/mcp.json:
{
"mcpServers": {
"display": {
"url": "https://api.display.dev/v1/mcp",
"headers": {
"Authorization": "Bearer ${env:DISPLAYDEV_API_KEY}"
}
}
}
}To use an API key in Codex, add this to ~/.codex/config.toml:
[mcp_servers.display]
url = "https://api.display.dev/v1/mcp"
bearer_token_env_var = "DISPLAYDEV_API_KEY"ChatGPT needs a Business, Enterprise or Edu workspace with developer mode on. OpenAI lists full MCP support, with write actions, as a beta on those plans. An Admin, an Owner or an authorized developer adds the app.
Do not put an API key in a project file that you commit.
Publish with no account
The public endpoint needs no sign-in. Connect a remote MCP client to https://api.display.dev/v1/public/mcp. The agent calls publish and gets a public preview URL and a single-use claim URL. The preview stays for 30 days. Open the claim URL and sign in to move the artifact into your organization at the same URL. See Publish without an account.
No MCP in your client
Ask your agent: "Publish report.html to Display for my company." The agent uses the route that it has. Every MCP action also has an HTTP call:
# Publish with the REST API
curl -X POST https://api.display.dev/v1/artifacts \
-H "Authorization: Bearer $DISPLAYDEV_API_KEY" \
-F file=@report.html \
-F name="Q3 review" \
-F visibility=company
# Publish with no account
curl -X POST https://api.display.dev/v1/public/artifacts \
-F file=@report.htmlTo update a page, send a PUT to https://api.display.dev/v1/artifacts/<shortId> with a multipart file and the header If-Match: "v<n>". Publish from code compares the agent, the API, MCP and CI.
Permissions and data access
- OAuth
- The connection acts with your role in the organization that you choose at sign-in. Revoke it at any time under Connected apps in the dashboard.
- API key
- The connection acts with the scope of the key. A key that a user owns is also limited by the role of that user.
- Organization service key
- This key works with Public and Company artifacts. It cannot read Private artifacts or use member tools.
- Default visibility
- A publish by a user, with OAuth or a user API key, starts as Private. A publish by an organization service key starts as Company. Pass
visibilityto choose. - Organization policy
- An Owner can restrict Public artifacts or outside sharing for the whole organization. The tools then refuse those choices. MCP has no tool that changes this policy.
- What the server receives
- It sees artifact content and metadata, comments, member names, email addresses and roles, email domains and the organization logo. It does not read your agent's conversation history, memory or other files. It receives only what the agent sends in a tool call.
MCP servers for publishing, side by side
Checked on 20 October 2026. The Stacktree column comes from Stacktree's page "MCP publish HTML".
| Display | Stacktree | |
|---|---|---|
| Remote server with OAuth | Yes, https://api.display.dev/v1/mcp | Yes, a hosted server, plus an installer for CLI clients |
| How readers get in | One-time password, or Google and Microsoft on Pro and Enterprise | An unguessable URL, with an optional passcode or email-domain gate |
| Comments as tools | Read, reply, resolve, reopen, watch | Feedback tools: list and resolve |
| Organization members and email domains | Yes | Client spaces |
| Publishes a ZIP or a folder | No. One HTML or Markdown file per artifact | Yes, a ZIP with index.html through its REST API |
| Publish with no account | Yes, a 30-day preview with a claim URL | Yes, 24 hours through its HTTP API |
When another tool is better
- The output is a folder of files or a ZIP. Use Stacktree or a static host. Today Display takes one HTML or Markdown file per artifact. We plan to add folder publishing.
- The output has a server or a database. Use an app platform.
- Agents write documents and colleagues review them behind sign-in. Use Display. The agent reads the comments and publishes the next version at the same URL.
Common questions.
What is the MCP endpoint URL?
Use https://api.display.dev/v1/mcp with OAuth or an API key. Use https://api.display.dev/v1/public/mcp to publish with no account.
Does the Display MCP server work in Claude, Cursor, Codex and ChatGPT?
Yes. Claude, ChatGPT and Cursor connect with OAuth. Claude Code connects with OAuth or an API key. Codex connects through the Display plugin or with an API key.
Can an agent read comments through MCP?
Yes. list_comments returns the threads. add_comment replies. resolve_thread closes a thread after the agent makes the change. Outside guests can view an artifact. Guest comments are not available yet.
Can an agent publish Markdown as well as HTML?
Yes. Pass format: "md" or use a .md file. An artifact keeps the format it started with. To change the format, publish a new artifact.
What is the size limit?
Inline content suits small pages. For a larger file, the agent calls create_upload, sends the bytes to the URL it gets back, then calls publish with upload_id. The limit is 10MB per artifact on Free and 50MB on Solo, Pro and Enterprise.
Does the MCP server cost extra?
No. It is part of every plan, including Free. Free allows 3 gated artifacts and unlimited public artifacts. See pricing.
Who can open what the agent publishes?
You choose for each artifact: Public, everyone at your company, Private, or invited email addresses. Every plan has unlimited viewers.
Publish your first artifact in 15 seconds.
Free tier. No credit card. One-time password auth on free, Google + Microsoft SSO on Pro (€49/month flat).

