Commit Graph

24 Commits

Author SHA1 Message Date
Fahreddin Özcan b89a04e620 fix(cli): write the API key as an Authorization header (#2957)
* fix(cli): write the API key as an Authorization header

Codex resolves a server's auth mode by checking only for
`bearer_token_env_var` or a header literally named `Authorization`
(`auth_status_before_discovery` in codex-rs/rmcp-client/src/auth_status.rs,
mirrored in `create_transport` in rmcp_client.rs). The custom
`CONTEXT7_API_KEY` header matched neither, so Codex fell through to any OAuth
credential stored for the same server name and URL and refreshed it during
startup. A dead refresh token then failed the server with `invalid_grant`
before the API key was ever sent, and re-running setup could not recover it
because setup writes config.toml and never touches the credential store.

The hosted endpoint accepts both header forms, so existing configs keep
working.

Two places keep the legacy header deliberately: the plugin .mcp.json files
default to `${CONTEXT7_API_KEY:-}`, and the server rejects `Bearer` with an
empty token while treating a missing header as anonymous; and `env` blocks in
stdio configs, where the name is an environment variable rather than a header.

* fix(plugins): send the API key via the Authorization header

The Claude and Copilot plugin configs default to `${CONTEXT7_API_KEY:-}`, and
both plugins document that an unset key still works over the anonymous tier.
The Bearer form cannot express that: the server rejects `Bearer` with an empty
token while treating an empty or missing Authorization header as anonymous.

The raw-key form satisfies both states. It is genuinely parsed rather than
ignored, verified by an invalid raw key being rejected, so a set key still
authenticates while an unset one falls back to anonymous as documented.

Once the server treats an empty-token Bearer as no header, these can move to
the `Bearer <key>` form used everywhere else.

* refactor(cli): narrow the Codex OAuth probe and trim its surface

Only `oauth` proves a stored credential exists. `not_logged_in` also covers
"no credential, server merely advertises OAuth", which is the normal state for
anyone who never logged in, so treating it as stale told most users their
config held a credential it did not.

Collapse the module to the two functions the call site needs, derive nothing
from a hand-maintained status list, and skip the subprocess entirely when the
server is not already in Codex's config. Drop the probe timeout to 1.5s and
kill with SIGKILL so it is a real ceiling rather than an intent, since the
result is only an advisory hint.

Lock the plugin manifests' raw-key form behind a test, so normalizing them to
`Bearer` for consistency with the CLI fails loudly instead of silently
breaking anonymous access.

* refactor(cli): drop the Codex OAuth cleanup note

The note existed because re-running setup could not rescue a stuck user. The
Authorization header change in this same branch makes it rescue them: Codex
never reads the stored credential once that header is present, so the
credential is inert and the hint only offered cosmetic cleanup.

Removing it drops a subprocess spawn from a user-facing path and a dependency
on the shape of `codex mcp get --json`, an external contract this repo does not
pin. The reason the header name matters moves to `withHeaders`, where the
decision is encoded.
2026-07-29 18:38:10 +03:00
Enes Gules 98fc4b814c fix(docs): update terminology and improve clarity across multiple documentation filestur (#2777) 2026-06-16 18:26:37 +03:00
Enes Gules 574fc642ab feat(docs): add VS Code extension documentation and update all clients reference (#2757) 2026-06-12 16:39:14 +03:00
Enes Gules 75361160c7 feat: update plugin version to 1.0.2 and add API key usage instructions in documentation (#2749) 2026-06-11 17:13:55 +03:00
Enes Gules c10f116765 feat: add Context7 Codex plugin with installation instructions and documentation (#2748) 2026-06-11 11:41:36 +03:00
Enes Gules 06843a6b84 fix copilot cli plugin compatability (#2743) 2026-06-10 13:29:14 +03:00
Enes Gules cc011a4707 feat: add Codex client documentation and update OAuth flow details for existing clients (#2742) 2026-06-09 15:51:14 +03:00
Enes Gules 2e97dae44e refactor(cli): update CLI documentation and add deprecation warning to skill commands (#2711) 2026-06-02 16:15:51 +03:00
Fahreddin Özcan f056b14cde CTX7-1542: add uninstall command for Context7 setup (#2473)
* CTX7-1542: add uninstall command for Context7 setup

* CTX7-1542: refine uninstall mode flags

* CTX7-1542: rename uninstall command to remove

* CTX7-1542: rename remove command files and add tests

* CTX7-1542: show detected agents in remove prompt

* CTX7-1542: tighten remove detection and cleanup coverage

* CTX7-1542: add remove command changeset
2026-04-21 12:41:32 +03:00
Fahreddin Özcan bc8eaf11a6 Add all-agents option for ctx7 skills install (#2424)
* Add all-agents option for ctx7 skills install

* Update docs and add changeset for skills install flags
2026-04-09 11:44:56 +03:00
Fahreddin Özcan c3c2647029 fix(cli): use ~/.agents/skills for global universal skill installs (#2281)
* fix(cli): use ~/.agents/skills for global universal skill installs

The universal global path was ~/.config/agents/skills, but the
canonical standard (used by Vercel's skills CLI and OpenAI Codex)
is ~/.agents/skills. This aligns context7 with the broader ecosystem.

Fixes #2276

* chore: add changeset for global skills path fix
2026-03-19 17:13:58 +03:00
DeoJin 97b3149276 docs: clarify headless Claude Code setup (#2267)
Co-authored-by: DeoJin <268571697+DeoJin@users.noreply.github.com>
2026-03-19 16:03:41 +03:00
enesakar ce63d4b00c cli updates 2026-03-11 22:45:51 -07:00
Fahreddin Özcan 04130b5596 refactor(skills): consolidate skills under /skills with canonical sources (#2191)
* refactor(skills): consolidate skills under /skills with canonical sources

- Rename skills/docs → skills/find-docs (name: find-docs)
- Rename skills/ctx7-cli → skills/context7-cli (name: context7-cli)
- Add skills/context7-mcp as canonical MCP skill source
- Rename plugin skill folders to context7-mcp and unify name to context7-mcp
- MCP setup now downloads context7-mcp skill from GitHub instead of using hardcoded SKILL_CONTENT
- Remove SKILL_CONTENT from templates.ts — skills/context7-mcp/SKILL.md is the single source of truth
- Add Error Handling section to find-docs skill for quota errors
- Update agents.ts skill name: documentation-lookup → context7-mcp
- Update docs/clients/cli.mdx and setup references accordingly

* chore: add changeset for skills consolidation

* fix(skills): update plugin skill frontmatter name and setup docs to context7-mcp
2026-03-11 16:17:10 +03:00
Fahreddin Özcan d418405f85 feat(cli): add CLI + Skills mode to ctx7 setup (#2187)
* feat(cli): add CLI mode to ctx7 setup with docs skill installation

- Add MCP vs CLI mode selection prompt at the start of setup
- CLI mode authenticates user and installs docs skill via promptForInstallTargets
- Add --cli, --universal, --antigravity flags to setup command
- --yes skips the detected-locations confirmation prompt
- Default CLI install scope to global (override with --project)
- Fix checkbox selected choices to render in green (consistent with select prompt)
- Move Claude Code above Universal in IDE selection order
- Add forceUniversal=false option to promptForInstallTargets for setup flow
- Add yes? to AddOptions to support auto-confirm in promptForInstallTargets

* chore: add changeset for ctx7 setup CLI mode

* feat(cli): rename CLI mode to CLI + Skills, add --mcp flag, remove recommended label

* feat(cli): add --api-key support to CLI mode and update docs

- Pass apiKey through to resolveCliAuth in CLI mode setup
- Store provided API key as bearer token for subsequent API calls
- Update cli.mdx and setup.md to reflect both MCP and CLI + Skills modes

* docs: update setup docs to reflect --api-key for both modes and --cursor for CLI

- --api-key works in both MCP and CLI + Skills mode (not MCP-only)
- --oauth clarified as MCP-only
- Added --cursor to CLI + Skills mode examples (Cursor has a skills directory)
- Updated auth table row for ctx7 setup

* fix(cli): improve library ID validation and add telemetry headers

- Validate /owner/repo format locally before spinner starts, showing
  consistent error + hint for both "react" and "/react" inputs
- Send X-Context7-Source, X-Context7-Client-IDE, X-Context7-Client-Version,
  and X-Context7-Transport headers on library/docs requests so CLI
  appears in the admin telemetry dashboard
2026-03-11 14:05:15 +03:00
Fahreddin Özcan 31b4fb8435 feat(cli): add docs skill and align CLI output with MCP format (#2176)
* feat(docs): add dedicated docs skill and restructure CLI documentation

- Add new `docs` skill as a single-file skill for documentation retrieval
- Align skill prompts with MCP tool descriptions (selection process, query guidance, 3-call limit)
- Enrich CLI docs page with result fields, query tips, and version-specific IDs
- Move CLI page to Overview section in docs nav
- Make `query` required for `ctx7 library` across all skills and docs
- Update trust score display label in skills.mdx

* feat(cli): align library output format with MCP labels

Use labeled fields and categorical Source Reputation labels
(High/Medium/Low/Unknown) instead of numeric trust scores to match
the MCP transport format.

* refactor: move skills from .agents/skills to skills/ at repo root

Source-control location for skills — users install them into
.agents/, .claude/, etc. via the CLI. Also updates install
instructions to use `npm install -g ctx7@latest` or `npx ctx7@latest`.

* docs: use natural-language query examples across skills and CLI docs

Replace keyword-style queries ("useEffect cleanup") with full
question-style queries ("How to clean up useEffect with async
operations") to better demonstrate how the query parameter works.

* docs: fix trust score description to show numeric range
2026-03-10 16:04:05 +03:00
Fahreddin Özcan 9bb8321f41 feat(docs): add dedicated CLI reference page and restructure skills docs (#2159)
Replaces the cli.mdx redirect stub with a full CLI reference covering library
documentation, setup, authentication, and all skills commands. Trims skills.mdx
to conceptual content only with a reference back to the CLI page. Updates the
ctx7-cli skill's docs reference with selection algorithm and query quality
guidance from the MCP tool prompts.
2026-03-09 16:25:18 +03:00
enesgules d2c34b04c3 Update installation commands across multiple languages to include the --scope user flag for Context7 in Claude Code. 2026-02-20 16:41:09 +03:00
enesakar 33bfbcdb9b cli and skills docs 2026-01-22 09:56:09 -08:00
Fahreddin Özcan e3146aa3e5 docs(CTX7-1058): improve oauth docs steps (#1448) 2026-01-15 16:48:01 +03:00
Fahreddin Özcan b5942ddade docs: fix claude installation guides with correct args location (#1438) 2026-01-13 01:01:05 +03:00
Fahreddin Özcan 51996f2489 docs(CTX7-1040): add OpenCode to clients list (#1432)
* docs(CTX7-1040): add OpenCode to clients list

* remove api key warnign
2026-01-12 18:12:19 +03:00
Fahreddin Özcan 3553cb2023 fix: claude code plugin name and details image (#1417)
* fix: claude code plugin name and details image

* fix: claude code plugin name and details image

* update skill prompt

* fix: update plugin.json name and improve agent/skill instructions

* fix: update plugin README with correct install commands

* fix: remove max 3 calls warning
2026-01-10 22:24:20 +03:00
Fahreddin Özcan b41e7c8482 docs: add dedicated Cursor and Claude Code client guides with plugin marketplace (#1385)
* feat(plugins): add Context7 plugin for Claude Code

Add the context7 plugin with:
- MCP server configuration (.mcp.json)
- Plugin metadata (.claude-plugin/plugin.json)
- docs-researcher agent for focused documentation lookups
- /context7:docs command for manual queries
- documentation-lookup skill for auto-triggering

* docs(clients): add dedicated Cursor and Claude Code guides

Add comprehensive client-specific documentation:

Cursor:
- One-click and manual installation (remote/local)
- Rules setup via settings and .cursorrules
- Library IDs, version pinning, example prompts
- Tips for Composer integration

Claude Code:
- CLI installation commands
- Plugin installation (skills, agents, commands)
- docs-researcher agent usage
- /context7:docs command reference
- CLAUDE.md rules setup

Uses Mintlify components: Tabs, Steps, Cards, Accordions

* docs: add Clients navigation and cross-references

- Add "Clients" group to docs.json navigation
- Add note in all-clients.mdx linking to dedicated guides

* update warnings

* docs: redesign claude client docs

* docs: update cursor docs with images

* docs: update cursor installation ui

* feat: add claude marketplace docs

* update marketplace

* update mp-plugin name

* finalize cc plugin installation

* update using context7 section

* feat: make claude code oauth default
2026-01-10 10:47:09 -08:00