Install
$ agentstack add mcp-wyattjoh-jsr-mcp ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
JSR MCP
A Deno monorepo containing packages for JSR (JavaScript Registry) access:
- [@wyattjoh/jsr](packages/jsr) - Core library for JSR API access
- [@wyattjoh/jsr-mcp](packages/jsr-mcp) - Model Context Protocol (MCP) server for LLM integration
Features
- Search packages across the JSR registry
- Get package details, versions, and dependencies
- Manage scopes and package publishing
- Handle member invitations and permissions
- Access registry statistics and metadata
- Full authentication support for write operations
Requirements
- Deno 2.x or later
- Network access to JSR API
- JSR API token for authenticated operations (optional)
Packages
@wyattjoh/jsr
Core library for accessing JSR API:
deno add @wyattjoh/jsr
import { getPackage, searchPackages } from "@wyattjoh/jsr";
const results = await searchPackages({ query: "react" });
const pkg = await getPackage("deno", "std");
[See full documentation](packages/jsr/README.md)
@wyattjoh/jsr-mcp
MCP server for LLM integration:
# Run directly from JSR
deno run --allow-net --allow-env jsr:@wyattjoh/jsr-mcp
# Or install globally
deno install --global --allow-net --allow-env -n jsr-mcp jsr:@wyattjoh/jsr-mcp
For Claude Desktop app integration, add this to your claude_desktop_config.json:
{
"mcpServers": {
"jsr": {
"command": "deno",
"args": [
"run",
"--allow-net",
"--allow-env",
"jsr:@wyattjoh/jsr-mcp"
],
"env": {
"JSR_API_TOKEN": "your-api-token-here"
}
}
}
}
Option 2: From Source
- Clone this repository
- Install dependencies:
``bash deno cache packages/*/mod.ts ``
- Run the server:
``bash deno run --allow-net --allow-env packages/jsr-mcp/mod.ts ``
Available Tools
The MCP server provides 40 tools for comprehensive JSR access:
Package Operations
- jsrsearchpackages - Search for packages
- jsrgetpackage - Get package details
- jsrgetpackage_version - Get specific version details
- jsrlistpackage_versions - List all versions
- jsrgetpackage_metadata - Get package metadata
- jsrgetpackage_dependencies - Get dependencies
- jsrgetpackage_score - Get package quality score
- jsrgetpackage_dependents - Find dependent packages
- jsrcreatepackage - Create new package (requires auth)
- jsrupdatepackage - Update package (requires auth)
- jsrdeletepackage - Delete package (requires auth)
Package Version Management
- jsrcreatepackage_version - Upload new version (requires auth)
- jsrupdatepackage_version - Update version, e.g., yank (requires auth)
Scope Management
- jsrgetscope - Get scope details
- jsrlistscope_packages - List packages in a scope
- jsrcreatescope - Create new scope (requires auth)
- jsrupdatescope - Update scope settings (requires auth)
- jsrdeletescope - Delete scope (requires auth)
Member Management
- jsrlistscope_members - List scope members
- jsraddscope_member - Invite member (requires auth)
- jsrupdatescope_member - Update member role (requires auth)
- jsrremovescope_member - Remove member (requires auth)
- jsrlistscope_invites - List pending invites
- jsrdeletescope_invite - Delete scope invite (requires auth)
- jsracceptscope_invite - Accept invite (requires auth)
- jsrdeclinescope_invite - Decline invite (requires auth)
User Operations
- jsrgetcurrent_user - Get authenticated user
- jsrgetcurrentuserscopes - Get user's scopes
- jsrgetcurrentuserscope_member - Get user's membership in a scope
- jsrgetcurrentuserinvites - Get user's pending invites
- jsrgetuser - Get user details
- jsrgetuser_scopes - Get user's scopes
Registry Operations
- jsrlistpackages - List all registry packages
- jsrgetstats - Get registry statistics
Authorization (OAuth)
- jsrcreateauthorization - Start authorization flow (requires auth)
- jsrgetauthorization_details - Get authorization details
- jsrapproveauthorization - Approve authorization (requires auth)
- jsrdenyauthorization - Deny authorization (requires auth)
- jsrexchangeauthorization - Exchange code for token (requires auth)
Publishing
- jsrgetpublishing_task - Get publishing task status
Example Usage
// Search for packages
jsr_search_packages({ query: "react", limit: 10 });
// Get package details
jsr_get_package({ scope: "deno", name: "std" });
// List versions with pagination
jsr_list_package_versions({
scope: "deno",
name: "std",
limit: 20,
page: 1,
});
// Get dependencies for a specific version
jsr_get_package_dependencies({
scope: "deno",
name: "std",
version: "1.0.0",
});
// Create a new scope (requires authentication)
jsr_create_scope({
scope: "my-org",
description: "My organization's packages",
});
Security Notes
- Read operations do not require authentication
- Write operations require a valid JSR API token
- The server only accesses the JSR API endpoints
- No local file system access beyond reading environment variables
Development
This is a Deno workspace monorepo. All commands run from the root affect all packages.
# Clone the repository
git clone https://github.com/wyattjoh/jsr-mcp.git
cd jsr-mcp
# Cache dependencies
deno cache packages/*/mod.ts
# Format all code
deno fmt
# Lint all packages
deno lint
# Type check all packages
deno check packages/jsr/mod.ts packages/jsr-mcp/mod.ts
# Run tests
deno test --allow-net packages/
# Run MCP server locally (with watch mode)
deno run --allow-read --allow-write --allow-env --allow-run --allow-net --watch packages/jsr-mcp/mod.ts
# Run MCP server in production
deno run --allow-read --allow-write --allow-env --allow-run --allow-net packages/jsr-mcp/mod.ts
# Build binary
cd packages/jsr-mcp
deno compile --allow-read --allow-write --allow-env --allow-run --allow-net --output=jsr-mcp mod.ts
# Publish packages (CI/CD)
deno publish
Working on Individual Packages
# Work on @wyattjoh/jsr
cd packages/jsr
deno test --allow-net
# Work on @wyattjoh/jsr-mcp
cd packages/jsr-mcp
deno run --allow-net --allow-env mod.ts
License
MIT
Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: wyattjoh
- Source: wyattjoh/jsr-mcp
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.