MCP server for exploring the ECMAScript specification and its implementation in engine262.
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
- 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
| 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 and capture spec sections, with "important" marking to focus on relevant parts |
Use the hosted MCP server without any local setup:
Install ask262 MCP server to your client with one command:
npx add-mcp "https://ask262.bendtherules.in/mcp"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
}
}
}- Bun: Version 1.0.0 or higher (install)
- Ollama: Installed with
qwen3-embedding:8b
(ollama pull qwen3-embedding:8b)
# Clone and install
git clone https://github.com/bendtherules/ask262
cd ask262
bun install
# Or install globally
bun install -g ask262Copy .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:11434Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"ask262": {
"command": "bunx",
"args": ["ask262"]
}
}
}{
"mcpServers": {
"ask262": {
"url": "http://localhost:8081/mcp"
}
}
}⬇️ Required for HTTP config above:
bun run ask262-http # start HTTP serverOpenCode (~/.config/opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"ask262": {
"type": "local",
"command": ["bunx", "ask262"],
"enabled": true
}
}
}{
"$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.
# 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-sectionsFor development or using a custom ECMAScript specification:
-
Clone and setup:
git clone https://github.com/bendtherules/ask262 cd ask262 bun install -
Ensure 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 ingest
-
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, orbun run release -- --no-bump
ISC