Commit Graph

18 Commits

Author SHA1 Message Date
Fahreddin Özcan 6a799754d0 feat(plugins): add portable Agent Plugin for Context7 (#2998)
Co-authored-by: enesgules <abdullah.enes.gules@gmail.com>
2026-08-09 22:09:19 +03:00
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 1c081df0b6 CTX7-1872: Improve Context7 documentation queries (#2941)
* focus Context7 documentation queries

* narrow documentation query prompt changes

* remove focused from query prompts

* use lookup wording in query prompts

* distinguish documentation lookup from task

* allow live Pi test more time

* add prompt guidance changeset
2026-07-25 06:23:59 +03:00
Enes Gules 33229cb332 docs: enhance query descriptions for clarity and specificity (#2868)
* docs: enhance query descriptions for clarity and specificity

* update all propmts/skills

* format

* address pr review
2026-07-06 15:12:06 +03:00
Enes Gules e35cb61068 feat(copilot-plugin): pass CONTEXT7_API_KEY from environment to MCP server (#2752)
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-06-11 17:56:01 +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 Akar 1aa3430bf6 feat: remove research mode (#2554)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: enesgules <abdullah.enes.gules@gmail.com>
2026-05-04 20:33:42 +03:00
Enes Akar 17b864f23f expose research mode through MCP and CLI (#2498)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: enesgules <abdullah.enes.gules@gmail.com>
2026-04-24 20:48:05 +03:00
Shannon Rumsey 4ed5db533e add author to power (#2497) 2026-04-22 10:55:41 -07:00
Fahreddin Özcan a1a935cbe7 Update Kiro install config and docs (#2474)
* docs: update Kiro install config

* docs: update Kiro deeplink
2026-04-17 14:23:16 +03:00
Shannon Rumsey 0627b71073 CTX7-1531: Create kiro power (#2456)
* add kiro power

---------

Co-authored-by: Fahreddin Özcan <ozcanfahrettinn@gmail.com>
2026-04-14 09:44:32 -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 6a35275309 fix(cursor-plugin): update logo to green icon SVG (#1744) 2026-02-07 23:06:12 +03:00
Fahreddin Özcan ee5b457de0 feat: add Context7 plugin for Cursor marketplace (#1659)
* feat: add Context7 plugin for Cursor marketplace

Adds a Cursor plugin with MCP server (OAuth), rules, skills, and agent
for up-to-date library documentation lookup via Context7.

* chore: update Cursor plugin author to Context7
2026-02-02 05:52:43 -08: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