返回市场
脚本运行器

脚本运行器

作者:orgsofthq8 星标更新:2025-07-23

项目介绍

@orgsoft/jsr

JSR

一个用于探索跨jsr.io包的MCP服务器、CLI工具和TypeScript库。

JSR是一个现代的JavaScript仓库,是NPM的替代品,提供丰富的TypeScript支持、现代特性以及与Deno的无缝集成。

@orgsoft/jsr的特点包括由Orama驱动的语义搜索、包下载分析以及从任何包或范围中检索文件和文档的能力。这提升了你的开发工作流程,特别是在使用Deno和AI编码工具时。

特性

  • 📊 包详情:任何JSR包的版本信息、下载趋势及文件/文档列表
  • 🔗 相似度搜索:发现与现有包或搜索查询相关的包
  • 🖥️ CLI、MCP或DIY:完整的命令行界面、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包query, limit (可选)search query="web framework" limit=1.0
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范围内的所有包scopescope_packages scope="std"
package_details获取详细的包信息scope, packageNamepackage_details scope="std" packageName="http"
package_downloads查看滚动窗口的下载统计scope, packageNamepackage_downloads scope="std" packageName="http"
package_file获取包文件内容scope, packageName, version, filePathpackage_file scope="std" packageName="http" version="1.0.0" filePath="mod.ts"
docs获取包文档moduledocs 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使用示例

# 搜索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 <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版本versionversion

CLI选项

选项描述命令示例
--limit=N限制结果的数量search, similar--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命令行界面实现包搜索、发现和分析的命令行
mcp.tsMCP服务器提供工具供AI助手与JSR交互的模型上下文协议服务器
common.ts核心API库核心函数、类型和实用工具,用于JSR API集成和Orama搜索操作
format.ts输出格式化搜索结果、包详情和下载统计的字符串格式化和呈现逻辑
README.md主要文档全面的使用指南、示例和API参考

API参考

浏览此包的完整TypeScript文档:jsr:@orgsoft/jsr/doc

相关链接