stacklok / stacklok/toolhive-studio
Default server name is too generic when registry entry name ends in a generic segment
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 167
- Forks
- 24
- Avg merge
- 11h 32m
- Merged PRs (30d)
- 91
Description
Description
Follow-up to #1877 / #1919 — the namespace prefix stripping now takes the segment after the last / as the default server name. This works well for most cases (io.github.stacklok/fetch → fetch), but some registry entries have generic trailing segments that produce unhelpful default names.
Example: com.paypal/mcp → mcp
The name mcp is valid and duplicate detection would catch collisions, but it's not a useful default — it tells the user nothing about the server.
Options considered
- Combine org + name (e.g.,
paypal-mcp): Works for the PayPal case but produces awkward results elsewhere —io.github.stacklok/fetch→stacklok-fetch(implies Stacklok built the server, which usually isn't true),com.postman/postman-mcp-server→postman-postman-mcp-server - Replace all
/with-(e.g.,com.paypal-mcp): What the cloud UI does, but produces long ugly names that get truncated on server cards and some clients complain about longserver_name+tool_namestrings - Heuristic: Only prepend the org segment when the part after
/is "too generic" (e.g.,mcp,server). Conceptually appealing but defining "generic" is subjective and could be surprising
Priority
Low
Additional Context
This is an edge case — most registry entries have descriptive names after the /. The current behavior is a significant improvement over the pre-#1919 state where every install required manual name editing.
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
No implementation file, test, or entry point is named. Start by reviewing the namespace-prefix behavior from #1877 and #1919, then determine which generic-segment rule is intended. Done means the chosen behavior is agreed and the PayPal example no longer receives an unhelpful default name without regressing the descriptive examples.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- developer-experience
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100