Odel
Ask262

Ask262

@bendtherulesDeveloper ToolsHTMLUpdated 3w ago

MCP server for understanding Javascript internals from ECMAScript specification.

Server endpointStreamable HTTP

This is the third-party server itself — Odel doesn't run it. Hitting this URL directly talks straight to the upstream server with no auth or proxying. Connect through Odel to front it with managed auth.

Ask262

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

šŸŽ® Try it now

The fastest way to tinker with JavaScript internals:

  • Ask262 Chat — Ask questions in natural language (register new account)
  • MCP Inspector — Direct access to all mcp tools, no signup needed
  • npx add-mcp "https://ask262.bendtherules.in/mcp"

Features

  • Vector search ECMAScript specification sections using semantic queries
  • Execute JavaScript in engine262 and capture spec sections, with ask262Debug.startImportant() to mark the key parts of your code
  • Knowledge graph mapping spec sections to implementation functions
  • 1-second timeout on code execution for safety

Available Tools

ToolDescription
ask262_search_spec_sectionsVector search ECMAScript spec for relevant sections
ask262_get_section_contentRetrieve full content from a spec section
ask262_evaluate_in_engine262Execute JS and capture spec sections, with "important" marking to focus on relevant parts

Quick Start (Hosted Instance)

Use the hosted MCP server without any local setup:

Preferred Method: npx add-mcp

Install ask262 MCP server to your client with one command:

npx add-mcp "https://ask262.bendtherules.in/mcp"

Manual Configuration

If you prefer to configure manually:

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
    }
  }
}

Local Installation

Prerequisites

  • Bun: Version 1.0.0 or higher (install)
  • Ollama: Installed with qwen3-embedding:8b
    (ollama pull qwen3-embedding:8b)

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:

EndpointDescription
GET /healthHealth check
GET/POST /mcpMCP 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