modelcontextprotocol / modelcontextprotocol/inspector
Skills catalog byte/count budget is enforced per-server, not per-session across multiple connected servers
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 10.9k
- Forks
- 1.5k
- Avg merge
- 6h 17m
- Merged PRs (30d)
- 151
Description
Which version line?
v2 — current (@modelcontextprotocol/inspector@latest)
Which client?
All / shared core
Inspector version
2.7.0 (git tag) — static code-review finding, not run locally
Node version
N/A — static code review, no live run performed
Operating system (and browser, for the web client)
N/A — static code review
Transport
Not applicable / never connected
MCP server under inspection
N/A — this is a static code-review finding against the 2.7.0 tag source (core/mcp/skills.ts, core/mcp/skillsVerification.ts), not a live reproduction against a running MCP server.
Steps to reproduce
Found via static review of the 2.7.0 tag source, not a live run.
resolveSkillCatalogBudget()(core/mcp/skills.ts, lines 109-121) computes a skills-catalog cap (maxSkills,maxBytes) purely from one server's own settings.skillsVerification.ts(line 331) calls it asresolveSkillCatalogBudget(client.getServerSettings?.())— i.e. once per connected server/client, using only that server's configured limits.- There is no aggregate budget anywhere that sums or caps the combined catalog size across multiple servers connected in the same session.
I have not connected multiple servers and measured the combined catalog live; flagging the absence of a session-level cap given the per-server design.
Expected behavior
With several servers connected in the same session (the Inspector's roadmap §4.10 names multi-server workspace support as a goal), the combined skills catalog across all of them stays bounded by some aggregate/session-level cap, not just by each server's individual limit.
Actual behavior
Each server's catalog is capped individually and independently. A user connected to several servers, each individually within its own configured skillCatalogMaxBytes/skillCatalogMaxSkills, can still accumulate a combined catalog far larger than any single server's cap intends, since nothing bounds the sum across servers.
Suggested fix: add a session-level (aggregate) cap alongside the existing per-server one — either a shared budget divided across connected servers, or a global ceiling checked after each server's catalog is resolved.
Logs, errors, or screenshots
No response
Already prototyped a fix?
No response
Before you submit
- I searched existing issues and this is not a duplicate.
- This is not a security vulnerability report (those go through the private advisory process).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading core/mcp/skills.ts around resolveSkillCatalogBudget() and core/mcp/skillsVerification.ts around line 331, then trace how connected servers contribute catalogs to a session. Define and implement the session-level bound alongside the existing per-server limits; done means combined catalogs cannot exceed the aggregate cap across multiple connected servers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100