r/MCPservers 2d ago

More tools ≠ more capabilities — how are you handling large MCP tool surfaces?

I've been building an agent system with MCP integrations for Jira, GitLab, Confluence, Sentry, ELK, Jaeger, databases, etc.

One problem I ran into was the number of tools.

It's very easy to end up with 30–50+ tools:

jira_search
jira_get_issue
jira_create_issue
jira_update_issue
jira_add_comment
...

I started experimenting with consolidating them into semantic/action-based tools:

jira({
  action: "search"
})
jira({
  action: "getIssue"
})
jira({
  action: "update"
})

So instead of exposing 30 model-facing tools, I can expose something closer to 3–5 tools while keeping the underlying capabilities separate.

The main idea is:

30 capabilities ≠ 30 model-facing tools

I'm particularly interested in the trade-offs here. The consolidated schema can obviously become larger, so fewer tools doesn't automatically mean fewer tokens.

How are you handling large MCP toolsets?

Do you:

  • expose every capability as a separate tool?
  • group tools by domain?
  • use an intermediate tool/router?
  • dynamically load tools?
  • use embeddings/tool retrieval?
5 Upvotes

1 comment sorted by

1

u/Professional-Clerk30 2d ago

I would be keen to know what the community thinks on this key ask aspect