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

SillyTavern용 MCP 확장

이 확장 기능은 SillyTavern에 WebSocket 기반 도구 실행 지원을 추가하여 표준화된 인터페이스를 통해 외부 도구를 등록하고 실행할 수 있도록 합니다.

특징

  • 실시간 통신을 위한 WebSocket 서버
  • 도구 등록 및 실행 시스템
  • 도구 정의에 대한 JSON 스키마 검증
  • 실시간 실행 상태 업데이트
  • 구성 가능한 로깅 및 WebSocket 설정
  • SillyTavern에 통합된 웹 기반 설정 UI

설치

방법 1: 웹 인터페이스(권장)

SillyTavern 웹 인터페이스를 통해 설치하는 방법에 대한 단계별 지침은 INSTRUCTIONS.md를 참조하세요.

방법 2: 수동 설치

  1. 이 저장소를 SillyTavern 플러그인 디렉토리에 복제하세요.지엑스피1
  2. 종속성 설치:
    cd mcp-extension npm install
  3. SillyTavern을 다시 시작하세요

구성

확장 기능은 SillyTavern UI의 설정 > 확장 기능 > MCP 확장 기능을 통해 구성할 수 있습니다.

사용 가능한 설정

  • WebSocket 포트 : WebSocket 서버의 포트 번호(기본값: 5005)
  • 로그 수준 : 로깅 상세 수준(디버그, 정보, 경고, 오류)

용법

도구 등록

도구를 등록하려면 다음 형식의 WebSocket 메시지를 보내세요.

{ "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"] } } }

도구 실행

등록된 도구를 실행하려면 다음 형식의 WebSocket 메시지를 보내세요.

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

실행 상태 업데이트

확장 기능은 연결된 모든 클라이언트에 실행 상태 업데이트를 브로드캐스트합니다.

실행이 시작되었습니다

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

실행 완료

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

실행 실패

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

오류 코드

  • INVALID_NAME : 잘못된 도구 이름입니다.
  • INVALID_SCHEMA : 잘못된 도구 스키마
  • INVALID_URI : 잘못된 리소스 URI
  • INVALID_HANDLER : 잘못된 핸들러 구현
  • INVALID_ARGUMENTS : 잘못된 도구 인수입니다.
  • TOOL_EXISTS : 도구가 이미 등록되었습니다.
  • TOOL_NOT_FOUND : 도구를 찾을 수 없습니다
  • TOOL_EXECUTION_FAILED : 도구 실행에 실패했습니다.
  • SERVER_ERROR : 내부 서버 오류

개발

프로젝트 구조

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

새로운 도구 추가

새로운 도구를 추가하려면:

  1. WebSocket 서버에 연결
  2. 스키마를 사용하여 도구를 등록하세요
  3. 실행 요청을 수신합니다
  4. 실행을 처리하고 결과를 반환합니다.

도구 구현 예시:

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 } })); } };

기여하다

  1. 저장소를 포크하세요
  2. 기능 브랜치 생성
  3. 변경 사항을 커밋하세요
  4. 지점으로 밀어 넣기
  5. 풀 리퀘스트 만들기

지원하다

문제가 발생하거나 질문이 있는 경우:

  1. 기존 문제는 GitHub 이슈에서 확인하세요.
  2. 문제가 보고되지 않은 경우 새 문제를 생성하세요.
  3. 지원을 받으려면 SillyTavern Discord 커뮤니티에 가입하세요.

특허

MIT 라이센스 - 자세한 내용은 라이센스 파일을 참조하세요.

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

WebSocket 기반 통신을 통해 외부 도구 등록 및 실행을 지원하여 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