npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

ask262

v0.0.15

Published

MCP server for understanding Javascript internals from ECMAScript specification. Provides vector search over the ECMAScript spec, section content retrieval, and JavaScript code execution with spec section tracing via engine262.

Readme

Ask262

MCP server for exploring the ECMAScript specification and its implementation in engine262.

Features

  • Vector search ECMAScript specification sections using semantic queries
  • Execute JavaScript in engine262 and capture which spec sections are hit
  • Knowledge graph mapping spec sections to implementation functions
  • 1-second timeout on code execution for safety

Available Tools

| Tool | Description | |------|-------------| | ask262_search_spec_sections | Vector search ECMAScript spec for relevant sections | | ask262_get_section_content | Retrieve full content from a spec section | | ask262_evaluate_in_engine262 | Execute JS in engine262 and capture spec section marks |

Quick Start (Hosted Instance)

Use the hosted MCP server without any local setup:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "ask262": {
      "url": "https://ask262.bendtherules.in/mcp"
    }
  }
}

OpenCode (~/.config/opencode/opencode.json):

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ask262": {
      "type": "remote",
      "url": "https://ask262.bendtherules.in/mcp",
      "enabled": true
    }
  }
}

Experiment with the Inspector:

Visit https://ask262.bendtherules.in/ to access the MCP Inspector UI. This provides an interactive interface to test all available tools with custom inputs.

Local Installation

Prerequisites

  • Bun: Version 1.0.0 or higher (install)
  • Ollama: Installed locally with qwen3-embedding:0.6b model pulled (ollama pull qwen3-embedding:0.6b)

Setup

# Clone and install
git clone https://github.com/bendtherules/ask262
cd ask262
bun install

# Or install globally
bun install -g ask262

Environment Configuration

Copy .env.example and configure:

cp .env.example .env

Key variables:

  • ASK262_EMBEDDING_PROVIDER: Choose ollama (local) or fireworks (cloud). Default: ollama
  • OLLAMA_HOST: Ollama server URL. Default: http://localhost:11434
  • FIREWORKS_API_KEY: Required if using Fireworks. Get from https://app.fireworks.ai
  • ASK262_PORT: HTTP server port. Default: 8081

Example .env:

# Use Fireworks for embeddings (faster, cloud-based)
ASK262_EMBEDDING_PROVIDER=fireworks
FIREWORKS_API_KEY=fw_your_key_here

# Or use local Ollama (default)
# ASK262_EMBEDDING_PROVIDER=ollama
# OLLAMA_HOST=http://localhost:11434

Local MCP Configuration

Claude Desktop (claude_desktop_config.json):

stdio (no server needed)

{
  "mcpServers": {
    "ask262": {
      "command": "bunx",
      "args": ["ask262"]
    }
  }
}

http (requires server)

{
  "mcpServers": {
    "ask262": {
      "url": "http://localhost:8081/mcp"
    }
  }
}

⬇️ Required for HTTP config above:

bun run ask262-http # start HTTP server

OpenCode (~/.config/opencode/opencode.json):

stdio (no server needed)

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ask262": {
      "type": "local",
      "command": ["bunx", "ask262"],
      "enabled": true
    }
  }
}

http (requires server)

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ask262": {
      "type": "remote",
      "url": "http://localhost:8081/mcp",
      "enabled": true
    }
  }
}

⬇️ Required for HTTP config above:

bun run ask262-http # start HTTP server

HTTP Server Endpoints:

| Endpoint | Description | |----------|-------------| | GET /health | Health check | | GET/POST /mcp | MCP protocol endpoint | | GET / | MCP Inspector UI (auto-connects to /mcp) |

Note: /mcp is defined before the inspector's catch-all / route to ensure proper request handling.

Testing

# Run MCP server tests
bun run test-mcp-server

# Test evaluate tool with timeout
bun run test-evaluate-timeout

# Test search functionality
bun run test-search-spec-sections

Development

For development or using a custom ECMAScript specification:

  1. Clone and setup:

    git clone https://github.com/bendtherules/ask262
    cd ask262
    bun install
  2. Ensure spec is present:

    • ./spec-built/multipage/ - Built ECMAScript spec HTML files

    Steps -

    1. git clone https://github.com/tc39/ecma262
    2. npm i && npm run build
    3. copy out/ from ecma262 to spec-built/ in this repo
  3. Build vectors (lancedb)

    bun run ingest
  4. Release to npm (maintainers only):

    bun run release

    This will:

    • Check for uncommitted git changes
    • Bump patch version (e.g., 0.0.1 → 0.0.2)
    • Fix any hard links in storage/
    • Run checks and release

    Other options: bun run release -- --minor, bun run release -- --major, or bun run release -- --no-bump

License

ISC