modelcontextprotocol / modelcontextprotocol/conformance

tier-check: support monorepos with multiple SDK packages

Open
#151 0 comments 0 reactions 0 assignees View on GitHub

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:

  1. 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.

  2. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.