🚀 @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 文档。
相关链接