modelcontextprotocol / modelcontextprotocol/conformance
tier-check: support monorepos with multiple SDK packages
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 127
- Forks
- 101
- Avg merge
- 6d 1h
- Merged PRs (30d)
- 7
Description
We maintain a monorepo (mcp-use/mcp-use) that contains both a Python SDK and a TypeScript SDK. The tier-check command has a couple of issues with this setup:
-
Stable Release detection picks up the wrong release. Our TypeScript canary releases (e.g.
mcp-use@1.18.0-canary.3) get detected as the "latest version" instead of the stable Python release (v1.5.2). The check then fails because it sees a pre-release identifier. -
Spec tracking gap calculation may be picking up the wrong release tag for the same reason, it doesn't know which package's releases to look at.
The release detection logic fetches the latest 20 releases and picks the first one, which doesn't account for repos publishing releases for multiple packages with different tag patterns.
Would it be possible to support a --package or --tag-prefix flag to filter releases by package name (e.g. --tag-prefix python-v or --package mcp-use)?
Also, is tier-check intended as a self-assessment helper for SDK maintainers, or will it be used systematically to determine the official tier of each SDK as described in the SDK Tiering System? Asking because the answer affects how much we need to adapt our release tagging vs. how much the tool should adapt to different repo structures.
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 the release detection logic in src/tier-check/checks/release.ts and trace how tier-check invokes it and fetches releases. Compare the stable-release and spec-tracking paths, then define how package or tag-prefix selection should apply; done means both paths consistently select the intended package release without mistaking a canary for stable.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli, release, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100