Skip to content

feat(quickbooks-online): declare Intuit's HTTP MCP server (reland of #642) - #3

Draft
djiang-jq wants to merge 1 commit into
cursor/upstream-main-base-reland-fbc4from
cursor/quickbooks-online-native-mcp-reland-fbc4
Draft

djiang-jq wants to merge 1 commit into
cursor/upstream-main-base-reland-fbc4from
cursor/quickbooks-online-native-mcp-reland-fbc4

Conversation

@djiang-jq

Copy link
Copy Markdown
Owner

Relands cursor/plugins#642, which was reverted 19 minutes after merge by cursor/plugins#643.

Heads up before merging

The revert gave no stated reason. cursor#643 is titled only "Reverts cursor#642", with no comment explaining what went wrong. This PR restores the reverted change byte-for-byte, so if something about cursor#642 caused the rollback, this reintroduces it. The most likely candidate is the endpoint — see the review note below.

What

Rebuilt on top of current upstream main (f713f14, which includes both the merge and the revert). The listing is gating-only again after the revert: it carries no mcp.json, so an install produces no mcp_server row and native MCP has nothing to point at. This declares the HTTP server in the same shape as third_party/square/mcp.json.

File Change
third_party/quickbooks-online/mcp.json New — HTTP MCP server at Intuit's hosted endpoint
third_party/quickbooks-online/.cursor-plugin/plugin.json "mcpServers": "./mcp.json", version 1.0.0 → 1.1.0
third_party/quickbooks-online/README.md MCP section shows the server block; intro and Docs updated
third_party/quickbooks-online/CHANGELOG.md 1.1.0 entry
{
  "mcpServers": {
    "quickbooks-online": {
      "type": "http",
      "url": "https://mcp-e2e.quickbooks.intuit.com/mcp"
    }
  }
}

The resulting tree is byte-identical to what was merged as 1.1.0 in cursor#642 (verified with git diff against f506741). Produced by reverting the revert commit ed4397c, not by rebasing the old branch — the original commits are already in upstream history via the cursor#642 merge, so a rebase would have silently dropped them.

On the version number

This keeps 1.1.0 rather than bumping to 1.1.1, so the version→content mapping stays consistent: 1.1.0 has only ever meant this exact tree. Clients on the reverted 1.0.0 see 1.1.0 as an upgrade and pick up mcp.json; clients that fetched 1.1.0 during the 19-minute window already have this content.

Worth knowing: Bugbot flagged on cursor#643 that the revert's downgrade to 1.0.0 may not reach installs that already took 1.1.0, and its autofix proposed 1.1.1. That fix was never landed, so upstream main is at 1.0.0 today. If you would rather force a re-index than rely on the version comparison, say so and I'll bump this to 1.1.1 with a matching changelog entry.

Why

Once this ships and the marketplace re-indexes, installs get an mcp_server row with type === "HTTP". That row is what quickbooksOnlineNativeMcpCatalogOverride (everysphere #1132191) reads when merge_connector_settings.connectors["quickbooks-online"].nativeMcp is true.

Review note

The endpoint is mcp-e2e.quickbooks.intuit.com. The -e2e label reads like a test/staging host for a publicly shipped listing. Both that host and mcp.quickbooks.intuit.com resolve in DNS, and TLS is blocked from the agent VM's egress, so it could not be verified from here. Bugbot raised the same point on cursor#642 ("the configured URL uses an -e2e host that may be non-production"). If this is what triggered the revert, that is the line to change.

This PR's base

The real target is cursor/plugins main; this agent has no write access there (Permission to cursor/plugins.git denied to cursor[bot]), so the PR lives on the djiang-jq/plugins fork. Its base is cursor/upstream-main-base-reland-fbc4, pinned at cursor/plugins@f713f14, so the diff shows the 4 files that changed rather than the fork's main drift.

To open it upstream — the same path cursor#642 took:
https://github.com/cursor/plugins/compare/main...djiang-jq:plugins:cursor/quickbooks-online-native-mcp-reland-fbc4?expand=1

Validation

node scripts/validate-plugins.mjs passes against current upstream main with this change applied.

Open in Web Open in Cursor 

Relands cursor#642, which was reverted by cursor#643.

The listing is gating-only again after the revert: it carries no server
definition, so an install produces no mcp_server row and native MCP has
nothing to point at. Declare the hosted HTTP endpoint the way Square
does, so the marketplace index exposes a type === "HTTP" server for the
connector.

Restores the 1.1.0 tree exactly as it was published, so the version
keeps meaning the same content.

Co-authored-by: Danny Jiang <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants