Skip to content

docs(context7): clarify operator key path and pin Cursor MCP contract - #1610

Merged
BigSimmo merged 8 commits into
mainfrom
cursor/context7-refresh-22b5
Aug 5, 2026
Merged

docs(context7): clarify operator key path and pin Cursor MCP contract#1610
BigSimmo merged 8 commits into
mainfrom
cursor/context7-refresh-22b5

Conversation

@BigSimmo

@BigSimmo BigSimmo commented Aug 4, 2026

Copy link
Copy Markdown
Owner

Summary

  • Clarify Context7 operator setup: set CONTEXT7_API_KEY in OS/user env or Cursor Settings → MCP so ${env:CONTEXT7_API_KEY} expands in .cursor/mcp.json.
  • Document that .env.local and Cursor Cloud Agent Secrets feed the Next app only — they do not feed project MCP header interpolation.
  • Expand peer-library examples (React 19, @supabase/supabase-js); note project MCP vs host-injected Cloud connector; note unversioned remote URL.
  • Add a thin structural vitest pin for .cursor/mcp.json (Context7 URL + CONTEXT7_API_KEY header form, no key literals, co-resident supabase + chrome-devtools@1.6.0).
  • Auth form unchanged (CONTEXT7_API_KEY: ${env:CONTEXT7_API_KEY}); no root .mcp.json / Codex Cloud allowlist change.

Test plan

  • npx vitest run tests/cursor-mcp-contract.test.ts — 3 passed
  • npm run verify:pr-local (expect heavy: .cursor/tests unknown-non-light)
  • Operator (desktop): set CONTEXT7_API_KEY, reload MCP, smoke resolve-library-id

Notes

  • No clinical/RAG surfaces; no Clinical Governance Preflight / RAG impact line required.
  • B1 follow-up only — does not reopen tooling-activation WS-B.
Open in Web Open in Cursor 

Summary by CodeRabbit

  • Documentation

    • Clarified Context7 setup, supported libraries, versioning, API-key options, and configuration locations.
    • Added guidance for project, cloud, and host-injected environment settings.
    • Documented MCP server coverage and related safety considerations.
  • Tests

    • Added validation for MCP server configuration, credential handling, and approved server settings.

Keep the working CONTEXT7_API_KEY header form. Expand peer-library docs,
document that Cloud Secrets/.env.local do not feed project MCP ${env:},
and add a thin structural vitest pin for .cursor/mcp.json.
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 31 minutes

Your organization has reached its usage spending cap. Adjust your spending cap in the billing tab.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 0b596c22-5df1-4399-b183-536328644b6a

📥 Commits

Reviewing files that changed from the base of the PR and between 730e047 and 5cc44c1.

📒 Files selected for processing (2)
  • docs/plans/tooling-activation-implementation-plan.md
  • tests/cursor-mcp-contract.test.ts
📝 Walkthrough

Walkthrough

The pull request adds contract tests for .cursor/mcp.json and expands Context7 MCP documentation. It documents API-key handling across local, Cursor, and cloud environments, clarifies service boundaries, and records follow-up implementation guidance.

Changes

Context7 MCP setup

Layer / File(s) Summary
Cursor MCP contract validation
tests/cursor-mcp-contract.test.ts
Adds tests for the Context7 remote URL, environment-variable API-key interpolation, absence of embedded credentials, and the sanctioned three-server configuration.
Context7 configuration guidance
.env.example, README.md, docs/agents-guide.md, AGENTS.md
Documents supported libraries, the unversioned endpoint, Cursor MCP settings, environment-variable handling, cloud secret behavior, reload requirements, and rate limits.
Tooling scope and handoff guidance
docs/codex-cloud.md, docs/plans/tooling-activation-implementation-plan.md
Separates Cursor-side Context7 from the Codex Cloud service allowlist and records required follow-up contract testing and peer-list documentation.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • BigSimmo/Database#909: Adds a Railway MCP server that conflicts with this pull request’s exactly-three-server contract.
  • BigSimmo/Database#1568: Introduces Context7 MCP configuration that this pull request formalizes with tests and expanded guidance.
  • BigSimmo/Database#1589: Adds complementary project-scoped Codex MCP configuration.

