Add QuickBooks third-party MCP plugin - #323
Draft
SamSokolin wants to merge 1 commit into
Draft
Conversation
Intuit publishes no generally available hosted MCP endpoint (the one at mcp.quickbooks.intuit.com is an invitation-only partner pilot gated by IP allowlisting and restricted scopes), and its official `intuit/quickbooks-online-mcp-server` is a local stdio server that is not on npm. The plugin therefore installs it from GitHub with `npx` and passes the user's own Intuit app client ID/secret, refresh token, realm ID, and environment; no credentials ship with the plugin. Co-authored-by: Sam Sokolin <SamSokolin@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
third_party/quickbooks, a marketplace plugin for Intuit's official QuickBooks Online MCP server (intuit/quickbooks-online-mcp-server), mirroring the layout ofthird_party/xeroandthird_party/gmail. Registers it in.cursor-plugin/marketplace.jsonand the rootREADME.mdtable.How the official server is installed
Intuit's official server is local stdio only and is not published to npm (its
package.jsonname@qboapi/qbo-mcp-serverdoes not exist on the registry, and the repo has no releases). Intuit's docs describe cloning and building it. The plugin therefore runs it withwhich clones, builds (
prepare→tsc), and launches the bin. Verified end to end on this branch: the exactmcp.jsoncommand with all five${VAR}placeholders populated starts the server over stdio and answersinitialize+tools/listwith 142 tools; warm launches reuse thenpxcache (~2s) and the server's rotated-token.envsurvives between runs.A hosted endpoint does exist (
https://mcp.quickbooks.intuit.com/mcp, documented in IntuitDeveloper/intuit-3p-ai-pilot), but it is an invitation-only App Partner pilot requiring IP allowlisting and restricted MCP scopes provisioned by an Intuit Solution Engineer, so it is not usable for a general marketplace plugin. The README explains this and points to it.Variables (no secrets shipped)
All user-supplied via Dashboard → Plugins → Configure; the plugin contains only
${VAR}placeholders:QUICKBOOKS_CLIENT_ID/QUICKBOOKS_CLIENT_SECRETQUICKBOOKS_REFRESH_TOKEN/QUICKBOOKS_REALM_IDlocalhostredirects in production)QUICKBOOKS_ENVIRONMENTenum: [sandbox, production], defaultsandboxThe refresh token is required rather than relying on the server's built-in browser OAuth flow because that flow
console.logs the authorize URL to stdout, which would corrupt the MCP stdio stream, and it cannot work at all in production.All variables are marked
required, matching every existing plugin in the repo (the behavior of unset optional variables is undocumented).Logo
assets/logo.svgis the QuickBooks "qb" mark on the brand green (#2CA01C), taken from the Intuit-ownedIntuitDeveloperGitHub organization (SampleApp-Webhooks-Java-Cloudevents/src/main/resources/static/quickbooks-1.svg).Validation
node scripts/validate-plugins.mjs→All plugins validated successfully.