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.
Maintainers
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.6bmodel 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 ask262Environment Configuration
Copy .env.example and configure:
cp .env.example .envKey variables:
ASK262_EMBEDDING_PROVIDER: Chooseollama(local) orfireworks(cloud). Default:ollamaOLLAMA_HOST: Ollama server URL. Default:http://localhost:11434FIREWORKS_API_KEY: Required if using Fireworks. Get from https://app.fireworks.aiASK262_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:11434Local 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 serverOpenCode (~/.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 serverHTTP 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-sectionsDevelopment
For development or using a custom ECMAScript specification:
Clone and setup:
git clone https://github.com/bendtherules/ask262 cd ask262 bun installEnsure spec is present:
./spec-built/multipage/- Built ECMAScript spec HTML files
Steps -
git clone https://github.com/tc39/ecma262npm i && npm run build- copy
out/from ecma262 tospec-built/in this repo
Build vectors (lancedb)
bun run ingestRelease to npm (maintainers only):
bun run releaseThis 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, orbun run release -- --no-bump
License
ISC