Suggested labels: codex

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary documentation clarification and Cursor MCP contract test changes.
Description check ✅ Passed The description clearly covers the changes, verification results, scope, unchanged behavior, and remaining operator checks.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Comment @coderabbitai help to get the list of available commands.

@supabase

supabase Bot commented Aug 4, 2026

Copy link
Copy Markdown

This pull request has been ignored for the connected project sjrfecxgysukkwxsowpy because there are no changes detected in supabase directory. You can change this behaviour in Project Integrations Settings ↗︎.


Preview Branches by Supabase.
Learn more about Supabase Branching ↗︎.

@BigSimmo
BigSimmo marked this pull request as ready for review August 4, 2026 13:11

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@BigSimmo

BigSimmo commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent run bugbot and ensure its findings are correct

@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

❌ Unable to add follow-up after multiple attempts. The agent may be experiencing issues.

Please try again later or Open in Web to view the status.

Open in Web Open in Cursor 

Learn more about Cursor Agents

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/plans/tooling-activation-implementation-plan.md`:
- Line 410: Update the B1 follow-up entry in the plan to mark the contract test
and peer-list documentation complete on August 4, 2026, and explicitly identify
any remaining pending work, such as the unchanged auth form, if applicable.

In `@tests/cursor-mcp-contract.test.ts`:
- Line 40: Strengthen the Supabase MCP URL assertion in the relevant cursor
contract test by validating the complete safety contract: origin
https://mcp.supabase.com/mcp, project_ref=sjrfecxgysukkwxsowpy, and
read_only=true. Replace the partial toContain check with an exact full-URL
assertion or equivalent independent URL checks.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ef2d1f91-e87c-4f8f-86a8-e0c02dc82bdb

📥 Commits

Reviewing files that changed from the base of the PR and between 4c8d817 and 730e047.

📒 Files selected for processing (7)
  • .env.example
  • AGENTS.md
  • README.md
  • docs/agents-guide.md
  • docs/codex-cloud.md
  • docs/plans/tooling-activation-implementation-plan.md
  • tests/cursor-mcp-contract.test.ts

Comment thread docs/plans/tooling-activation-implementation-plan.md Outdated
Comment thread tests/cursor-mcp-contract.test.ts Outdated
@BigSimmo
BigSimmo enabled auto-merge (squash) August 4, 2026 15:06
@BigSimmo

BigSimmo commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent Unblock the current open PR. Confirm the PR number and GitHub head first from context. If more than one open PR could apply, stop and say which one you would use and why.

Fetch and start from the remote tip that matches that GitHub head. If the named branch ref is missing or stale, use the PR head ref. Preserve unrelated local WIP; do not discard dirty work; do not treat a local-ahead commit as the reviewed tip. Do not merge the PR, force-push, rebase, or arm auto-merge. No provider-backed gates without approval. If you cannot push or resolve threads, diagnose and comment only; if inline replies fail, resolve when possible and put blocker dispositions in the summary comment. If auto-merge is already armed, push only for a real blocker and avoid cancelling in-flight required CI unless the push clears that blocker.

If the PR is already merged or closed: confirm outcome, post one summary, and stop.

Primary job: clear mergeability and required-CI blockers on this tip. Do a full product review only if needed to explain or fix a blocker. Stay light otherwise—no broad verification suites or Playwright unless needed to prove one concrete unblock fix.

Snapshot the GitHub head: tip, behind/ahead, mergeable state, merge-tree versus origin/main (real conflict versus behind-but-clean), required checks on that tip including Production UI when selected, and unresolved threads that block merge or required CI. Missing checks while dirty are not green. Tip moved → re-snapshot.

Ledger-lookup against that GitHub head under an unblock/fix scope for this PR. If already handled at this head for unblock work, merge-tree clean, required checks green, and no blocking threads: summarize, comment, stop.

Unblock once: real conflict → merge origin/main with the smallest correct resolution (prefer main’s shared queues; keep this PR’s notes); behind-but-clean → one sync, late if required CI is in flight; clean → leave. skip-branch-sync and similar labels do not block a manual sync needed to clear a real blocker. No sync thrash. After any sync or push, re-snapshot tip, merge-tree, and required checks before declaring done. Dedupe the ledger if a merge touched it.

Fix only what blocks required checks or mergeability on this tip. Ignore advisory red unless it reveals a real required failure. Prefer the smallest safe fix; if a bot/autofix commit caused the break, prefer revert. Prove with the smallest targeted check only. Format and commit before push.

Push only blocker-fix commits. Append ledger for the final GitHub head under the unblock scope. Never push a ledger-only tip.

One PR comment: tip, sync/merge-tree, what blocked and what you fixed or dispositioned, required CI status, residual risks; merge left to me.

Stop when merge-tree is clean on the current GitHub tip, no blocking threads remain for merge/required CI, and required checks are green or clearly in progress.

@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

❌ Unable to add follow-up after multiple attempts. The agent may be experiencing issues.

Please try again later or Open in Web to view the status.

Open in Web Open in Cursor 

Learn more about Cursor Agents

@BigSimmo

BigSimmo commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent Unblock the current open PR. Confirm the PR number and GitHub head first from context. If more than one open PR could apply, stop and say which one you would use and why.

Fetch and start from the remote tip that matches that GitHub head. If the named branch ref is missing or stale, use the PR head ref. Preserve unrelated local WIP; do not discard dirty work; do not treat a local-ahead commit as the reviewed tip. Do not merge the PR, force-push, rebase, or arm auto-merge. No provider-backed gates without approval. If you cannot push or resolve threads, diagnose and comment only; if inline replies fail, resolve when possible and put blocker dispositions in the summary comment. If auto-merge is already armed, push only for a real blocker and avoid cancelling in-flight required CI unless the push clears that blocker.

If the PR is already merged or closed: confirm outcome, post one summary, and stop.

Primary job: clear mergeability and required-CI blockers on this tip. Do a full product review only if needed to explain or fix a blocker. Stay light otherwise—no broad verification suites or Playwright unless needed to prove one concrete unblock fix.

Snapshot the GitHub head: tip, behind/ahead, mergeable state, merge-tree versus origin/main (real conflict versus behind-but-clean), required checks on that tip including Production UI when selected, and unresolved threads that block merge or required CI. Missing checks while dirty are not green. Tip moved → re-snapshot.

Ledger-lookup against that GitHub head under an unblock/fix scope for this PR. If already handled at this head for unblock work, merge-tree clean, required checks green, and no blocking threads: summarize, comment, stop.

Unblock once: real conflict → merge origin/main with the smallest correct resolution (prefer main’s shared queues; keep this PR’s notes); behind-but-clean → one sync, late if required CI is in flight; clean → leave. skip-branch-sync and similar labels do not block a manual sync needed to clear a real blocker. No sync thrash. After any sync or push, re-snapshot tip, merge-tree, and required checks before declaring done. Dedupe the ledger if a merge touched it.

Fix only what blocks required checks or mergeability on this tip. Ignore advisory red unless it reveals a real required failure. Prefer the smallest safe fix; if a bot/autofix commit caused the break, prefer revert. Prove with the smallest targeted check only. Format and commit before push.

Push only blocker-fix commits. Append ledger for the final GitHub head under the unblock scope. Never push a ledger-only tip.

One PR comment: tip, sync/merge-tree, what blocked and what you fixed or dispositioned, required CI status, residual risks; merge left to me.

Stop when merge-tree is clean on the current GitHub tip, no blocking threads remain for merge/required CI, and required checks are green or clearly in progress.

@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

❌ Unable to add follow-up after multiple attempts. The agent may be experiencing issues.

Please try again later or Open in Web to view the status.

Open in Web Open in Cursor 

Learn more about Cursor Agents

@BigSimmo

BigSimmo commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent fix all comments

@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

❌ Unable to add follow-up after multiple attempts. The agent may be experiencing issues.

Please try again later or Open in Web to view the status.

Open in Web Open in Cursor 

Learn more about Cursor Agents

@BigSimmo

BigSimmo commented Aug 4, 2026

Copy link
Copy Markdown
Owner Author

@cursoragent Work the current open PR. Confirm the PR number and GitHub head first from context. If more than one open PR could apply, stop and say which one you would use and why.

Fetch and start from the remote tip that matches that GitHub head. If the named branch ref is missing or stale, use the PR head ref. Preserve unrelated local WIP; do not discard dirty work; do not treat a local-ahead commit as the reviewed tip. Do not merge the PR, force-push, rebase, or arm auto-merge unless I explicitly ask. No provider-backed gates without approval. If you cannot push or resolve threads, diagnose and comment only; if inline replies fail, resolve when possible and put dispositions in the summary comment. If auto-merge is already armed, push only for a real blocker and avoid cancelling in-flight required CI unless the push clears that blocker.

If the PR is already merged or closed: confirm outcome, post one summary, and stop.

Goal: review and Bugbot the tip, fix actionable issues with the smallest correct changes, clear merge / required-CI / thread blockers, prove fixes with focused local checks, push, append ledger, and post one PR summary. Use broader offline gates only when the delta or a failed required check warrants them. Regenerate large assets only when a fix requires it.

Snapshot the GitHub head: tip, behind/ahead, mergeable state, merge-tree versus origin/main, required checks on that tip including Production UI when selected, unresolved actionable threads. Missing checks while dirty are not green. Tip moved → re-snapshot.

Ledger-lookup against that GitHub head under the review-and-fix scope for this PR. Already reviewed at this head with clean merge-tree, green required checks, and no new actionable threads → summarize, comment, stop unless I asked for a fresh superseding pass.

Unblock once: real conflict → merge origin/main (prefer main’s shared queues; keep this PR’s notes); behind-but-clean → one sync, late if required CI is in flight; clean → leave. After any sync or push, re-snapshot before declaring done. No sync thrash.

Review high-confidence issues only. Separate PR-introduced defects from pre-existing re-emitted data. For generated assets, review contracts, aliases, and cache—not every generated line. Flag RAG or governance before editing; fix PR-body policy text only when wrong or missing. Ignore bot noise.

Fix P0/P1 always; clear scoped P2 when locally provable; else disposition and resolve. Required-check failures on this tip only; ignore advisory. Prove each fix with the smallest targeted check; escalate to cheap or PR-local verification only when the change set, risk surface, or CI failure needs that breadth. Format and commit before push.

Push only this PR’s fix commits. Append ledger for the final GitHub head. Never push a ledger-only tip.

One PR comment: tip, sync/merge-tree, fixed versus dispositioned, required CI, decisive local proof, residual risks; merge left to me.

Stop when merge-tree is clean on the current GitHub tip, no actionable threads remain, required checks are green or clearly in progress, summary posted, merge left to me.

@cursor

cursor Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

❌ Unable to add follow-up after multiple attempts. The agent may be experiencing issues.

Please try again later or Open in Web to view the status.

Open in Web Open in Cursor 

Learn more about Cursor Agents

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

CI triage

CI failed on this PR. Automated classification of the 2 failed job(s):

  • Static PR checksneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.
  • PR requiredneeds investigation: inspect the failing step and uploaded diagnostics; rerun only after classifying the cause.

Compared with main CI run #8028 (cancelled).

Classification is evidence routing, not permission to ignore a failure. Exact quarantined Playwright identities remain governed by the flake ledger.

@BigSimmo
BigSimmo merged commit 69659d8 into main Aug 5, 2026
23 checks passed
@BigSimmo
BigSimmo deleted the cursor/context7-refresh-22b5 branch August 5, 2026 05:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants