JSR包管理工具

一个用于探索JSR.io上包的MCP服务器、CLI工具和TypeScript库,提供语义搜索、包下载分析和文件/文档检索功能,特别适合与Deno和AI编码工具一起使用。

  • by orgsofthq
  • TypeScript
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 orgsofthq/jsr

使用说明

@orgsoft/jsr

一个MCP服务器、CLI实用程序和TypeScript库,用于跨平台探索包 jsr.io.

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

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

特性

  • 📊 包装详情:任何JSR包的版本信息、下载趋势和文件/文档列表
  • 🔗 相似性搜索:发现与现有包或搜索查询相关的包
  • 🖥️ CLI、MCP或DIY:功能齐全的命令行界面、MCP服务器和导出函数

安装

首先,确保最新版本的 迪诺 已安装。

作为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 找到这条路)

作为命令行实用程序

您可以使用命令行实用程序,而无需安装任何东西,除了 迪诺.

# Discover web frameworks on JSR
deno run jsr:@orgsoft/jsr search "web frameworks"

# Find similar projects to this one 
deno run jsr:@orgsoft/jsr similar @orgsoft/jsr

# Same as above, but with permissions granted ahead of time
deno run --allow-net --allow-run jsr:@orgsoft/jsr similar @orgsoft/jsr

CLI安装

您还可以通过以下方式永久安装它 deno install:

# Install with default name of "jsr"
deno install -frAg jsr:@orgsoft/jsr # --name [or-some-other-name]

# Get details of @std/http
jsr details @std/http

# Get documentation of @std/http
jsr docs @std/http

# Activate MCP server
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 string 搜索查询(自然语言或关键字) 必填 search
packageName string 带或不带作用域的包名称 必需 find_similar, package_details, package_downloads, package_file
category string 用例或技术类别 必填 discover
packages array 要比较的包名数组 必填 compare
scope string JSR作用域名称(例如“std”、“orgsoft”) 必填 scope_packages, package_details, package_downloads, package_file
version string 包版本(例如“1.0.0”、“最新”) 必填 package_file
filePath string 包内文件的路径 必填 package_file
module string 模块标识符(例如“@std/path”) 必填 docs
limit number 最大结果数 6-20(各不相同) search, find_similar, discover

MCP使用示例

# Search for web frameworks
search query="web framework" limit=10

# Find packages similar to @std/http  
find_similar packageName="@std/http" limit=6

# Discover machine learning libraries
discover category="machine learning" limit=8

# Compare testing frameworks
compare packages=["@std/testing", "@deno/testing", "@fresh/testing"]

# Browse all packages in @std scope
scope_packages scope="std"

# Get detailed package information
package_details scope="std" packageName="http"

# View download statistics with rolling windows
package_downloads scope="std" packageName="http"

# Retrieve a specific file from a package version
package_file scope="std" packageName="http" version="1.0.0" filePath="mod.ts"

# Get package documentation
docs module="@std/path"

# Check search system status
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示例

# Search for web frameworks
deno run jsr:@orgsoft/jsr search "web framework" --limit 5

# Find packages similar to @std/http
deno run jsr:@orgsoft/jsr similar @std/http --limit 3

# Get detailed information about a package
deno run jsr:@orgsoft/jsr details @std/path

# View download statistics with rolling windows
deno run jsr:@orgsoft/jsr downloads std http

# List all packages in the @std scope
deno run jsr:@orgsoft/jsr scope std

# Get a specific file from a package version
deno run jsr:@orgsoft/jsr file @std/http 1.0.0 mod.ts

# Check if a package exists
deno run jsr:@orgsoft/jsr exists @std/nonexistent

# Enhanced search with better relevance
deno run jsr:@orgsoft/jsr search "http client" --enhanced --limit 10

TypeScript模块使用

基本搜索

import { relevanceSearch } from "jsr:@orgsoft/jsr";

// Basic search
const results = await relevanceSearch("web framework", { limit: 10 });
console.log(results.hits.map(hit => hit.document.name));

包裹信息

import { getPackageDetails, getPackageDownloadSummary } from "jsr:@orgsoft/jsr";

// Get detailed package info
const packageInfo = await getPackageDetails("std", "http");
console.log(packageInfo);

// Get comprehensive download statistics
const downloads = await getPackageDownloadSummary("std", "http");
console.log(`Total downloads: ${downloads.totalDownloads}`);
console.log(`Weekly average: ${downloads.weeklyAverage}`);
console.log(`Recent weekly totals: ${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} - Score: ${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参考资料

api参考

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

相关链接