@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/jsrCLI安装
您还可以通过以下方式永久安装它 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安全通知
值得注意的是 --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_statusCLI使用情况
该软件包包括一个全面的命令行界面,用于所有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 | 限制结果数量 | 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 10TypeScript模块使用
基本搜索
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.
