@upstash/context7-mcp 1.0.8 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -7
- package/dist/index.js +19 -11
- package/dist/lib/utils.js +4 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://context7.com) [](https://smithery.ai/server/@upstash/context7-mcp) [<img alt="Install in VS Code (npx)" src="https://img.shields.io/badge/VS_Code-VS_Code?style=flat-square&label=Install%20Context7%20MCP&color=0098FF">](https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%7B%22name%22%3A%22context7%22%2C%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%40upstash%2Fcontext7-mcp%40latest%22%5D%7D)
|
|
4
4
|
|
|
5
|
-
[](./docs/README.zh-CN.md) [](./docs/README.ko.md) [](./docs/README.es.md) [](./docs/README.fr.md) [-purple)](./docs/README.pt-BR.md) [](./docs/README.it.md) [](./docs/README.id-ID.md) [](./docs/README.de.md) [](./docs/README.ru.md) [](./docs/README.tr.md)
|
|
5
|
+
[](./docs/README.zh-CN.md) [](./docs/README.ko.md) [](./docs/README.es.md) [](./docs/README.fr.md) [-purple)](./docs/README.pt-BR.md) [](./docs/README.it.md) [](./docs/README.id-ID.md) [](./docs/README.de.md) [](./docs/README.ru.md) [](./docs/README.tr.md) [](./docs/README.ar.md)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
## ❌ Without Context7
|
|
@@ -180,12 +180,12 @@ Open the "Settings" page of the app, navigate to "Plugins," and enter the follow
|
|
|
180
180
|
|
|
181
181
|
```json
|
|
182
182
|
{
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
183
|
+
"mcpServers": {
|
|
184
|
+
"context7": {
|
|
185
|
+
"command": "npx",
|
|
186
|
+
"args": ["-y", "@upstash/context7-mcp@latest"]
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
189
|
}
|
|
190
190
|
```
|
|
191
191
|
|
|
@@ -382,6 +382,13 @@ If you encounter an error like: `Error: Cannot find module 'uriTemplate.js'` try
|
|
|
382
382
|
|
|
383
383
|
Context7 projects are community-contributed and while we strive to maintain high quality, we cannot guarantee the accuracy, completeness, or security of all library documentation. Projects listed in Context7 are developed and maintained by their respective owners, not by Context7. If you encounter any suspicious, inappropriate, or potentially harmful content, please use the "Report" button on the project page to notify us immediately. We take all reports seriously and will review flagged content promptly to maintain the integrity and safety of our platform. By using Context7, you acknowledge that you do so at your own discretion and risk.
|
|
384
384
|
|
|
385
|
+
## Connect with Us
|
|
386
|
+
|
|
387
|
+
Stay updated and join our community:
|
|
388
|
+
- 📢 Follow us on [X](https://x.com/contextai) for the latest news and updates
|
|
389
|
+
- 🌐 Visit our [Website](https://context7.com)
|
|
390
|
+
- 💬 Join our [Discord Community](https://upstash.com/discord) (if applicable)
|
|
391
|
+
|
|
385
392
|
## Context7 In Media
|
|
386
393
|
|
|
387
394
|
- [Better Stack: "Free Tool Makes Cursor 10x Smarter"](https://youtu.be/52FC3qObp9E)
|
package/dist/index.js
CHANGED
|
@@ -22,24 +22,32 @@ if (process.env.DEFAULT_MINIMUM_TOKENS) {
|
|
|
22
22
|
const server = new McpServer({
|
|
23
23
|
name: "Context7",
|
|
24
24
|
description: "Retrieves up-to-date documentation and code examples for any library.",
|
|
25
|
-
version: "v1.0.
|
|
25
|
+
version: "v1.0.9",
|
|
26
26
|
capabilities: {
|
|
27
27
|
resources: {},
|
|
28
28
|
tools: {},
|
|
29
29
|
},
|
|
30
30
|
});
|
|
31
31
|
// Register Context7 tools
|
|
32
|
-
server.tool("resolve-library-id", `Resolves a package name to a Context7-compatible library ID and returns a list of matching libraries.
|
|
32
|
+
server.tool("resolve-library-id", `Resolves a package/product name to a Context7-compatible library ID and returns a list of matching libraries.
|
|
33
33
|
|
|
34
34
|
You MUST call this function before 'get-library-docs' to obtain a valid Context7-compatible library ID.
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
36
|
+
Selection Process:
|
|
37
|
+
1. Analyze the query to understand what library/package the user is looking for
|
|
38
|
+
2. Return the most relevant match based on:
|
|
39
|
+
- Name similarity to the query (exact matches prioritized)
|
|
40
|
+
- Description relevance to the query's intent
|
|
41
|
+
- Documentation coverage (prioritize libraries with higher Code Snippet counts)
|
|
42
|
+
- Trust score (consider libraries with scores of 7-10 more authoritative)
|
|
41
43
|
|
|
42
|
-
|
|
44
|
+
Response Format:
|
|
45
|
+
- Return the selected library ID in a clearly marked section
|
|
46
|
+
- Provide a brief explanation for why this library was chosen
|
|
47
|
+
- If multiple good matches exist, acknowledge this but proceed with the most relevant one
|
|
48
|
+
- If no good matches exist, clearly state this and suggest query refinements
|
|
49
|
+
|
|
50
|
+
For ambiguous queries, request clarification before proceeding with a best-guess match.`, {
|
|
43
51
|
libraryName: z
|
|
44
52
|
.string()
|
|
45
53
|
.describe("Library name to search for and retrieve a Context7-compatible library ID."),
|
|
@@ -77,11 +85,11 @@ Each result includes:
|
|
|
77
85
|
- Name: Library or package name
|
|
78
86
|
- Description: Short summary
|
|
79
87
|
- Code Snippets: Number of available code examples
|
|
80
|
-
-
|
|
88
|
+
- Trust Score: Authority indicator
|
|
81
89
|
|
|
82
|
-
For best results, select libraries based on name match,
|
|
90
|
+
For best results, select libraries based on name match, trust score, snippet coverage, and relevance to your use case.
|
|
83
91
|
|
|
84
|
-
|
|
92
|
+
----------
|
|
85
93
|
|
|
86
94
|
${resultsText}`,
|
|
87
95
|
},
|
package/dist/lib/utils.js
CHANGED
|
@@ -16,9 +16,9 @@ export function formatSearchResult(result) {
|
|
|
16
16
|
if (result.totalSnippets !== -1 && result.totalSnippets !== undefined) {
|
|
17
17
|
formattedResult.push(`- Code Snippets: ${result.totalSnippets}`);
|
|
18
18
|
}
|
|
19
|
-
// Only add
|
|
20
|
-
if (result.
|
|
21
|
-
formattedResult.push(`-
|
|
19
|
+
// Only add trust score if it's a valid value
|
|
20
|
+
if (result.trustScore !== -1 && result.trustScore !== undefined) {
|
|
21
|
+
formattedResult.push(`- Trust Score: ${result.trustScore}`);
|
|
22
22
|
}
|
|
23
23
|
// Join all parts with newlines
|
|
24
24
|
return formattedResult.join("\n");
|
|
@@ -35,5 +35,5 @@ export function formatSearchResults(searchResponse) {
|
|
|
35
35
|
return "No documentation libraries found matching your query.";
|
|
36
36
|
}
|
|
37
37
|
const formattedResults = searchResponse.results.map(formatSearchResult);
|
|
38
|
-
return formattedResults.join("\n
|
|
38
|
+
return formattedResults.join("\n----------\n");
|
|
39
39
|
}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@upstash/context7-mcp","version":"v1.0.
|
|
1
|
+
{"name":"@upstash/context7-mcp","version":"v1.0.9","description":"MCP server for Context7","scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc && chmod 755 dist/index.js","format":"prettier --write .","lint":"eslint \"**/*.{js,ts,tsx}\" --fix"},"repository":{"type":"git","url":"git+https://github.com/upstash/context7.git"},"keywords":["modelcontextprotocol","mcp","context7"],"author":"abdush","license":"MIT","type":"module","bin":{"context7-mcp":"dist/index.js"},"files":["dist"],"bugs":{"url":"https://github.com/upstash/context7/issues"},"homepage":"https://github.com/upstash/context7#readme","dependencies":{"@modelcontextprotocol/sdk":"^1.8.0","dotenv":"^16.5.0","zod":"^3.24.2"},"devDependencies":{"@types/node":"^22.13.14","@typescript-eslint/eslint-plugin":"^8.28.0","@typescript-eslint/parser":"^8.28.0","eslint":"^9.23.0","eslint-config-prettier":"^10.1.1","eslint-plugin-prettier":"^5.2.5","prettier":"^3.5.3","typescript":"^5.8.2","typescript-eslint":"^8.28.0"}}
|