# Cursor-agent mcp list silently drops entire mcp.json when any entry has type: "streamable-http" (works in IDE)

**URL:** <https://forum.cursor.com/t/cursor-agent-mcp-list-silently-drops-entire-mcp-json-when-any-entry-has-type-streamable-http-works-in-ide/158521>\
**Category:** Bug Reports\
**Tags:** mcp, cli\
**Created:** [April 20, 2026, 1:39pm UTC](https://forum.cursor.com/t/cursor-agent-mcp-list-silently-drops-entire-mcp-json-when-any-entry-has-type-streamable-http-works-in-ide/158521 "2026-04-20T13:39:40Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![iFwu](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/ifwu/32/34811_2.png) [@iFwu](https://forum.cursor.com/u/iFwu)\
**Post date:** [April 20, 2026, 1:39pm UTC](https://forum.cursor.com/t/cursor-agent-mcp-list-silently-drops-entire-mcp-json-when-any-entry-has-type-streamable-http-works-in-ide/158521/1 "2026-04-20T13:39:40Z")

</div>

### Where does the bug appear (feature/product)?

Cursor CLI

### Describe the Bug

cursor-agent mcp list silently drops entire mcp.json when any entry has type: “streamable-http” (works in IDE)

## Summary

`cursor-agent` silently drops the entire `mcp.json` when any single entry uses `"type": "streamable-http"` — including unrelated stdio entries in the same file. The Cursor editor accepts `streamable-http` as an alias; the CLI only accepts `http` / `sse` / `stdio`. Users with a working IDE config hit a silent break the moment they run `cursor-agent mcp list`, with no diagnostic pointing at the offending entry.

Related (closed) thread describing the same “all-or-nothing” failure mode triggered at connect time:

> [@\`cursor-agent mcp list\` fails on all or nothing basis](https://forum.cursor.com/t/cursor-agent-mcp-list-fails-on-all-or-nothing-basis/142335):
>
> Where does the bug appear (feature/product)? Cursor CLI Describe the Bug if a single MCP server from .cursor/mcp.json is unreachable, the cursor-agent mcp list command exits with a failure, even if the other server(s) are definitely working/able to be connected to. verified that the order of mcp servers in .cursor/mcp.json does not matter Steps to Reproduce .cursor/mcp.json set up with multiple MCP servers. e.g.: { "mcpServers": { "My Server": { "url": "http://127.0.0.1:3845/mcp"…

This report is the schema-parse-time trigger of the same pattern.

## Why it matters

- Silent: no log, no error, no hint at which entry is bad.
- Cross-cutting: a single bad entry takes down all other MCP servers in the same file, including stdio ones with no relation to HTTP transport.
- Affects automation: any pipeline driving `cursor-agent --print` on a host with a normal IDE-authored `mcp.json` will run with zero MCP tools available and no indication why.

### Steps to Reproduce

No network required.

1. Create a fresh project dir with a minimal mcp.json containing one stdio entry and one streamable-http entry:

```bash
mkdir -p /tmp/repro/.cursor && cd /tmp/repro
cat > .cursor/mcp.json <<'JSON'
{
  "mcpServers": {
    "stdio-ok": { "command": "true" },
    "sh-bad": { "type": "streamable-http", "url": "https://example.com/mcp" }
  }
}
JSON

```

1. Run:

```bash
cursor-agent mcp list

```

Actual output:

```auto
No MCP servers configured (expected in .cursor/mcp.json or ~/.cursor/mcp.json)

```

The stdio entry `stdio-ok` is silently dropped along with the streamable-http one. No error, no log line names the offending entry.

1. Rename the offending type to “http”:

```bash
sed -i '' 's/streamable-http/http/g' .cursor/mcp.json
cursor-agent mcp list

```

Now both entries appear:

```auto
stdio-ok: not loaded (needs approval)
sh-bad: not loaded (needs approval)

```

This proves the file is otherwise valid and the failure is specific to the `streamable-http` type value.

### Expected Behavior

One of:

1. (preferred) CLI parser accepts “streamable-http” as an alias for “http”, matching the Cursor editor — avoids silent IDE/CLI divergence on the same mcp.json.

2. CLI emits a parse error naming the offending server key (e.g. `mcp.json: ignoring "sh-bad": unknown transport type "streamable-http"`), instead of falling through to `No MCP servers configured` and discarding all sibling entries in the file.

In either case, a single malformed entry must NOT invalidate the rest of the file.

### Operating System

MacOS

### Version Information

CLI:  
CLI Version 2026.04.17-787b533  
Model Composer 2 Fast  
Subscription Tier Ultra  
OS darwin (arm64)  
Shell zsh

### For AI issues: which model did you use?

N/A — this is a CLI mcp.json parser bug, not a model/AI behavior issue.

### For AI issues: add Request ID with privacy disabled

N/A — not a model request issue. Privacy mode is enabled on this account; no request ID applies.

### Additional Information

- The same `mcp.json` file works correctly in the Cursor IDE; the bug is CLI-only.
- Reproduced from a fresh /tmp directory (no plugins, no settings, no auth state) — does not depend on the user’s home config.
- The failure mode is identical for both global (~/.cursor/mcp.json) and project (.cursor/mcp.json) scopes.
- Same root cause family as forum thread #142335 (closed), but triggered at JSON-schema parse time instead of network-connect time. Suggests both code paths share a catch-all that should be replaced with per-entry error isolation.

### Does this stop you from using Cursor

Sometimes - I can sometimes use Cursor

---

<div class="post-metadata">

**Author:** ![deanrie](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/deanrie/32/1263_2.png) [@deanrie](https://forum.cursor.com/u/deanrie)\
**Post date:** [April 20, 2026, 2:22pm UTC](https://forum.cursor.com/t/cursor-agent-mcp-list-silently-drops-entire-mcp-json-when-any-entry-has-type-streamable-http-works-in-ide/158521/5 "2026-04-20T14:22:08Z")

</div>

Hey, thanks for the detailed breakdown. The repro steps and suggested fixes really speed things up.

I can confirm the behavior: the CLI parser for remote MCP only accepts `"http"` and `"sse"`, and the IDE ignores `type` and routes based on whether `command` or `url` is present. Also, if validation fails, the CLI falls back to an empty config with no logs. That’s why all neighboring servers get silently dropped, including stdio.

Temporary workaround, like you said: change `"type": "streamable-http"` to `"type": "http"` in `mcp.json`. It’s the same transport under the hood, so behavior is identical.

On the fix: I reported the issue internally. Two directions: add an alias `streamable-http` → `http` in the schema, and switch to per-entry parsing with a specific error instead of a silent fallback. I can’t share an ETA yet. I’ll post an update in the thread when I have one.

---

<div class="post-metadata">

**Author:** ![system](https://sea3.discourse-cdn.com/cursor1/user_avatar/forum.cursor.com/system/32/99069_2.png) [@system](https://forum.cursor.com/u/system)\
**Post date:** [May 12, 2026, 2:23pm UTC](https://forum.cursor.com/t/cursor-agent-mcp-list-silently-drops-entire-mcp-json-when-any-entry-has-type-streamable-http-works-in-ide/158521/8 "2026-05-12T14:23:27Z")

</div>

Closed on May 12, 2026, 2:23pm UTC

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.
