Context7
CAUTIONgrade D · trust 68/100Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
llmmcpmcp servervibe codingOverview
From the repository's own README, as read at the audited commit.
# ChangesetsHello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that workswith multi-package repos, or single-package repos to help you version and publish your code. You canfind the full documentation for it [in our repository](https://github.com/changesets/changesets)We have a quick list of common questions to get you started engaging with this project in[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add context7-mcp --env CONTEXT7_API_KEY=${CONTEXT7_API_KEY} -- npx -y @upstash/[email protected]Exposed tools (3) 3 read · 0 write · 0 destructive
| Tool | Risk | Description |
|---|---|---|
React | read | A UI library |
context7-mcp | read | desc |
query-docs | read |
Details
- Source
- upstash/context7
- npm
@upstash/context7-tools-ai-sdk@1.0.1- Transports
- stdio · streamable-http
- Credentials it reads
AUTH_SERVER_URLCONTEXT7_API_KEYGH_TOKENGITHUB_TOKENMCP_CLIENT_IP_ASSERTION_KEYOAUTH_AUTH_SERVER_URLOAUTH_JWKS_URLOPENAI_APPS_CHALLENGE_TOKEN- License
- MIT
- Stars
- 62,141 · pushed 0d ago
Trust audit
Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (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)
json: () => Promise.resolve({ data: { apiKey: "ctx7sk-generated-key" } }),const apiKey = "ctx7sk-advertised-header-test";
* apiKey: 'your-context7-api-key',
-----BEGIN OPENSSH PRIVATE KEY-----
.prettierignore
.prettierignore
.prettierignore
.prettierignore
const repoRoot = join(dirname(fileURLToPath(import.meta.url)), "../../../..");
const pkg = JSON.parse(readFileSync(join(__dirname, "../../package.json"), "utf-8"));
config({ path: path.resolve(__dirname, "../../.env") });dotenv.config({ path: path.resolve(__dirname, "../../.env") });config({ path: path.resolve(__dirname, "../../.env") });resolve(`http://127.0.0.1:${address.port}/api`);metricsUrl = `http://127.0.0.1:${metricsPort}/metrics`;`OpenTelemetry metrics available at http://127.0.0.1:${defaultMetricsPort}/metrics`const response = await fetch(`http://127.0.0.1:${defaultMetricsPort}/metrics`);return new Request("http://127.0.0.1/mcp", {@inquirer/core, @inquirer/type, @changesets/cli, @types/node, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint, eslint-config-prettier
@inquirer/core, @inquirer/prompts, boxen, commander, figlet, open, ora, picocolors
@opentelemetry/api, @opentelemetry/exporter-prometheus, @opentelemetry/instrumentation-runtime-node, @opentelemetry/resources, @opentelemetry/sdk-metrics, @types/express, commander, express
@opencode-ai/plugin, @types/node, tsup, typescript
@earendil-works/pi-coding-agent, @types/node, dotenv, typebox, typescript, vitest
| `admin` | Full access to all endpoints including settings, user management, and delete operations |
If the private library can be read, the Cloud Agent is using the API key. If the agent reports **Monthly quota exceeded** even though the key has quota, the request is reaching Context7 anonymously; r
Gates applied: no_behavioural_pass.
Audited 2026-09-18 · audit v0.4.0 · source sha c31743b7a5e4 · full audit: observations/trust-audit/mcp-server/upstash__context7-1.json · Report an issue or request a re-scan
Audit history
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-09-18 | c31743b7a5e4 | CAUTION | D | 68 | first audit |
Alternatives
Other servers in the same categories, safer ones first.
Questions
What is the Context7 MCP server?
Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
What tools does Context7 expose?
3 in total: 3 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Context7 safe to connect to an agent?
With care. The audit graded it D (68/100) and found 25 things worth knowing before you trust this server, listed below with the exact line each was found on.
What credentials does Context7 need?
It reads AUTH_SERVER_URL, CONTEXT7_API_KEY, GH_TOKEN, GITHUB_TOKEN, MCP_CLIENT_IP_ASSERTION_KEY, OAUTH_AUTH_SERVER_URL, OAUTH_JWKS_URL and OPENAI_APPS_CHALLENGE_TOKEN from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Context7 run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on npm as @upstash/context7-tools-ai-sdk at 1.0.1.
How current is this page?
The grade is for one exact copy of the source (c31743b7a5e4), read on 2026-09-18. The repository is watched and re-audited when it changes.
Provenance: OBSERVED · read 2026-09-18 · job trust-audit-2026-09-18