SillyTavern MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Provides community support through the SillyTavern Discord, allowing users to get help with the MCP extension

  • Offers integration with GitHub for issue tracking, contribution management, and community support through the project's GitHub repository

Extensión MCP para SillyTavern

Esta extensión agrega soporte de ejecución de herramientas basada en WebSocket a SillyTavern, lo que permite registrar y ejecutar herramientas externas a través de una interfaz estandarizada.

Características

  • Servidor WebSocket para comunicación en tiempo real
  • Sistema de registro y ejecución de herramientas
  • Validación de esquemas JSON para definiciones de herramientas
  • Actualizaciones del estado de ejecución en tiempo real
  • Configuración de registro y WebSocket configurables
  • Interfaz de usuario de configuración basada en web integrada en SillyTavern

Instalación

Método 1: Interfaz web (recomendado)

Consulte INSTRUCCIONES.md para obtener instrucciones paso a paso sobre la instalación a través de la interfaz web de SillyTavern.

Método 2: Instalación manual

  1. Clona este repositorio en tu directorio de complementos de SillyTavern:
    cd /path/to/SillyTavern/plugins git clone https://github.com/CG-Labs/SillyTavern-MCP-Extension.git mcp-extension
  2. Instalar dependencias:
    cd mcp-extension npm install
  3. Reiniciar SillyTavern

Configuración

La extensión se puede configurar a través de la interfaz de usuario de SillyTavern en Configuración > Extensiones > Extensión MCP.

Configuraciones disponibles

  • Puerto WebSocket : el número de puerto para el servidor WebSocket (predeterminado: 5005)
  • Nivel de registro : nivel de verbosidad del registro (depuración, información, advertencia, error)

Uso

Registrar una herramienta

Para registrar una herramienta, envíe un mensaje WebSocket con el siguiente formato:

{ "type": "register_tool", "data": { "name": "example_tool", "schema": { "type": "object", "properties": { "param1": { "type": "string", "description": "First parameter" }, "param2": { "type": "number", "description": "Second parameter" } }, "required": ["param1"] } } }

Ejecución de una herramienta

Para ejecutar una herramienta registrada, envíe un mensaje WebSocket con el siguiente formato:

{ "type": "execute_tool", "data": { "executionId": "unique_execution_id", "name": "example_tool", "args": { "param1": "value1", "param2": 42 } } }

Actualizaciones del estado de ejecución

La extensión transmite actualizaciones del estado de ejecución a todos los clientes conectados:

Ejecución iniciada

{ "type": "tool_execution_started", "data": { "executionId": "unique_execution_id", "name": "example_tool", "args": { "param1": "value1", "param2": 42 } } }

Ejecución completada

{ "type": "tool_execution_completed", "data": { "executionId": "unique_execution_id", "result": { // Tool-specific result data } } }

Ejecución fallida

{ "type": "tool_execution_failed", "data": { "executionId": "unique_execution_id", "error": { "code": "ERROR_CODE", "message": "Error message" } } }

Códigos de error

  • INVALID_NAME : Nombre de herramienta no válido
  • INVALID_SCHEMA : Esquema de herramienta no válido
  • INVALID_URI : URI de recurso no válido
  • INVALID_HANDLER : Implementación de controlador no válida
  • INVALID_ARGUMENTS : Argumentos de herramienta no válidos
  • TOOL_EXISTS : Herramienta ya registrada
  • TOOL_NOT_FOUND : Herramienta no encontrada
  • TOOL_EXECUTION_FAILED : Falló la ejecución de la herramienta
  • SERVER_ERROR : Error interno del servidor

Desarrollo

Estructura del proyecto

mcp-extension/ ├── index.js # Main plugin entry point ├── manifest.json # Plugin manifest ├── package.json # Dependencies and scripts ├── public/ # Public assets │ ├── script.js # Client-side JavaScript │ ├── style.css # Client-side styles │ └── templates/ # HTML templates ├── utils/ # Utility modules │ ├── errors.js # Error handling │ ├── logger.js # Logging utility │ └── validation.js # Input validation └── README.md # This documentation

Agregar nuevas herramientas

Para agregar una nueva herramienta:

  1. Conectarse al servidor WebSocket
  2. Registre su herramienta con un esquema
  3. Escuchar solicitudes de ejecución
  4. Manejar la ejecución y devolver resultados

Ejemplo de implementación de la herramienta:

const ws = new WebSocket('ws://localhost:5005'); ws.onopen = () => { // Register tool ws.send(JSON.stringify({ type: 'register_tool', data: { name: 'example_tool', schema: { type: 'object', properties: { input: { type: 'string' } }, required: ['input'] } } })); }; ws.onmessage = (event) => { const message = JSON.parse(event.data); if (message.type === 'execute_tool' && message.data.name === 'example_tool') { // Handle execution const result = doSomething(message.data.args.input); // Send result ws.send(JSON.stringify({ type: 'tool_execution_completed', data: { executionId: message.data.executionId, result } })); } };

Contribuyendo

  1. Bifurcar el repositorio
  2. Crear una rama de características
  3. Confirme sus cambios
  4. Empujar hacia la rama
  5. Crear una solicitud de extracción

Apoyo

Si encuentra algún problema o tiene preguntas:

  1. Consulte los problemas de GitHub para ver los problemas existentes
  2. Crea un nuevo problema si tu problema no ha sido reportado
  3. Únete a la comunidad Discord de SillyTavern para obtener ayuda.

Licencia

Licencia MIT: consulte el archivo de LICENCIA para obtener más detalles

-
security - not tested
F
license - not found
-
quality - not tested

Permite el registro y la ejecución de herramientas externas a través de la comunicación basada en WebSocket, proporcionando una interfaz unificada para la gestión de herramientas en tiempo real dentro de SillyTavern.

  1. Features
    1. Installation
      1. Method 1: Web Interface (Recommended)
      2. Method 2: Manual Installation
    2. Configuration
      1. Available Settings
    3. Usage
      1. Registering a Tool
      2. Executing a Tool
      3. Execution Status Updates
    4. Error Codes
      1. Development
        1. Project Structure
        2. Adding New Tools
      2. Contributing
        1. Support
          1. License
            ID: pg6z0acepi