Onyx MCP Server
Busca y consulta la documentación del lenguaje de programación Onyx y ejemplos de código en GitHub.
Documentación
Onyx MCP Server
Un servidor de Model Context Protocol (MCP) que proporciona acceso de búsqueda y consulta a la documentación del lenguaje de programación Onyx y a ejemplos de código de GitHub. El servidor incluye capacidades integrales de rastreo para poblar datos, pero el rastreo NO es accesible a través de la interfaz MCP, lo que garantiza una separación limpia entre la recopilación de datos y la funcionalidad de consulta.
🚀 Inicio Rápido
⚡ Acceso Instantáneo con NPX (¡Sin Instalación Requerida!)
Configura Claude Desktop (u otro LLM compatible con MCP):
{
"mcpServers": {
"onyx": {
"command": "npx",
"args": ["@onyxlang/mcp-server", "bridge", "--url", "https://mcp.onyxlang.io"]
}
}
}
🎆 ¡Eso es todo! Sin instalación, sin configuración, sin necesidad de rastreo de datos. Obtienes acceso instantáneo a la documentación y ejemplos más recientes de Onyx.
Instalación
Opción 1: Instalar desde npm (Recomendado)
# Install globally
npm install -g @onyxlang/mcp-server
# Or install locally in your project
npm install @onyxlang/mcp-server
Opción 2: Instalar desde el código fuente
git clone https://github.com/onyx-lang/onyx-mcp-server.git
cd onyx-mcp-server
npm install
cp .env.example .env
# Edit .env and add your GitHub token (optional but recommended)
Uso
Si se instala globalmente:
# Start MCP server
onyx-mcp server
# Start HTTP server
onyx-mcp http
# Start bridge to hosted server
onyx-mcp bridge --url https://mcp.onyxlang.io
# Crawl data (if running locally)
onyx-mcp crawl all
Si se instala localmente o desde el código fuente:
# Use npm scripts with arguments
npm start # MCP server
npm run http # HTTP server on default port (3001)
npm run http -- --port 3002 # HTTP server on custom port
npm run bridge # Bridge to default (localhost:3001)
npm run bridge -- --url https://mcp.onyxlang.io # Bridge to hosted server
npm run crawl:all # Crawl all data
# Or run directly
node src/index.js server
node src/index.js http --port 3002
node src/index.js bridge --url https://mcp.onyxlang.io
Uso Básico
# Start the MCP server (default)
npm start
# Start the HTTP server for REST API access
npm run http
npm run http -- --port 3002 # Custom port
# Start the MCP-to-HTTP bridge (connects to local or remote HTTP server)
npm run bridge
npm run bridge -- --url https://mcp.onyxlang.io # Connect to hosted server
# Run with development mode
npm run dev # MCP server
npm run http:dev # HTTP server
# Run tests
npm test
# Crawl data to populate the MCP (CLI only, not through MCP interface)
npm run crawl:all
🎯 Interfaz del Servidor
El sistema proporciona tanto funcionalidad de consulta MCP como rastreo basado en CLI:
# MCP Server operations (query/search only)
node src/index.js server # Start MCP server
node src/index.js server --dev # Development mode
node src/index.js http # Start HTTP server
node src/index.js http --port 3002 # HTTP server on custom port
node src/index.js bridge # Start MCP-to-HTTP bridge
node src/index.js bridge --url https://mcp.onyxlang.io # Connect to hosted server
# Using npm scripts (with argument passing)
npm start # MCP server
npm run http # HTTP server (port 3001)
npm run http -- --port 3002 # HTTP server on custom port
npm run bridge # Bridge to localhost:3001
npm run bridge -- --url https://mcp.onyxlang.io # Bridge to hosted server
# Data crawling (CLI only - NOT accessible through MCP)
node src/index.js crawl docs # Documentation only
node src/index.js crawl github repo1 repo2 # Specific repositories
node src/index.js crawl url https://... # Single URL
node src/index.js crawl all # Everything
# Utilities
node src/index.js test # Run test suite
node src/index.js validate # Validate setup
📁 Estructura del Proyecto
onyx_mcp/
├── src/
│ ├── bridge.js # 🌉 MCP-to-HTTP bridge for remote access
│ ├── index.js # 🎯 Unified entry point
│ ├── mcp-server.js # 🌐 MCP server implementation
│ ├── mcp-http.js # 🌐 MCP over HTTP server implementation
│ ├── test.js # 🧪 Test suite
│ ├── validate.js # ✅ Setup validation
│ ├── crawlers/ # 📡 Data crawlers
│ │ ├── docs.js # - Documentation crawler
│ │ ├── github.js # - GitHub repository crawler
│ │ └── urls.js # - URL content crawler
│ └── core/ # 🔧 Core functionality
│ └── search-engine.js # - Search and indexing
├── data/ # 📊 Crawled data (auto-generated)
├── .env.example # 🔐 Environment template
└── package.json # 📦 Dependencies & scripts
🛠️ Herramientas MCP Disponibles
El servidor proporciona estas herramientas de búsqueda y consulta de solo lectura a Claude:
📚 Documentación
search_onyx_docs- Buscar documentación oficial
🐙 Integración con GitHub
search_github_examples- Buscar código por temaget_onyx_functions- Definiciones de funciones desde GitHubget_onyx_structs- Definiciones de estructuras desde GitHublist_github_repos- Listar repositorios disponibles
🔍 Búsqueda Unificada
search_all_sources- Buscar en todas las fuentes de datos
🚀 Ejecución de Código
run_onyx_code- Ejecutar código Onyx y devolver salida/errores para pruebas y depuraciónrun_wasm- Ejecutar código WebAssembly y devolver salida/errores para pruebas y depuraciónbuild_onyx_code- Compilar archivo de código Onyx usando "onyx build" en un directorio especificadoonyx_pkg_build- Compilar un paquete Onyx usando "onyx pkg build" en un directorio especificado
⚠️ Nota Importante
Las herramientas de rastreo están disponibles a través del CLI pero intencionalmente NO son accesibles a través de la interfaz MCP. Esto garantiza una separación limpia entre la recopilación de datos y la funcionalidad de consulta.
🔧 Configuración
Variables de Entorno (.env)
# GitHub token (recommended for higher rate limits)
GITHUB_TOKEN=your_github_token_here
# Optional settings
DEBUG=false
MAX_CRAWL_LIMIT=50
🌐 Integración con Claude Desktop
Puedes conectarte al Onyx MCP de múltiples maneras:
⚡ Opción 1: Puente NPX (Instalación Cero)
Para servidor alojado (siempre actualizado):
{
"mcpServers": {
"onyx": {
"command": "npx",
"args": ["@onyxlang/mcp-server", "bridge", "--url", "https://mcp.onyxlang.io"]
}
}
}
Opción 2: Servidor MCP Local (Para Desarrollo)
{
"mcpServers": {
"onyx": {
"command": "node",
"args": ["/path/to/onyx_mcp/src/index.js", "server"]
}
}
}
Opción 3: Conectar a Servidor Alojado Personalizado mediante Puente
{
"mcpServers": {
"onyx": {
"command": "node",
"args": ["/path/to/onyx_mcp/src/index.js", "bridge", "--url", "https://mcp.onyxlang.io"],
}
}
}
Opción 4: Servidor HTTP Local + Puente
Para probar el puente localmente:
- Inicia el servidor HTTP:
npm run http --port 3002 - Configura Claude Desktop para usar el puente:
{ "mcpServers": { "onyx": { "command": "node", "args": ["/path/to/onyx_mcp/src/index.js", "bridge", "--url", "http://localhost:3002"] } } }
Para Desarrollo (Configuración Local)
-
Clona y configura:
git clone <repository> cd onyx_mcp npm install cp .env.example .env -
Puebla los datos:
npm run crawl:all -
Inicia el servidor MCP:
npm start -
Configura Claude Desktop con el servidor local (consulta la sección de integración arriba)
Para Producción (Servidor Alojado)
-
Clona y configura:
git clone <repository> cd onyx_mcp npm install -
Inicia el servidor HTTP:
npm run http -
Configura Claude Desktop con el puente (consulta la sección de integración arriba)
Arquitectura del Puente
El puente te permite conectar el protocolo MCP a servidores HTTP:
Claude Desktop → MCP Bridge → HTTP Server (Local or Remote)
Beneficios:
- ✅ Conectar al Onyx MCP alojado en
mcp.onyxlang.io - ✅ Sin necesidad de ejecutar un servidor local ni poblar datos
- ✅ Siempre actualizado con la información más reciente de Onyx
- ✅ Misma interfaz MCP, diferente backend
- ✅ Cambio fácil entre servidores locales y remotos
🔄 Bucle de Pruebas y Retroalimentación de Código
Las herramientas de ejecución de código permiten a Claude probar, compilar y refinar código Onyx mediante retroalimentación iterativa:
Herramientas Disponibles:
run_onyx_code- Ejecutar código en sandbox para pruebas rápidasbuild_onyx_code- Compilar archivos de código en el directorio especificado por el usuarioonyx_pkg_build- Compilar paquetes Onyx completos en el directorio del proyecto del usuario
Cómo Funciona:
- Claude escribe código Onyx basado en tus requisitos
- Prueba con
run_onyx_codepara validación rápida (sandbox) - Compila con
build_onyx_codeen tu directorio de proyecto - Lee los errores de compilación de la salida
- Analiza y corrige problemas - sintaxis, importaciones, dependencias
- Compila paquetes con
onyx_pkg_builden tu directorio de proyecto - Repite hasta el éxito - ¡código compilado y funcional en tu directorio!
Flujos de Trabajo de Ejemplo:
Pruebas Rápidas:
User: "Write a function to calculate fibonacci numbers"
1. Claude writes initial code
2. Tests with run_onyx_code (sandbox)
3. Sees errors and fixes them
4. Code runs successfully
Compilación de Proyectos:
User: "Build this code in my project at /home/user/myproject"
1. Claude uses build_onyx_code with directory: "/home/user/myproject"
2. Sees build errors and fixes imports
3. Creates working executable in user's directory
4. User can run the built program directly
Desarrollo de Paquetes:
User: "Build my Onyx package in /home/user/onyx-lib"
1. Claude uses onyx_pkg_build with directory: "/home/user/onyx-lib"
2. Fixes package configuration issues
3. Creates complete built package in user's directory
4. User can distribute/use the package
Beneficios:
- ✅ Código autocorrectivo - Claude puede corregir sus propios errores
- ✅ Validación real - Realmente ejecuta el código, no solo verifica sintaxis
- ✅ Aprendizaje de errores - Mejora las sugerencias basándose en la retroalimentación del compilador de Onyx
- ✅ Refinamiento iterativo - Sigue mejorando hasta que el código funcione perfectamente
- ✅ Confianza en los resultados - Sabes que el código realmente compila y se ejecuta
Requisitos:
- El compilador de Onyx debe estar instalado y disponible en PATH
- Instalar desde: https://onyxlang.io/
- La herramienta ejecuta código en un directorio temporal aislado (sandbox)
- El tiempo de espera predeterminado de 10 segundos (configurable) previene bucles infinitos
📊 Fuentes de Datos y Rastreo
El sistema incluye capacidades integrales de rastreo para poblar datos:
📚 Fuentes de Documentación
- Documentación oficial de Onyx
- Archivos de tutoriales y guías
- Documentación de API
- Materiales de referencia del lenguaje
🐙 Fuentes de GitHub
- Repositorios del lenguaje Onyx
- Ejemplos de código y tutoriales
- Documentación de paquetes y bibliotecas
- Archivos de configuración y configuraciones de proyectos
📁 Tipos de Archivo Soportados
- Archivos fuente
.onyx - Archivos de configuración
.kdl - Archivos README, documentación y guías
- Páginas de documentación HTML
- Configuraciones de paquetes (
onyx.pkg, etc.)
🔄 Proceso de Población de Datos
- Usa comandos de rastreo CLI para poblar el directorio
data/ - El servidor MCP busca en los datos pre-rastreados
- No hay disparadores de rastreo disponibles a través de la interfaz MCP
📡 Rastreo Mejorado de GitHub
El rastreador de GitHub extrae contenido integral:
📚 Documentación:
- README.md, LICENSE, CHANGELOG.md
- Toda la documentación en carpetas
docs/ - Documentación HTML y páginas web
- Archivos de tutoriales y guías
🔧 Configuración:
- Archivos
.kdl(gestión de proyectos Onyx) onyx.pkgy configuraciones de paquetes- Configuraciones TOML, YAML, JSON
💻 Código Fuente:
- Todos los archivos fuente
.onyx - Archivos de ejemplo y tutoriales
- Ejemplos HTML e interfaces web
🌐 Contenido Web:
- Páginas de documentación HTML
- Ejemplos y demostraciones interactivas
- Tutoriales y guías basados en web
- Documentación de API en formato HTML
Gestión de Repositorios
# Crawl specific repositories
node src/index.js crawl github onyx-lang/onyx user/project
# With various URL formats
node src/index.js crawl github \
https://github.com/onyx-lang/onyx \
github.com/user/repo \
owner/project
🧪 Pruebas y Validación
# Quick validation
npm run validate
# Full test suite
npm test
# Expected results: 100% pass rate
Las pruebas validan:
- ✅ Integridad de la estructura de archivos
- ✅ Funcionalidad de importación de módulos
- ✅ Operaciones del directorio de datos
- ✅ Configuraciones del rastreador
- ✅ Manejo de errores del motor de búsqueda
💡 Ejemplos de Uso
Una vez conectado a Claude Desktop:
"Show me examples of HTTP requests in Onyx"
"How do I define a struct with KDL configuration?"
"What are the available string manipulation functions?"
"Find PostgreSQL ORM examples in Onyx repositories"
🔧 Sistema de Contexto Configurable
Mensaje de Contexto Global
Todas las respuestas de las herramientas MCP incluyen un mensaje de contexto configurable que se puede modificar fácilmente en la parte superior de src/mcp-server.js:
// =============================================================================
// CONFIGURABLE CONTEXT MESSAGE
// =============================================================================
// This message will be prepended to all MCP tool responses.
// Modify this section to customize the context provided to the assistant.
const GLOBAL_CONTEXT_MESSAGE = `You are assisting with Onyx programming language queries...`;
Esto te permite:
- Personalizar el contexto del asistente para consultas de Onyx
- Proporcionar orientación consistente en todas las respuestas de las herramientas
- Actualizar instrucciones fácilmente sin modificar herramientas individuales
- Mantener coherencia de contexto a lo largo de las conversaciones
🚀 Principios Clave de Diseño
Seguridad y Separación de Preocupaciones
- La interfaz MCP es de solo lectura - no puede disparar rastreo ni modificación de datos
- Rastreo disponible a través del CLI - control total sobre la recopilación de datos
- Arquitectura limpia - recopilación de datos separada de la funcionalidad de consulta
- Sin llamadas API externas a través de las herramientas MCP
Experiencia de Usuario Mejorada
- Contexto consistente en todas las respuestas
- Mensajería específica por herramienta para mayor claridad
- Manejo integral de errores con contexto
- Compatibilidad heredada para flujos de trabajo existentes
🔍 Flujo de Datos
- Los comandos de rastreo CLI pueblan las fuentes de datos en el directorio
data/ - El motor de búsqueda indexa y proporciona capacidades de búsqueda unificada
- El servidor MCP expone herramientas de búsqueda de solo lectura a Claude
- Claude recibe respuestas contextuales con mensajería configurable
- El sistema de contexto garantiza orientación consistente y útil en todas las respuestas
- No hay disparadores de rastreo disponibles a través de la interfaz MCP
📈 Rendimiento
- Caché eficiente previene re-rastreos innecesarios
- Limitación de velocidad respeta los límites de API
- Procesamiento paralelo para múltiples repositorios
- Manejo integral de errores para confiabilidad
Este servidor MCP proporciona a Claude acceso seguro y de solo lectura al conocimiento del lenguaje de programación Onyx a través de un sistema de contexto configurable. Las capacidades integrales de rastreo están disponibles mediante comandos CLI pero intencionalmente no son accesibles a través de la interfaz MCP, lo que garantiza una separación limpia entre la recopilación de datos y la funcionalidad de consulta.