🚀 @orgsoft/jsr
@orgsoft/jsr 是一個 MCP 服務器、CLI 實用工具和 TypeScript 庫,用於探索 jsr.io 上的軟件包。JSR 是一個現代 JavaScript 倉庫,可作為 NPM 的替代方案,它提供豐富的 TypeScript 支持、現代特性,並能與 Deno 無縫集成。
@orgsoft/jsr 具備由 Orama 驅動的語義搜索、軟件包下載分析功能,還能從 jsr 上的任何軟件包或作用域中檢索文件和文檔。這將提升你的開發工作流程,尤其是在將 Deno 與 AI 編碼工具結合使用時。
✨ 主要特性
- 📊 軟件包詳情:提供任何 JSR 軟件包的版本信息、下載趨勢以及文件/文檔列表。
- 🔗 相似性搜索:發現與現有軟件包或搜索查詢相關的軟件包。
- 🖥️ CLI、MCP 或自定義:擁有功能齊全的命令行界面、MCP 服務器和導出函數。
📦 安裝指南
首先,請確保已安裝最新版本的 Deno。
作為 MCP 服務器
將以下內容添加到你的 claude_desktop_config.json 文件中:
{
"mcpServers": {
"jsr": {
"command": "path/to/your/deno",
"args": [
"run",
"--allow-net=jsr.io,api.jsr.io,cloud.orama.run",
"--allow-run",
"jsr:@orgsoft/jsr@^1",
"mcp"
]
}
}
}
⚠️ 重要提示
請將 path/to/your/deno 命令替換為你實際安裝 Deno 的完整路徑才能正常工作。(可使用 which deno 來查找該路徑)
作為命令行實用工具
除了 Deno 之外,你無需安裝任何其他東西即可使用該命令行實用工具。
deno run jsr:@orgsoft/jsr search "web frameworks"
deno run jsr:@orgsoft/jsr similar @orgsoft/jsr
deno run --allow-net --allow-run jsr:@orgsoft/jsr similar @orgsoft/jsr
CLI 安裝
你也可以使用 deno install 進行永久安裝:
deno install -frAg jsr:@orgsoft/jsr
jsr details @std/http
jsr docs @std/http
jsr mcp
⚠️ 重要提示
為提高安全性,建議使用 必要的最小權限 並 指定固定的版本號。你應該始終審查在計算機上執行的代碼,由於 Deno 具有權限系統、開源程序和沙盒模型,因此它非常適合進行此類審查。
請注意,這些安裝說明中包含的 --allow-run 權限 僅在 MCP 服務器的 jsr docs 命令中需要,該命令僅用於運行 deno doc,這是一個安全的只讀命令。如果不需要此功能,可以省略該權限。MCP 服務器將通過不宣傳文檔工具來優雅地處理這種情況。
💻 使用示例
可用的 MCP 工具
| 工具 |
描述 |
參數 |
示例用法 |
search |
使用語義搜索 JSR 軟件包 |
query,limit(可選) |
search query="web framework" limit=10 |
find_similar |
查找與特定軟件包相似的軟件包 |
packageName,limit(可選) |
find_similar packageName="@std/http" limit=6 |
discover |
按類別/用例發現軟件包 |
category,limit(可選) |
discover category="web frameworks" limit=8 |
compare |
並排比較多個軟件包 |
packages(數組) |
compare packages=["@std/testing", "@deno/testing"] |
scope_packages |
瀏覽 JSR 作用域中的所有軟件包 |
scope |
scope_packages scope="std" |
package_details |
獲取軟件包的詳細信息 |
scope,packageName |
package_details scope="std" packageName="http" |
package_downloads |
查看滾動窗口的下載統計信息 |
scope,packageName |
package_downloads scope="std" packageName="http" |
package_file |
檢索軟件包文件內容 |
scope,packageName,version,filePath |
package_file scope="std" packageName="http" version="1.0.0" filePath="mod.ts" |
docs |
獲取軟件包文檔 |
module |
docs module="@std/path" |
search_status |
檢查搜索功能和連接 |
無 |
search_status |
MCP 參數參考
| 參數 |
類型 |
描述 |
默認值 |
使用場景 |
query |
字符串 |
搜索查詢(自然語言或關鍵詞) |
必需 |
search |
packageName |
字符串 |
帶或不帶作用域的軟件包名稱 |
必需 |
find_similar、package_details、package_downloads、package_file |
category |
字符串 |
用例或技術類別 |
必需 |
discover |
packages |
數組 |
要比較的軟件包名稱數組 |
必需 |
compare |
scope |
字符串 |
JSR 作用域名稱(例如,"std"、"orgsoft") |
必需 |
scope_packages、package_details、package_downloads、package_file |
version |
字符串 |
軟件包版本(例如,"1.0.0"、"latest") |
必需 |
package_file |
filePath |
字符串 |
軟件包內文件的路徑 |
必需 |
package_file |
module |
字符串 |
模塊標識符(例如,"@std/path") |
必需 |
docs |
limit |
數字 |
最大結果數 |
6 - 20(可變) |
search、find_similar、discover |
MCP 使用示例
search query="web framework" limit=10
find_similar packageName="@std/http" limit=6
discover category="machine learning" limit=8
compare packages=["@std/testing", "@deno/testing", "@fresh/testing"]
scope_packages scope="std"
package_details scope="std" packageName="http"
package_downloads scope="std" packageName="http"
package_file scope="std" packageName="http" version="1.0.0" filePath="mod.ts"
docs module="@std/path"
search_status
CLI 使用
該軟件包包含一個全面的命令行界面,用於所有 JSR 搜索和分析功能。
CLI 命令
| 命令 |
描述 |
用法 |
示例 |
search |
使用語義搜索 JSR 軟件包 |
search <query> [--limit=10] [--enhanced] |
search "web framework" --limit 5 |
similar |
查找與給定軟件包相似的軟件包 |
similar <package> [--limit=6] |
similar "@std/http" --limit 3 |
details |
獲取軟件包的詳細信息 |
details <scope> <package> |
details std path |
downloads |
查看全面的下載統計信息 |
downloads <scope> <package> |
downloads std http |
scope |
列出 JSR 作用域中的所有軟件包 |
scope <scope-name> |
scope std |
file |
從軟件包中檢索文件內容 |
file <scope> <package> <version> <file-path> |
file std http 1.0.0 mod.ts |
exists |
檢查軟件包是否存在 |
exists <scope> <package> |
exists std nonexistent |
help |
顯示幫助信息 |
help [command] |
help search |
version |
顯示 CLI 版本 |
version |
version |
CLI 選項
| 選項 |
描述 |
命令 |
示例 |
--limit=N |
限制結果數量 |
search、similar |
--limit=5 |
--enhanced |
使用增強相關性搜索模式 |
search |
--enhanced |
--help, -h |
顯示幫助信息 |
所有 |
--help |
CLI 示例
deno run jsr:@orgsoft/jsr search "web framework" --limit 5
deno run jsr:@orgsoft/jsr similar @std/http --limit 3
deno run jsr:@orgsoft/jsr details @std/path
deno run jsr:@orgsoft/jsr downloads std http
deno run jsr:@orgsoft/jsr scope std
deno run jsr:@orgsoft/jsr file @std/http 1.0.0 mod.ts
deno run jsr:@orgsoft/jsr exists @std/nonexistent
deno run jsr:@orgsoft/jsr search "http client" --enhanced --limit 10
TypeScript 模塊使用
基礎搜索
import { relevanceSearch } from "jsr:@orgsoft/jsr";
const results = await relevanceSearch("web framework", { limit: 10 });
console.log(results.hits.map(hit => hit.document.name));
軟件包信息
import { getPackageDetails, getPackageDownloadSummary } from "jsr:@orgsoft/jsr";
const packageInfo = await getPackageDetails("std", "http");
console.log(packageInfo);
const downloads = await getPackageDownloadSummary("std", "http");
console.log(`總下載量: ${downloads.totalDownloads}`);
console.log(`每週平均下載量: ${downloads.weeklyAverage}`);
console.log(`最近每週的下載總量: ${downloads.weeklySums.join(', ')}`);
相似軟件包發現
import { findSimilarPackages } from "jsr:@orgsoft/jsr"
const similar = await findSimilarPackages("@std/http", { limit: 5 });
similar.forEach(pkg => {
console.log(`${pkg.document.scope}/${pkg.document.name} - 得分: ${pkg.score}`);
});
🔧 技術細節
組件
- Orama 雲集成:通過 Orama 的託管服務進行語義搜索,JSR.io 使用該服務。
- JSR API 客戶端:直接與 JSR 的 REST API 集成,以獲取詳細的軟件包信息。
- MCP 協議服務器:為 AI 助手提供的模型上下文協議服務器。
- 字符串格式化和聚合:呈現邏輯。
文件
| 文件 |
用途 |
描述 |
mod.ts |
主入口點 |
主要模塊,導出所有公共函數並處理 CLI 和 MCP 服務器模式之間的路由 |
cli.ts |
命令行界面 |
CLI 實現,包含用於軟件包搜索、發現和分析的命令 |
mcp.ts |
MCP 服務器 |
模型上下文協議服務器,為 AI 助手提供與 JSR 交互的工具 |
common.ts |
核心 API 庫 |
用於 JSR API 集成和 Orama 搜索操作的核心函數、類型和實用工具 |
format.ts |
輸出格式化 |
用於搜索結果、軟件包詳細信息和下載統計信息的字符串格式化和呈現邏輯 |
README.md |
主文檔 |
全面的使用指南、示例和 API 參考 |
📚 詳細文檔
你可以在 jsr:@orgsoft/jsr/doc 瀏覽該軟件包的完整 TypeScript 文檔。
相關鏈接