The getSectionContent tool schema and implementation now use `childrenSectionIds` (array of strings) instead of the previous pagination fields `partIndex` and `totalParts`. Updated Zod schema, output types, data handling, and returned objects accordingly. This change simplifies section handling by focusing on child section relationships rather than pagination.
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 ask262
Environment Configuration
Copy .env.example and configure:
cp .env.example .env
Key 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: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:
-
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 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