Nobody needs 25 MCP servers. They need four.
The mechanics of MCP are settled and, frankly, dull by now. A server exposes tools with JSON schemas, the agent reads the menu and calls what it needs, results come back structured. Those mechanics live in connecting an agent to your data through a tool layer, and none of it is repeated here. This piece is the other half of the job, the one that gets skipped: deciding what goes on the menu in the first place.
That decision is worth more care than it usually gets, because connecting a server is not like installing an app. It is closer to hiring: the thing is now present in every conversation whether or not it is useful today. It occupies context, it competes for the model's attention, it holds credentials that expire, and somebody owns it when the vendor changes an API in November.
A narrow rule works better than a long list. A server earns a slot when a question people genuinely ask cannot be answered without it, and when that question is asked often enough that nobody wants to open the dashboard again. Everything else is a tab in a browser, and a tab is fine.
You pay for a connected server on every turn
Tool definitions are prompt text. Names, descriptions, argument schemas, all of it goes into context before the model has read the user's question, and it goes in again on the next turn. Anthropic has put numbers on this rather than adjectives. Its documentation for the tool search tool states that a typical multiserver setup, naming GitHub, Slack, Sentry, Grafana and Splunk, can consume around 55,000 tokens in definitions before Claude does any work at all, and that on-demand loading typically cuts that by over 85 percent by pulling in only the three to five tools a given request actually needs.
The same page carries the number that should decide most shortlists: Claude's ability to pick the right tool degrades once you exceed 30 to 50 available tools. That threshold is a great deal lower than it sounds. One CRM server exposing its object model, one messaging server and one analytics server will cross it comfortably, and Anthropic's own guidance on when to reach for on-demand loading names aggregating multiple MCP servers, at 200-plus tools, as a trigger. The figure is measured on Claude and should be read that way, but the mechanism is not model-specific: more near-identical options, worse discrimination between them.
The failure is quiet, which is why it survives so long. Three servers, each with a plausible search tool, is three menu entries with slightly different descriptions, and the model now guesses which surface holds the answer. It does not error. It answers from the wrong system, confidently, and somebody notices two weeks later.
Anthropic's engineering write-up on code execution with MCP makes the same point about intermediate results, noting that tool descriptions occupy context window space and increase response time and costs, and walking a worked example down from 150,000 tokens to 2,000 by loading definitions on demand instead of upfront. Upfront loading is the behaviour that tool search exists to change, which makes this a cost you opt out of rather than one you opt into.
How much this hurts in practice is measurable too, and the numbers are humbling. MCP-Universe, a benchmark from Salesforce AI Research that runs agents against 11 real-world MCP servers across six domains, reports success rates of 43.72 percent for GPT-5, 33.33 percent for Grok-4 and 29.44 percent for Claude-4.0-Sonnet. The paper names two failure modes explicitly: a long-context challenge, where input tokens climb rapidly with the number of interaction steps, and an unknown-tools challenge, where agents are unfamiliar with the precise usage patterns of servers they have not seen before. Both get worse with every server you add, and neither shows up in a demo with one connected.
Latency compounds it. Calls that depend on each other run in sequence, so a three-hop answer is three round trips plus three model turns, each one a network call to somebody else's API under somebody else's rate limits.
Who maintains a server matters more than what it does
Tool lists look interchangeable in a comparison table. The maintenance and auth story behind them is not, and it is the part that decides whether you are still running this in a year. Three classes are worth separating, because they fail differently.
| Class | What it looks like | What you are trusting | How it goes wrong |
|---|---|---|---|
| Vendor-hosted remote server | An HTTPS endpoint the vendor runs, OAuth on connect, sessions visible in their dashboard | The vendor's own security posture, the one you already accepted when you bought the product | Scope creep on their side, and outages you cannot route around |
| Vendor-published open source | A repo under the vendor's GitHub org, run locally or in your own infrastructure | Their code, plus your ability to pin a version and read a diff | Quiet abandonment; "experimental" in the README is a real statement |
| Community wrapper | An npm or PyPI package built over the public REST API by one person | A stranger's release process, and every dependency they pulled in | Maintainer disappears, or the package is not what its name says |
The third row is not hypothetical. In September 2025 an impostor package called postmark-mcp behaved exactly like the real thing for fifteen releases, and then version 1.0.16 quietly blind-copied every outgoing email to an outside server. Postmark's own statement is worth reading in full, and the sentence that matters is that they had not published their MCP server on npm prior to the incident at all. Name recognition was doing all the work.
The first row has its own failure mode, and it is not theoretical either. Asana launched an opt-in MCP server in May 2025 and, as BleepingComputer reported, found a bug on June 4 that exposed data from one organization's Asana instance to other MCP users. Asana put the number at roughly 1,000 customers and disabled MCP until June 17. Nobody was hacked. It was a logic flaw in a new surface, exposing task-level information, project metadata, team details, comments and uploaded files within each user's access scope. Vendor-hosted means somebody else's security team, which is usually an upgrade, and it also means somebody else's release schedule.
The official MCP registry helps with exactly one part of this, and is honest about the limit. Names are reverse-DNS and tied to a verified GitHub account or a domain you proved you own, so a listing under a vendor's namespace really is from that vendor. Security scanning is another matter: the registry states that it delegates that to the underlying package registries and to downstream aggregators, and describes its own metadata as deliberately unopinionated. It is also still in preview. Read it as an identity check, not as a review.
For scale, the largest published survey of the ecosystem, a security census accepted at IEEE Symposium on Security and Privacy 2026, analysed 12,230 tools across 1,360 servers and concluded the ecosystem is rife with real-world exploitable gadgets. That is the population your aggregator listing is drawn from. Prefer a server the vendor runs or publishes. If you take a community one, read the source before it goes anywhere near a token and pin the version you read.
A tool description is untrusted input
This is where an MCP server stops behaving like an API client. The tool description is not documentation for humans. It is text delivered straight into the model's context, and whatever it says, the model reads as instruction.
Invariant Labs published the first clear write-up of the consequence in April 2025, calling it tool poisoning: malicious instructions embedded in a tool description are invisible to the user, who sees a tidy name in a settings panel, and fully visible to the model, which follows them. The same notification describes two follow-on problems. A server can change a tool's description after the client has already approved it, which is the rug pull, so the thing you audited on Tuesday is not necessarily the thing running on Friday. And because an agent sees every connected server's descriptions at once, a malicious server can shape the agent's behaviour toward a different, trusted one. That last property is the strongest argument here for a short list.
How well do models resist this? Badly, on the published evidence. MCPTox built 1,312 malicious test cases across 10 risk categories against 45 active real-world MCP servers holding 353 legitimate tools, and reports an attack success rate of 72.8 percent against o1-mini. The line worth quoting is about refusal rather than success: agents rarely refuse these attacks, with the highest refusal rate, from Claude-3.7-Sonnet, under 3 percent. The paper also found that more capable models were often more vulnerable, because following instructions well is exactly the behaviour being exploited.
The cleanest way to reason about which combinations are dangerous is Simon Willison's lethal trifecta: access to private data, exposure to untrusted content, and the ability to communicate externally. Any one or two is usually fine. All three at once, in the same agent, is the shape most exfiltration stories have taken so far, and he points out that MCP actively encourages mixing and matching tools from different sources, which is how the three get assembled by accident.
Run your own shortlist through that test before anything else. A CRM server plus an inbox server plus a server that can post to a public channel is the trifecta wearing business clothes: private data, attacker-controllable content arriving by email, and an outbound path. The fix is rarely dramatic. Split them across separate agents with separate credentials, or remove the outbound half, and the shape stops being dangerous.
The protocol has absorbed some of this. The specification's security best practices document the confused deputy problem in OAuth proxies, where a static client ID combined with dynamic client registration and a lingering consent cookie lets an attacker skip the consent screen entirely and collect the authorization code, and it states flatly that MCP servers must not accept any tokens that were not explicitly issued for the MCP server. That is worth reading before you accept a server's OAuth flow at face value, particularly one that proxies to a third-party API.
Read scope and write scope are two different risks
A server that reads your pipeline and a server that edits it belong in different conversations, and the good ones make that split easy to enforce. Stripe's remote server is the clearest example: its documented tools separate stripe_api_read, which covers GET methods, from stripe_api_write, which covers POST, PATCH, PUT and DELETE, and Stripe's own guidance on the same page recommends enabling human confirmation of tools and being careful when the Stripe server runs alongside other servers, to avoid prompt injection attacks. That warning is from the vendor, about their own product, and it is the shadowing problem from the previous section stated in a payments company's house style.
HubSpot drew the line inside the product. On their MCP server, CRM objects and engagements are read and write, while organizational context and the marketing side, campaigns and campaign metrics, landing pages, website pages and blog posts, are read-only. Custom Sensitive Data Properties are excluded outright. Whether or not you would have drawn it there, somebody thought about the blast radius before shipping.
Salesforce takes the other route and inherits the existing model. Hosted MCP Servers use per-user OAuth 2.0 with PKCE, and their SObject tools respect field-level security and sharing rules, so an agent acting for a sales rep sees what that rep sees. This is the strongest pattern in the whole list, because permissions stay in one place and nobody reimplements them in an agent config. It also means an existing profile mess becomes the agent's mess, which is a fair trade and worth knowing.
The protocol itself has a position on writes. The specification's tools page says there should always be a human in the loop with the ability to deny tool invocations, that clients must treat tool annotations as untrusted unless they come from trusted servers, and that clients should show tool inputs to the user before the call goes out. Read that last one twice before giving an agent the ability to send email.
Scope design gets its own section in the spec's security guidance, and the mistakes it lists are the ones most teams make on day one: publishing every possible scope in scopes_supported, using wildcard or omnibus scopes like *, all or full-access, and bundling unrelated privileges to preempt future consent prompts. The recommended shape is a minimal initial scope set covering low-risk discovery and read operations, with elevation requested only when a privileged operation is first attempted. That maps neatly onto a practical rule: connect read-only, live with it for a month, and let the first genuine complaint tell you which write scope you actually needed.
The MCP servers for business, sales and marketing worth keeping
One clarification first, because a lot of listicles get this backwards. HubSpot is not an MCP server. Salesforce is not an MCP server. They are the systems a server sits in front of, and the thing you connect is the HubSpot MCP server, the Salesforce one, and so on. It sounds pedantic until somebody asks you to compare Marketo and MCP, at which point the distinction saves an hour.
Everything below was checked against the vendor's own documentation on August 14, 2026. Scope and auth on these change, sometimes quietly, so treat the table as a starting point and re-read the linked page before you commit.
| Server | Maintained by | Scope | Auth | When it earns its place |
|---|---|---|---|---|
| HubSpot MCP server | HubSpot, official | Read and write on CRM objects and engagements; read-only on campaigns, campaign metrics and site content; no Sensitive Data Properties | OAuth 2.0, scopes on a user-level app, admin authorizes first | Pipeline and contact questions that change hourly and get asked daily |
| Salesforce Hosted MCP Servers | Salesforce, official | SObject read, create, update and delete, respecting field-level security and sharing rules | Per-user OAuth 2.0 with PKCE | Salesforce is the system of record and agent access should inherit each person's own permissions |
| Slack MCP server | Slack, official, hosted at mcp.slack.com/mcp | Read: search, channel history, threads, profiles, canvases. Write: messages, drafts, channels, reactions, canvases | Confidential OAuth 2.0 with user tokens; workspace admin approval; unlisted apps prohibited | The answer lives in a thread nobody wrote down, or the output needs to land where people already are |
| Notion MCP | Notion, official, remote | Search, read, create and update content; create pages and databases | OAuth | Briefs, plans and specs live in Notion and everything else references them |
| Stripe MCP | Stripe, official, hosted at mcp.stripe.com | stripe_api_read over a documented method list, stripe_api_write for mutations, refunds, docs search | OAuth, or a restricted API key as a bearer token; sessions revocable in the Dashboard | Revenue questions: subscriptions, invoices, disputes. Leave the write half off until something needs it |
| Google Ads MCP | Google Ads GitHub org, open source | Read-only: search, resource metadata, accessible customers | OAuth proxy, Application Default Credentials, or the Google Ads client config | Explaining what a campaign did last week without exporting another CSV |
| Google Analytics MCP | Google Analytics GitHub org, marked experimental | Read-only: property and account info, core reports, funnel reports, realtime | Application Default Credentials with the analytics.readonly scope | "What happened to conversions" gets asked more than twice a week |
| Pipedrive | Community projects only; no vendor server appears in Pipedrive's developer community thread | Varies wildly by project; some expose well over a hundred tools across the REST API | Usually an API token in an environment variable | Only after reading the source and pinning a version. A thin server written in-house is often the smaller risk |
Two gaps are worth stating plainly rather than papering over. Pipedrive's own developer community thread on MCP discusses community projects only, with no vendor server and no roadmap statement in it, which is what the thread shows rather than proof that nothing exists elsewhere. The marketing automation platforms most teams name next, Marketo and ActiveCampaign among them, produced no vendor-maintained MCP server in a documentation search on the same date. Absence of a search result is weak evidence, so check the vendor's own docs before concluding either way. If your stack lives there, the realistic choice is between a community wrapper and a small server built in-house over the API you already call, and both deserve honest pricing.
For marketing campaign management specifically, notice that the two Google servers are read-only by design, and that this is the feature rather than the limitation. Read-only removes an entire limb of the lethal trifecta. It also means an agent can explain why cost per acquisition moved on Tuesday without being able to adjust bids at 2am because a report looked bad and nobody was awake to say no.
Half of this work does not need an agent at all
This is the part the category tends to skip, so here it is plainly. A large share of what gets sold as agentic belongs in a scheduled job. If the trigger is a time or an event, the steps do not change, and the branches fit on a napkin, then a workflow with the same API credentials will be cheaper to run and much easier to explain to a finance director when it misfires. That is the agents versus workflows question, and the MCP-Universe numbers above are an argument for the workflow side of it: when the best-scoring model completes under 44 percent of real tasks against real MCP servers, handing it a sequence somebody has already written down is a strange trade.
Most sales automation tools are in this bucket. Enrich a lead, score it, route it, notify an owner, log the touch. That is a sequence somebody wrote down once, and asking a model to rediscover it on every run buys variance nobody wanted. Scoring in particular wants a fixed rubric rather than a judgment call, which is the whole point of ICP scoring and lead qualification. Sales funnel optimization has the same shape: the useful artefact is a report that always runs and always computes the same ratios, not an agent invited to think about the funnel on a Monday.
The MCP server still earns its keep in that world, just in a quieter role. It becomes the connector the workflow calls, with a fixed sequence around it, and the model shows up only where language is genuinely involved, like reading a customer reply or classifying something too messy for a rule. That is also how process automation generally tends to settle once the novelty wears off.
The reverse case is real and narrow. When the question is open-ended, when nobody can enumerate the steps in advance, and when the sequence of lookups depends on what the previous lookup returned, an agent with tools is the right shape. "Can we ship order 41207 today?" is a stock check, then a carrier cutoff, then possibly a credit hold, and which of those you need depends on the previous answer. "Send the weekly pipeline digest" is not that, and never will be.
Seven questions before you connect anything
Run this against each candidate server. It takes about ten minutes and no vendor call.
Name the question it answers. Write the actual sentence a person says, and how many times a week it gets said. If the sentence is vague or the number is under five, the server is a browser tab.
Check who published it, at the source. Vendor documentation or the vendor's GitHub org, not an aggregator listing. Registry namespaces confirm identity; the registry says outright that it delegates security scanning elsewhere.
Read the tool list and count it. Thirty focused tools beat three hundred generated ones, and Anthropic's 30-to-50 threshold is a ceiling for the whole stack rather than per server. If a server exposes an entire REST API as tools, expect to filter it down, and check whether your client lets you.
Run the trifecta test. Does this server, combined with what is already connected, give one agent private data, untrusted content and an outbound channel at the same time? If yes, split the agents or drop the outbound half before arguing about anything else.
Separate the reads from the writes, then turn the writes off for the first month. Whatever survives that month with people complaining is the write scope you actually needed. Start at the minimal scope the spec recommends rather than at whatever the consent screen offers.
Find out whose permissions apply. Per-user OAuth means the agent sees what the person sees. A shared service token means the agent sees everything, forever, and your access model just moved into a config file.
Pin it, and plan for the description changing. Tool descriptions can be rewritten after you approve them, so a pinned version and a reviewed diff are the only things standing between an audit and a rug pull. For hosted servers, know how to revoke a session in a hurry: Stripe and Slack both surface active connections, and a community package does not.
What the seven have in common is that a server is a dependency. You inherit its uptime, its auth model, its tool descriptions and whoever maintains them, for as long as it stays connected. Four well-chosen ones with the write scope thought through will beat twenty, and the difference shows up in month three rather than in the demo.
If a second pair of eyes on a specific stack would help, deciding which two servers are carrying it and which six are noise, a short audit is a low-key way to get one.
FAQ
How many MCP servers should a sales or marketing team connect?
Fewer than the number that sounds impressive. Three to five covers most teams: the CRM, the place work is discussed, the place plans are written, and one analytics or billing source. The reason is measurable rather than aesthetic. Anthropic's documentation states that tool selection accuracy degrades past 30 to 50 available tools and puts a five-server setup at roughly 55,000 tokens of definitions before any work starts, and a single CRM server can carry a hundred tools on its own.
Do HubSpot and Salesforce have official MCP servers?
Both do, and the documentation is public. HubSpot's server supports OAuth 2.0 with permissions managed through a user-level app and its scopes, gives read and write access to CRM objects and engagements, and keeps campaigns, campaign metrics and site content read-only. Salesforce Hosted MCP Servers use per-user OAuth 2.0 with PKCE and expose SObject reads, creates, updates and deletes through tools that respect field-level security and sharing rules. Both were checked against vendor documentation on August 14, 2026.
Are community-built MCP servers safe to use?
They can be, with the same care you would give any dependency that holds a production credential, which in practice means reading the source before it gets a token and pinning the version you read. Two documented reasons to bother: the fake postmark-mcp package matched the real library's behaviour for fifteen releases before version 1.0.16 started blind-copying outgoing email to an outside server, and Invariant Labs showed in April 2025 that a server can rewrite a tool's description after the client has already approved it. The official registry verifies namespace ownership and states that it delegates security scanning to package registries and downstream aggregators, so a listing is an identity check rather than a review.
Can a malicious MCP server actually do damage, or is that theoretical?
It is measured, not theoretical. The MCPTox benchmark ran 1,312 malicious test cases against 45 active real-world MCP servers covering 353 legitimate tools and reported a 72.8 percent attack success rate against o1-mini, with the highest refusal rate of any model tested under 3 percent. Separately, Asana disclosed in June 2025 that a bug in its own MCP server exposed data across organizations, affecting roughly 1,000 customers, with no attacker involved at all. Both directions are worth planning for: a hostile server, and a well-meaning one with a defect.
Is an MCP server better than a Zapier or n8n integration?
They answer different questions. An integration platform is right when the steps are known ahead of time and the same every run, which covers most lead routing, enrichment and reporting. MCP is right when the sequence of lookups depends on what the previous lookup returned and nobody can write the flowchart in advance. Given that the best model in the MCP-Universe benchmark completed under 44 percent of real-world MCP tasks, a fixed sequence is the safer default wherever one exists. Plenty of stacks end up with both, using the MCP server as the connector inside a fixed workflow and letting the model in only where language is actually involved.
- 14 August 2026Published, then reworked the same day: added a section on tool descriptions as untrusted input, replaced first-party assertions with published measurements (Anthropic's tool-search documentation, MCP-Universe, MCPTox, Invariant Labs, the IEEE S&P 2026 ecosystem census) and added the Asana MCP incident.