feat(tier-check): support configurable label taxonomy and aliases for Tier 1 repo checks
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 55/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- typescript
- Domain
- testing
Research direction
Read docs/community/sdk-tiers.mdx and the tier-check implementation under src/tier-check/, focusing on checkLabels and checkP0Resolution; compare how src/sdk-runner/known-sdks.ts currently supplies SDK configuration. Confirm the chosen alias/configuration path preserves exact current behavior when absent, recognizes configured aliases, and uses the configured P0 label for resolution metrics.
Written by the indexing model from the issue text.
Description
Is your feature request related to a problem? Please describe.
The MCP SDK Tiering specification (SEP-1730 / docs/community/sdk-tiers.mdx) requires specific labels for issue triage (bug, enhancement, question), status (needs confirmation, needs repro, ready for work, good first issue, help wanted), and priority (P0–P3).
Currently, tier-check enforces these through exact hardcoded string matches:
- Matches lowercase names strictly against
TYPE_LABELS,STATUS_LABELS, andPRIORITY_LABELS. - Hardcodes
labels: 'P0'when querying GitHub's API to calculate critical issue resolution times.
Many organizations and SDK ecosystems (e.g. Google/DevRel, cloud providers, and established OSS projects) use namespaced labels like priority: p0, type: bug, and status: waiting for response to support organization-wide issue taxonomies, automation bots, and issue-mirroring bridges (e.g., Jira, Google Issue Tracker).
Even when an SDK repository fully adheres to the required semantic taxonomy and respects the triage/P0 SLAs, tier-check fails due to exact string mismatch. Forcing these repos to adopt bare strings creates unnecessary migration friction for maintainers seeking Tier 1 / Tier 2 certification.
Describe the solution you'd like.
Allow tier-check to recognize configurable label aliases or mappings so repositories can pass tier checks while preserving their established label conventions.
-
Configuration Mechanism:
Support an optional label alias mapping, configured either via:- A repository-level config file (e.g.,
.github/mcp-conformance.jsonor.mcp/tier-check.json). - The built-in SDK config in
src/sdk-runner/known-sdks.ts(or via a CLI flag like--labels-config).
Example configuration:
{ "labels": { "aliases": { "bug": ["type: bug"], "enhancement": ["type: feature request"], "question": ["type: question"], "needs confirmation": ["status: feedback wanted", "status: investigating"], "needs repro": ["status: waiting for response", "needs more info"], "ready for work": ["ready for work", "needs work"], "help wanted": ["status: help wanted", "help wanted"], "P0": ["priority: p0"], "P1": ["priority: p1"], "P2": ["priority: p2"], "P3": ["priority: p3"] } } } - A repository-level config file (e.g.,
-
Evaluation in
checkLabels:
When evaluating whether a required label is present, check if the repo contains the standard label name or any of its configured aliases. -
Evaluation in
checkP0Resolution:
UpdatecheckP0Resolutionto query the configured P0 label (e.g.,priority: p0instead of the hardcoded'P0'), ensuring that P0 resolution metrics reflect the repository's actual critical issues. -
Default Behavior:
If no mapping is provided, retain the exact current behavior with zero breaking changes.
Describe alternatives you've considered
-
Renaming labels in each SDK repository:
Breaks existing workflows, bot automation, and internal issue-sync tooling across repos that rely on structured label prefixes (priority:*,type:*,status:*). -
Duplicate labels (e.g., both
P0andpriority: p0):
Creates contributor confusion, label clutter, and requires maintainers to double-tag every issue to satisfy both external checks and internal automations. -
Relying solely on GitHub Issue Types:
checkLabelsalready supports GitHub Issue Types forbug/enhancement/question, but GitHub Issue Types do not cover status or priority (P0–P3), leaving the main gap unaddressed. -
Simple prefix-stripping:
While some differences are purely prefix/case conventions (e.g.priority: p0vsP0,type: bugvsbug), many existing repos use established semantic synonyms for the same triage stages:enhancement➔type: feature requestneeds confirmation➔status: feedback wantedorstatus: investigatingneeds repro➔status: waiting for responseorneeds more infoready for work➔needs work
Supporting a 1-to-many alias dictionary ensures existing repositories with mature workflows don't have to break internal automations or rename established labels.
Additional Context
- We are seeing this while preparing the MCP Toolbox repositories for Tier 1 conformance. All required triage and priority categories are tracked, but naming conventions follow standard namespaced prefixes (e.g.,
priority: p0,status: feedback wanted). - We are happy to submit a PR to implement this alias support in
src/tier-check/if this approach aligns with the team.
- Dominant language
- TypeScript
- Stars
- 127
- Forks
- 101
- Avg merge
- 4d 7h
- Merged PRs (30d)
- 6
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.
More from modelcontextprotocol/conformance
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
modelcontextprotocol/conformance#315 · 1 comment ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
modelcontextprotocol/conformance#312 · 1 comment ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 68/100
-
alpha-12 please? Open
Difficulty 4/5 3-5 days Newbie friendliness 35/100
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
modelcontextprotocol/conformance#506 · 1 comment ·
All issues in modelcontextprotocol/conformance
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
dennys-bd/agent-hive#184 ·
-
Add: hunch Open
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
AbdelStark/awesome-typesafe#104 ·
-
ai-observability bug team/ai-observability
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
vicharanashala/fln#563 ·