Atlas / Skills / upstash / Context7 - Up-to-date Docs for AI Agents

Context7 - Up-to-date Docs for AI AgentsCAUTION

skills/upstash/documentation-lookup

Context7 Platform -- Up-to-date docs for AI agents

Verdict
CAUTION
Grade
C
Trust score
72 /100
Version
—
Hosts
7 documented
License
MIT
Stars
63,486
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

[](https://cursor.com/en/install-mcp?name=context7&config=eyJ1cmwiOiJodHRwczovL21jcC5jb250ZXh0Ny5jb20vbWNwIn0%3D)

[](https://context7.com) [](https://www.npmjs.com/package/@upstash/context7-mcp) [](./LICENSE)

[](./i18n/README.zh-TW.md) [](./i18n/README.zh-CN.md) [](./i18n/README.ja.md) [](./i18n/README.ko.md) [](./i18n/README.es.md) [](./i18n/README.fr.md) [](./i18n/README.pt-BR.md) [](./i18n/README.it.md) [](./i18n/README.id-ID.md) [](./i18n/README.de.md) [](./i18n/README.ru.md) [](./i18n/README.uk.md) [](./i18n/README.tr.md) [](./i18n/README.ar.md) [![Tiế

Read from source at commit 0c2d9cbb7535OBSERVED · 2026-10-22
Advertisement
02

Install

Commands as the repository documents them. They are shown, not run.

npm install @upstash/context7-tools-ai-sdk
npm install -g ctx7
npm install -g @upstash/docs7
npm install -g @upstash/docs7
npm install -g @upstash/docs7
npm install --global ctx7@latest
03

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
claude-desktopmentioned
codexmentioned
copilotmentioned
cursormentioned
gemini-climentioned
openclawmentioned
04

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: context7-cli
description: Use the ctx7 CLI to fetch library documentation and configure Context7 MCP. Activate when the user mentions "ctx7" or "context7", needs current docs for any library, or needs to set up Context7 for their AI coding agent.
---

# ctx7 CLI

The Context7 CLI does two things: fetches up-to-date library documentation and sets up Context7 MCP for your editor.

Make sure the CLI is up to date before running commands:

```bash
npm install -g ctx7@latest
```

Or run directly without installing:

```bash
npx ctx7@latest <command>
```

## What this skill covers

- **[Documentation](references/docs.md)** — Fetch current docs for any library. Use when writing code, verifying API signatures, or when training data may be outdated.
- **[Setup](references/setup.md)** — Configure Context7 MCP for Claude Code / Cursor / OpenCode.

## Quick Reference

```bash
# Documentation
ctx7 library <name> <query>           # Step 1: resolve library ID
ctx7 docs <libraryId> <query>         # Step 2: fetch docs

# Setup
ctx7 setup                            # Configure Context7 MCP (interactive)
ctx7 login                            # Log in for higher rate limits
ctx7 whoami                           # Check current login status
```

## Authentication

```bash
ctx7 login               # Opens browser for OAuth
ctx7 login --no-browser  # Prints URL instead of opening browser
ctx7 logout              # Clear stored tokens
ctx7 whoami              # Show current login status (name + email)
```

Most commands work without login. Exception: `ctx7 setup` requires it unless `--api-key` or `--oauth` is passed. Login also unlocks higher rate limits on docs commands.

Set an API key via environment variable to skip interactive login entirely:

```bash
export CONTEXT7_API_KEY=your_key
```

## Common Mistakes

- Library IDs require a `/` prefix — `/facebook/react` not `facebook/react`
- Always run `ctx7 library` first — `ctx7 docs react "hooks"` will fail without a valid ID
05

Trust audit

CAUTIONgrade C · trust 72/100 Install with care. The audit found things worth knowing before you trust its output.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeWARN
L2Instruction surface (what it tells the agent)PASS
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (4 observation(s))
Network
declared (5 observation(s))
Shell
none-observed
Dependencies
not all pinned
Secrets in source
found

Findings (25)

MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/cli/src/__tests__/setup-auth.test.ts:67
json: () => Promise.resolve({ data: { apiKey: "ctx7sk-generated-key" } }),
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/mcp/test/integration.test.ts:535
const apiKey = "ctx7sk-advertised-header-test";
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
packages/tools-ai-sdk/src/agents/context7.ts:30
*   apiKey: 'your-context7-api-key',
MEDIUMHard-coded secrets · secret.private_key · CWE-798, CWE-321
docs/enterprise/integrations/other-git.mdx:71
-----BEGIN OPENSSH PRIVATE KEY-----
LOWInventory / provenance · inv.hidden_file · CWE-1104
.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/admin-mcp/.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/mcp/.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/opencode/.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWInventory / provenance · inv.hidden_file · CWE-1104
packages/pi/.prettierignore
.prettierignore
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/cli/src/__tests__/find-docs-skill-alignment.test.ts:6
const repoRoot = join(dirname(fileURLToPath(import.meta.url)), "../../../..");
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/mcp/src/lib/constants.ts:6
const pkg = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/pi/vitest.config.ts:5
config({ path: path.resolve(__dirname, "../../.env") });
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/sdk/vitest.integration.config.ts:6
dotenv.config({ path: path.resolve(__dirname, "../../.env") });
LOWFilesystem / path · fs.traversal · CWE-22, CWE-59
packages/tools-ai-sdk/vitest.config.ts:5
config({ path: path.resolve(__dirname, "../../.env") });
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp/test/integration.test.ts:178
resolve(`http://127.0.0.1:${address.port}/api`);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp/test/integration.test.ts:216
metricsUrl = `http://127.0.0.1:${metricsPort}/metrics`;
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp/test/integration.test.ts:904
`OpenTelemetry metrics available at http://127.0.0.1:${defaultMetricsPort}/metrics`
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp/test/integration.test.ts:906
const response = await fetch(`http://127.0.0.1:${defaultMetricsPort}/metrics`);
LOWNetwork egress · net.raw_ip · CWE-200, CWE-319
packages/mcp/test/mcp-subscription-telemetry.test.ts:193
return new Request("http://127.0.0.1/mcp", {
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
package.json
@inquirer/core, @inquirer/type, @changesets/cli, eslint-config-prettier
Why it matters. 4 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/admin-mcp/package.json
zod
Why it matters. 1 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/cli/package.json
@inquirer/prompts, boxen, commander, figlet, jsonc-parser, open, ora, picocolors
Why it matters. 11 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/mcp/package.json
@opentelemetry/api, @opentelemetry/exporter-prometheus, @opentelemetry/instrumentation-runtime-node, @opentelemetry/resources, @opentelemetry/sdk-metrics, @types/express, commander, express
Why it matters. 15 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
packages/opencode/package.json
@opencode-ai/plugin, @opencode/plugin
Why it matters. 2 dependency range(s) float
Fix. pin exact versions or ship a lockfile
LOWPrompt injection · prompt.transfer_instruction · CWE-94, CWE-1427
docs/clients/cursor.mdx:214
Confirm that the custom server URL is `https://mcp.context7.com/mcp`, the header is named `Context7-API-Key`, and the saved value is the current API key. Then enable the server and start a new Cloud A
Why it matters. an instruction to move sensitive data to an outside destination
Fix. remove; a skill never needs the user's secrets off the machine

Gates applied: no_behavioural_pass.

Audited 2026-10-22 · audit v0.4.1 · source sha 0c2d9cbb7535full audit observations/trust-audit/skill/upstash__documentation-lookup.json · Report an issue / request a re-scan
06

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-220c2d9cbb7535CAUTIONC72first audit
07

Questions

What does the documentation-lookup — upstash/context7 skill do?

Context7 Platform -- Up-to-date docs for AI agents

Is documentation-lookup — upstash/context7 safe to install?

With care. The audit graded it C (72/100) and found 25 things worth knowing before you trust this skill, listed below with the exact line each was found on.

What can documentation-lookup — upstash/context7 access on my machine?

The audit observed that it reaches the network and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: found — see the findings.

Which assistants does documentation-lookup — upstash/context7 work with?

Its documentation mentions claude-code, claude-desktop, codex, copilot, cursor, gemini-cli and openclaw. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (0c2d9cbb7535), read on 2026-10-22. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: Context7 - Up-to-date Docs for AI Agents](https://modelsatlas.com/skills/upstash/documentation-lookup/badge.svg)](https://modelsatlas.com/skills/upstash/documentation-lookup/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement