Skip to content

docs(mcp): document SSE transport and correct policy semantics#1171

Merged
factory-davidgu merged 3 commits into
mainfrom
ain3sh/dr-79-mcp-sse-docs
Jun 1, 2026
Merged

docs(mcp): document SSE transport and correct policy semantics#1171
factory-davidgu merged 3 commits into
mainfrom
ain3sh/dr-79-mcp-sse-docs

Conversation

@factory-ain3sh

@factory-ain3sh factory-ain3sh commented May 29, 2026

Copy link
Copy Markdown
Contributor

Description

The public MCP configuration guide had drifted from the shipped Droid CLI: it documented only http and stdio transports, while the CLI already implements and tests sse, and it misstated the configuration hierarchy and enterprise-policy behavior. This PR brings docs/cli/configuration/mcp.mdx back in line with the current implementation — adding SSE coverage, expanding the schema, documenting the folder-level and org-managed configuration sources, and correcting the mcpPolicy semantics. Per the MCP spec, the page now frames http as Streamable HTTP (the current standard, which streams over SSE internally) and sse as the legacy standalone HTTP+SSE transport kept for older servers, steering users to http by default. Content verified as accurate (registry and interactive-manager guidance) is left intact.

Related Issue

Closes DR-79

Constraint from: review feedback (David Gomez-Urquiza) — the transport wording must not imply http and sse are unrelated peers, since Streamable HTTP already uses SSE for streaming.

Reviewer Guide

Read order: docs/cli/configuration/mcp.mdx — single file. Review top-to-bottom; the four substantive areas are the CLI transports intro + new "Adding SSE Servers" section, the Configuration hierarchy table, the Configuration Schema, and the Enterprise MCP policy table.
Review depth: Standard — verify the wording matches implementation intent, especially the inverted mcpPolicy.enabled semantics and the allowlist matching rules.
Open for pushback: the folder-level precedence wording in "How Layering Works" (user → folder → project) is stated conservatively; tighten it if the implementation defines a more specific ancestor ordering.

Risk & Impact

Documentation-only change; no code paths affected. The primary risk is conveying incorrect behavior, so the corrections are the point: the previous mcpPolicy.enabled description was inverted ("false blocks all servers") and the allowlist was described as matching server names rather than URL hostnames / stdio command+args. Readers acting on the old text would have misconfigured enterprise policy.

Verification

Behavior verified. mintlify broken-links run against the docs project — success no broken links found, including the new in-page anchor #enterprise-mcp-policy added to the hierarchy section. Rendered structure reviewed: new SSE section mirrors the existing HTTP section, schema oauth overrides are enumerated, and the mcp.json examples are valid JSON. Transport descriptions were cross-checked against the MCP transport spec (2024-11-05 HTTP+SSE vs 2025-06-18 Streamable HTTP) after reviewer feedback.
Regression coverage. N/A — prose docs; no test layer. The link checker is the only automated gate and it passes.
Not tested. Field-level accuracy (e.g., exact oauth override key names, allowlist matching internals) is transcribed from the DR-79 implementation evidence rather than re-derived here, since this repo contains only docs, not the CLI source.
Standard validators. No format/lint/typecheck/test tooling in this docs repo; mintlify broken-links clean.

The MCP configuration guide only covered http and stdio, while the CLI
already implements and tests the sse transport. It also misstated the
config hierarchy and enterprise policy behavior.

- Document all three transports (stdio, http, sse) with an SSE add
  command and mcp.json example
- Expand the schema: type union includes sse, stdio type is optional,
  and remote oauth overrides (scopes, clientId, clientSecret,
  callbackPort) are enumerated
- Add the folder-level .factory/mcp.json source and reference
  organization-managed settings in the hierarchy
- Correct mcpPolicy semantics: enforcement only when enabled is true,
  allowlist matches URL hostnames or stdio command/args, and disallowed
  servers are retained but filtered from connecting

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
@factory-droid

factory-droid Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

Droid finished @factory-ain3sh's task —— View job


Strong docs update overall; remaining gaps are doc-set inconsistencies (CLI reference + JP page) and a couple of security footguns where examples/schema could encourage plaintext HTTP or committing secrets.

@factory-ain3sh factory-ain3sh self-assigned this May 29, 2026
@factory-ain3sh factory-ain3sh added the documentation Improvements or additions to documentation label May 29, 2026
@mintlify

mintlify Bot commented May 29, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
factory 🟢 Ready View Preview May 29, 2026, 10:09 PM

💡 Tip: Enable Workflows to automatically generate PRs for you.

…-79)

Review feedback (David Gomez-Urquiza): the prior wording implied http and
sse are unrelated peer transports. Per the MCP spec, Streamable HTTP
(--type http) already streams over SSE internally and replaced the
2024-11-05 HTTP+SSE transport; --type sse is that legacy standalone
endpoint, kept for older servers. Reword the transports intro and SSE
section to reflect this and steer users to http by default.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Comment thread docs/cli/configuration/mcp.mdx
Comment thread docs/cli/configuration/mcp.mdx
Comment thread docs/cli/configuration/mcp.mdx
Comment thread docs/cli/configuration/mcp.mdx
…tps (DR-79)

droid-review (PR #1171) flagged doc-set inconsistencies and security
footguns:

- cli-reference: list sse alongside http/stdio for --type and in the
  quick-reference command block
- become-a-power-user: fix the Linear example (/sse with --type http was
  contradictory) to /mcp with --type http
- mcp.mdx: add a Warning not to commit secrets (headers tokens,
  oauth.clientSecret) in repo-committed project config
- mcp.mdx: correct the Stytch example to https:// (canonical per Stytch
  docs; http:// was wrong)

JP pages are intentionally not hand-edited — the Sync Japanese Docs
workflow regenerates docs/jp/** from these EN changes on merge.

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
@factory-davidgu factory-davidgu merged commit 5535536 into main Jun 1, 2026
12 checks passed
@factory-davidgu factory-davidgu deleted the ain3sh/dr-79-mcp-sse-docs branch June 1, 2026 22:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants