stacklok/toolhive - Open Source PR Review Scorecard

ToolHive is an enterprise-grade platform for running and managing Model Context Protocol (MCP) servers.

C-Rank Grade: A (Welcoming) - 68/100

External PR Merge Rate: 80%

Response Time: 3d

First Timer Success: 61%

Frequently Asked Questions

Is stacklok/toolhive welcoming to first-time open-source contributors?

stacklok/toolhive has a recorded first-timer success rate of 61.0%. Repositories ranked A typically provide actionable feedback during code reviews and actively nurture new community contributors.

How fast can I expect code review feedback on my pull request?

Maintainers in stacklok/toolhive respond to incoming external pull requests in approximately 64.1 hours on average. Keeping PRs focused on single tasks and ensuring tests pass helps maintainers review faster.

What does the 67.8 C-Rank™ score (A Tier) represent?

The C-Rank™ system evaluates GitHub projects on a 0–100 scale using real data: PR merge rates, review turnaround time, active maintainer presence, and first-time contributor success. A score of 67.8 places stacklok/toolhive in the A tier.

What is the external contributor pull request merge rate for stacklok/toolhive?

The external contributor pull request merge rate for stacklok/toolhive is 80.1%, based on public PR activity from non-core contributors.

Are there Good First Issues available in stacklok/toolhive?

stacklok/toolhive currently has 7 active issue(s) tagged with beginner-friendly labels like "good first issue", "beginner", or "up-for-grabs".

stacklok
stacklok/toolhiveA•Welcoming2.2k
GitHub
Back to Explorer
stacklok

stacklok/toolhive

2,215
InactiveA•Welcoming(68/100)Go

ToolHive is an enterprise-grade platform for running and managing Model Context Protocol (MCP) servers.

GitHub
Compare••
Jump to:

AI Maintainer Review Guidelines

Review Persona

Empathetic Technical Mentor

Warmth Score
7.7/10
Patience Score
8.2/10
Nitpick Rate
30%

Collaborative maintainer environment in stacklok/toolhive. Reviews community pull requests with focus on project quality.

Top PR Submission Do's

  • •Follow maintainer feedback from recent PR reviews

Top PR Friction Pitfalls (Don'ts)

  • •Do not ignore unresolved maintainer review comments
Response Velocity
2 days+
Standard maintainer review cycle

Average Response Latency

Tracks hours until a maintainer leaves a review, comment, or PR response.

Merge Efficiency
80.1%
High acceptance rate for external PRs

External Acceptance Rate

Percentage of community pull requests successfully merged into main.

First-Timer Success
61.0%
Strong first-timer PR acceptance rate

First PR Conversion

Rate at which developers submitting their first repository PR succeed.

Active Maintainers
42 core
Highly collaborative maintainer core
Diagnostic Health HUD
80.1%
Merge Gauge
61.0%
1st-Timer
Community Vibe50/100

Embed C-Rank Badge

Show contributors that your repository actively reviews and merges external pull requests.

GetMerged C-Rank badge for stacklok/toolhive
[![GetMerged C-Rank](https://getmerged.abhishekco.de/api/badge/stacklok/toolhive)](https://getmerged.abhishekco.de/stacklok/toolhive?utm_source=github&utm_medium=badge)

Active Good First Issues (5)

View on GitHub

Bug description The operator logs this on a timer even when zero MCPRegistry objects exist in the cluster: Warning: MCPRegistry is deprecated and will be removed in a future release; install the ToolHive registry server via the toolhive-registry-server Helm chart (https://github.com/stacklok/toolhive-registry-server) instead logger=controller-runtime/cache On v0.43.0 we see it about every 6 minutes from deploy/toolhive-operator, mixed into the VirtualMCPServer reconcile logs. It is a cache/informer warning, not an event on a CR, so it cannot be silenced by not installing the CRD users already do not use. Steps to reproduce Install ToolHive operator v0.43.0. Do not create any MCPRegistry. kubectl logs deploy/toolhive-operator -n <ns> | grep MCPRegistry Expected behavior If no MCPRegistry CRs exist, do not warn. If the CRD is still registered, warn once at startup (or when the first CR appears), not on every cache resync. Actual behavior Periodic warning forever on clusters that nev

📅 Opened Aug 15, 2026💬 2 comments
Quality: 55/100Contribute

Status Fix PR: #6376 Maintainer direction (PROXIES column, do not fold into SERVERS): #6342 (comment) PR announcement: #6342 (comment) Reply to maintainer: #6342 (comment) PR cross-link comment: #6376 (comment) Bug description kubectl get mcpgroups prints a SERVERS column from .status.serverCount. That field only counts MCPServer members. A group that contains only MCPRemoteProxy objects (or a mix) looks empty / wrong: status.remoteProxyCount / status.remoteProxies are populated status.serverCount / status.servers are unset the table column therefore shows a blank SERVERS value Operators then think the group has no members, even though vMCP discovery and the CR status both know about the proxies. Steps to reproduce Create an MCPGroup (empty spec is enough). Create one or more MCPRemoteProxy objects with spec.groupRef.name pointing at that group. Do not add any MCPServer. Wait until the group is Ready. kubectl get mcpgroup <name> -n <ns> kubectl get mcpgroup <name> -n <ns

📅 Opened Aug 15, 2026💬 3 comments
Quality: 55/100Contribute

Summary The deletion specs in the mcp-oidc-config integration suite fail intermittently on CI. The failure looks structural rather than random: the controller rechecks a blocked deletion on a 30s requeue, and the suite's Eventually timeout is also 30s, so a spec passes only if reconcile lands inside whatever margin is left. Loaded runners lose that race. Evidence Run 30574241215, three attempts against the same commit: Attempt Result Spec that failed 1 action_required - 2 failure should be deleted after MCPRemoteProxy reference is removed 3 failure should be deleted after VirtualMCPServer reference is removed A different sibling failed on each attempt, both timing out at exactly 30.000s. The same suite passes locally. Mechanism MCPOIDCConfig deletion is blocked while workloads still reference it, and rechecked on a fixed requeue: // cmd/thv-operator/controllers/mcpoidcconfig_controller.go:241 // Requeue to check again later return ctrl.Result{RequeueAfter: 30 * time.Secon

📅 Opened Jul 31, 2026💬 2 comments
Quality: 30/100Contribute

Use case We run MCP servers via the operator on EKS + Karpenter. To cut provisioning cold-start latency we keep a dedicated pre-warmed node pool, tainted workload-class=mcp-warm:NoSchedule, and steer the MCP server pod onto it using spec.podTemplateSpec (a matching toleration + nodeAffinity). That works well for the server. But each MCPServer also spawns the proxy (proxyrunner) Deployment, and there's no way to give the proxy pod the same scheduling. resourceOverrides.proxyDeployment currently supports only annotations/labels/env/imagePullSecrets — no nodeSelector/tolerations/affinity. So the proxy is repelled by the warm-pool taint, always lands on a cold general node, and forces a fresh node boot (~40s) that dominates provisioning latency and trips our readiness watch. Net: the server is warm but the proxy is cold, so we hit the cold-start anyway. What we need A way to set nodeSelector, tolerations, and affinity on the proxy Deployment via the MCPServer CR — matching the capabili

📅 Opened Jul 20, 2026💬 4 comments
Quality: 55/100Contribute

Problem MCPServerReconciler builds the proxy container's environment variables in two places that must be kept byte-for-byte identical: deploymentForMCPServer — constructs the env for the live Deployment. deploymentNeedsUpdate — re-derives the expected env slice and equality.Semantic.DeepEquals it against the live container to detect drift. Both assemble the same nine sections in the same order: # Section 1 OpenTelemetry (TelemetryConfigRef) 2 Token exchange (ExternalAuthConfigRef) 3 OBO secret (ExternalAuthConfigRef) 4 Webhook (WebhookConfigRef) 5 OIDC client secret (OIDCConfigRef inline) 6 ResourceOverrides.ProxyDeployment.Env 7 Redis password (SessionStorage) 8 THV_MCPSERVER_GENERATION (downward API) 9 Embedded auth server Because DeepEqual on the env slice is order- and content-sensitive, any env var added to the builder but not mirrored into the drift check (or added at a mismatched position) causes the controller to detect false drift on every reco

📅 Opened Jun 25, 2026💬 5 comments
Quality: 70/100Contribute
Looking for more Go beginner tasks?Explore Go GFI

Contributor Community Vibe Feedback

Rate what actually matters after opening a pull request here.

Have you contributed to this repo?

Rate your first-hand PR experience (review speed, maintainer responsiveness, and onboarding ease) to help other contributors.

3 ratings required
Maintainer helpfulness
Review speed
Beginner friendliness

Contributor Compatibility & Review Speed Analysis for stacklok/toolhive

When evaluating whether to contribute to stacklok/toolhive, response velocity and maintainer engagement are crucial. GetMerged continuously tracks pull request trajectories, first-comment latency, and code review rounds to help developers avoid submitting pull requests to backlogged repositories.

Currently, maintainers of stacklok/toolhive acknowledge new external contributions in approximately 2 days+. Out of all submitted pull requests from non-core authors in the last 180-day window, 80.1% were successfully merged into the primary branch.

Frequently Asked Questions - Contributing to stacklok/toolhive

01

Is stacklok/toolhive welcoming to first-time open-source contributors?

stacklok/toolhive has a recorded first-timer success rate of 61.0%. Repositories ranked Welcoming typically provide actionable feedback during code reviews and actively nurture new community contributors.

02

How fast can I expect code review feedback on my pull request?

The initial maintainer response time averages ~2 days+. Keeping PRs scoped to single concerns and ensuring CI checks succeed will optimize review turnaround.

03

What does the 67.8 C-Rank™ score represent?

The C-Rank™ index scores repositories on a 0 to 100 scale using an objective formula: external PR merge rates, initial response speed, active maintainer count, and first-time contributor retention. A score of 67.8 places stacklok/toolhive in the Welcoming tier.

04

What is the external contributor pull request merge rate for stacklok/toolhive?

The external pull request merge rate is 80.1%. GetMerged isolates non-core community contributions so external developers get an accurate benchmark of PR acceptance probability.

05

Are there beginner Good First Issues open in stacklok/toolhive?

Yes, stacklok/toolhive currently has 7 active issue(s) tagged with beginner-friendly labels. You can inspect these directly from the repository issues tab.

GetMerged C-Rank™ Indexing Standard

All metrics displayed for stacklok/toolhive are automatically retrieved via the public GitHub API and recalculated daily. Insider pull requests submitted by repository owners or organization members are excluded from merge rate calculations to preserve objective external contributor statistics.