Jsr

Jsr

🚀 @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 之外,你无需安装任何其他东西即可使用该命令行实用工具。

# 在 JSR 上搜索 Web 框架
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 进行永久安装:

# 使用默认名称 "jsr" 进行安装
deno install -frAg jsr:@orgsoft/jsr # --name [or-some-other-name]

# 获取 @std/http 的详细信息
jsr details @std/http

# 获取 @std/http 的文档
jsr docs @std/http

# 启动 MCP 服务器
jsr mcp

⚠️ 重要提示

为提高安全性,建议使用 必要的最小权限指定固定的版本号。你应该始终审查在计算机上执行的代码,由于 Deno 具有权限系统、开源程序和沙盒模型,因此它非常适合进行此类审查。

请注意,这些安装说明中包含的 --allow-run 权限 仅在 MCP 服务器的 jsr docs 命令中需要,该命令仅用于运行 deno doc,这是一个安全的只读命令。如果不需要此功能,可以省略该权限。MCP 服务器将通过不宣传文档工具来优雅地处理这种情况。

💻 使用示例

可用的 MCP 工具

工具 描述 参数 示例用法
search 使用语义搜索 JSR 软件包 querylimit(可选) search query="web framework" limit=10
find_similar 查找与特定软件包相似的软件包 packageNamelimit(可选) find_similar packageName="@std/http" limit=6
discover 按类别/用例发现软件包 categorylimit(可选) discover category="web frameworks" limit=8
compare 并排比较多个软件包 packages(数组) compare packages=["@std/testing", "@deno/testing"]
scope_packages 浏览 JSR 作用域中的所有软件包 scope scope_packages scope="std"
package_details 获取软件包的详细信息 scopepackageName package_details scope="std" packageName="http"
package_downloads 查看滚动窗口的下载统计信息 scopepackageName package_downloads scope="std" packageName="http"
package_file 检索软件包文件内容 scopepackageNameversionfilePath 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_similarpackage_detailspackage_downloadspackage_file
category 字符串 用例或技术类别 必需 discover
packages 数组 要比较的软件包名称数组 必需 compare
scope 字符串 JSR 作用域名称(例如,"std"、"orgsoft") 必需 scope_packagespackage_detailspackage_downloadspackage_file
version 字符串 软件包版本(例如,"1.0.0"、"latest") 必需 package_file
filePath 字符串 软件包内文件的路径 必需 package_file
module 字符串 模块标识符(例如,"@std/path") 必需 docs
limit 数字 最大结果数 6 - 20(可变) searchfind_similardiscover

MCP 使用示例

# 搜索 Web 框架
search query="web framework" limit=10

# 查找与 @std/http 类似的软件包
find_similar packageName="@std/http" limit=6

# 发现机器学习库
discover category="machine learning" limit=8

# 比较测试框架
compare packages=["@std/testing", "@deno/testing", "@fresh/testing"]

# 浏览 @std 作用域中的所有软件包
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 [--limit=10] [--enhanced] search "web framework" --limit 5
similar 查找与给定软件包相似的软件包 similar [--limit=6] similar "@std/http" --limit 3
details 获取软件包的详细信息 details details std path
downloads 查看全面的下载统计信息 downloads downloads std http
scope 列出 JSR 作用域中的所有软件包 scope scope std
file 从软件包中检索文件内容 file file std http 1.0.0 mod.ts
exists 检查软件包是否存在 exists exists std nonexistent
help 显示帮助信息 help [command] help search
version 显示 CLI 版本 version version

CLI 选项

选项 描述 命令 示例
--limit=N 限制结果数量 searchsimilar --limit=5
--enhanced 使用增强相关性搜索模式 search --enhanced
--help, -h 显示帮助信息 所有 --help

CLI 示例

# 搜索 Web 框架
deno run jsr:@orgsoft/jsr search "web framework" --limit 5

# 查找与 @std/http 类似的软件包
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

# 列出 @std 作用域中的所有软件包
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 文档。

相关链接

  • 0 关注
  • 0 收藏,25 浏览
  • system 提出于 2025-09-23 08:00

相似服务问题

相关AI产品