skript-mcp

skript-mcp

Enables interaction with a Minecraft server using Skript scripting language. Provides tools for checking and reloading Skript files, executing Minecraft commands, and retrieving server logs.

Category
Visit Server

README

Skript MCP

This project exposes a small MCP server backed by a permanently running Paper server. Paper, Skript, and the installed addons are the parser: the Python code does not attempt to understand Skript syntax itself.

The default image contains this compatibility profile:

Component Version
Java 21
Paper 1.21.4 build 232
Skript 2.14.3
SkBee 3.16.1
skript-reflect 2.6.3
skript-gui 1.4.0

Every downloaded jar is checked during the image build. Override all related URLs and checksums together in .env to use another authoritative profile. Never update only one addon without verifying the complete set.

Skript 2.14.3 is intentional for the 1.21.4 profile. SkBee 3.16.1 is the last SkBee release for Minecraft 1.21.4, and newer Skript 2.15/2.16 releases collide with its Adventure audience type registration. Newer Skript requires moving the whole profile to a newer Minecraft and SkBee release.

Start Paper

Run the setup script. It checks Docker and uv, creates .env with a random RCON password, installs dependencies, builds Paper, and verifies RCON:

./setup.sh

For manual setup, create a local environment file and replace the password with a long random value containing only letters, numbers, dots, underscores, or hyphens:

cp .env.example .env
docker compose build
docker compose up -d --wait

Set PUID and PGID in .env to the output of id -u and id -g. They default to 1000 and let Paper read the host-created mode-0600 temporary files.

Paper logs are mounted at runtime/logs. Host scripts are mounted directly at /server/plugins/Skript/scripts from scripts. World and plugin-generated data remain disposable container state. Only RCON is published, and it is bound to 127.0.0.1:25575; the gameplay port is not published.

Check startup and plugin versions with:

docker compose logs paper
docker compose exec paper sh -c 'nc -z 127.0.0.1 25575'

Run the MCP server

Install and run it with uv:

uv sync
uv run --env-file .env skript-mcp

The MCP process reads these environment variables:

Variable Default
RCON_PASSWORD Required
RCON_HOST 127.0.0.1
RCON_PORT 25575
SKRIPT_SCRIPTS_DIR scripts
MINECRAFT_LOG_PATH runtime/logs/latest.log
RCON_TIMEOUT 5 seconds
RELOAD_TIMEOUT 30 seconds
MAX_SCRIPT_BYTES 1048576

For OpenCode, add a local MCP entry and pass the same RCON password through the environment:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "skript": {
      "type": "local",
      "command": ["uv", "run", "--directory", "/absolute/path/to/skript-mcp", "--env-file", "/absolute/path/to/skript-mcp/.env", "skript-mcp"],
      "enabled": true,
      "environment": {}
    }
  }
}

Restart OpenCode after changing its configuration.

Tools

  • skript_check_file(path) validates an existing .sk file by path. Relative paths are resolved under SKRIPT_SCRIPTS_DIR; absolute paths are accepted when they point inside that directory. It reloads the complete script set so functions and other shared definitions from sibling scripts are available.
  • skript_reload_file(path) reloads one existing path inside SKRIPT_SCRIPTS_DIR without reloading its siblings.
  • minecraft_command(command) runs a privileged command over local RCON.
  • minecraft_logs(lines=200) returns a bounded tail of latest.log.
  • skript_reset() removes only stale __mcp_check_<uuid>.sk files.

Reload operations are serialized. Diagnostics are parsed primarily from the RCON response because Skript deliberately redirects command diagnostics away from normal server logging; bytes appended to latest.log after the operation offset are captured and merged as a secondary source.

Safety

skript_check_file performs a real reload of every enabled script, not a sandboxed parse. Source containing on load handlers or addon behavior can modify the world, files, or external systems. Only check trusted scripts, and treat minecraft_command and the RCON password as full administrator access.

Run unit tests with:

uv run pytest

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured