Context7 MCP Context7 4.4.4: our test log
Context7 MCP 4.4.4 started locally in 462 ms but its tool calls go to a hosted API: resolve-library-id took about 1.2 s per call and returned React documentation matches.
Tested by us on 2026-10-25. Local open-weight model, not the vendor's hosted models. A smoke test on a CPU-only box, not a benchmark.
Result at a glance
| Field | Value |
|---|---|
| Result | Passed |
| Version tested | Context7 4.4.4 |
| Date and time | 2026-10-25, 22:39 CDT (America/Chicago) |
| Task | A small Python client written with the official MCP Python SDK (2.3.0) spawns the server as a child process over stdio, times the initialize handshake (cold start: spawn to initialize result), times one tools/list, then times 3 sequential tools/call requests (the count differs per test; this one used 3) and reports the median and 95th percentile. Numbers are milliseconds on the rig described on the methodology page. |
| Model used | none (no language model involved) |
| Hardware | Linux x86_64 virtual machine (Debian 13), 8 vCPU (Intel Xeon, 1 thread per core), 15 GiB RAM, no GPU |
| resolve-library-id (hosted lookup) | cold start 462 ms; tools/list 5.9 ms (2 tools); 3 x resolve-library-id: median 1201.3 ms, p95 1201.3 ms |
What we found
- The local package is the thin client: it advertises 2 tools and forwards them to Upstash's hosted service, so the 1201.3 ms median (3 calls) includes a network round trip and the service's own work. This is not a local-only tool; documentation lookups leave your machine.
- The call resolved the library name 'react' with the query 'useEffect cleanup' and returned a list that began with the official React docs (Context7 library ID /reactjs/react.dev). We did not evaluate the quality of the documentation snippets themselves.
What we ran, step by step
| Step | Wall time | Exit code | Notes |
|---|---|---|---|
| npm install on Node 20.19.2 (cold) | 3.3 s | 0 | Resolved 4.4.4; 63 MB in 115 packages; load 3.16. |
| npm install on Node 24.22.1 (cold) | 2.8 s | 0 | Resolved 4.4.4; 63 MB in 115 packages; load 2.17. |
| Latency run: resolve-library-id (hosted lookup) | n/a | 0 | Context7 4.4.4 (protocol 2025-11-25). cold start 462 ms; tools/list 5.9 ms (2 tools); 3 x resolve-library-id: median 1201.3 ms, p95 1201.3 ms. Load 1.54. |
# npm install on Node 20.19.2 (cold)
npm install --no-audit --no-fund --cache /tmp/npmcache @upstash/context7-mcp
# npm install on Node 24.22.1 (cold)
npm install --no-audit --no-fund --cache /tmp/npmcache @upstash/context7-mcp
# Latency run: resolve-library-id (hosted lookup)
node work/npm/context7-mcp/node_modules/.bin/context7-mcpRaw output (excerpts)
resolve-library-id({"libraryName": "react", "query": "useEffect cleanup"})
Available Libraries:
- Title: React
- Context7-compatible library ID: /reactjs/react.dev
- Description: React.dev is the official documentation website for React, a JavaScript library for building user interfaces, providing guides, API references, and tutorials.
- Code Snippets: 4410
- Source ReputGotchas and things that broke
- Unlike the other servers in our MCP tests, results depend on a third-party service and will vary with network and service state. No API key was used; rate limits for anonymous use were not tested.
What we did not test
- Remote (HTTP) transport, authentication and concurrent clients: only local stdio with one client was measured.
- Large payloads: calls used tiny inputs, so these latencies are protocol and process overhead, not throughput.
- Anything about answer quality: no model was involved in the latency numbers.
- These are single smoke-test runs; it is not a benchmark. The machine was shared with other jobs.
- The second tool (fetching documentation by library ID) and API-key behaviour.
Reproduce it
Versions change. These commands install whatever is latest on the day you run them unless a version is pinned, so expect different results later. The version we measured is in the table above.
npm install @upstash/context7-mcp
node node_modules/.bin/context7-mcpHow to read this test
Every number on this page was measured on this one machine, which also ran other jobs, so timings are indicative and vary run to run. A pass means our small task worked once or as stated, a fail means it did not work as we ran it; neither says how the tool behaves with a vendor's frontier model, on a GPU, or at scale. Where a tool could not run without an account or a GPU, we say so instead of guessing.
See the testing rig for the hardware, the local model and the rules we follow, and the test hub for every other test.
Related tests: mcp servers and tooling
- FastMCP 4.1.3 and the official MCP Python SDK 2.3.0 (server side): The same three-tool server written with FastMCP 4.1.3 and with the official MCP Python SDK 2.3.0 answered calls equally fast (about 1 ms); FastMCP started in 643 to 735 ms against 461 to 516 ms for the SDK on repeats.
- GitHub MCP Server: GitHub MCP Server 2.0.3 started over stdio in a median 266 ms and listed 46 tools in a median 15 ms; we did not make any authenticated call.
- MCP Everything (reference) server: MCP Everything (reference) server answered over stdio in 356 ms cold (v1.0.0, Node 20) and 252 ms (v2.0.1, Node 24); median call 0.5 to 0.4 ms.
- MCP Fetch server: The MCP Fetch server 2026.10.24 refused to fetch a local test page by default (a deliberate loopback block); with --allow-private-ips it fetched it in 698.3 ms median.
- MCP Filesystem server: MCP Filesystem server answered over stdio in 279 ms cold (v1.0.0, Node 20) and 187 ms (v2.0.1, Node 24); median call 0.8 to 1.0 ms.
- MCP Git server: The MCP Git server 2026.10.19 started in 512 ms, listed 12 tools and answered git_status in 3.2 ms median.
Sources
- Context7 repository (fetched 2026-10-25)
Related
Markdown version for agents: /tests/context7-mcp.md