Token导航 LogoToken导航TokenDH.com
Palworld MCP Server Discord Bot logo
开发工具未说明官方级别未说明来源级核验

Palworld MCP Server Discord Bot

MCP Server

一个通过Discord或MCP客户端管理和运行Palworld服务器脚本的工具,支持动态列出脚本、运行指定脚本及可选的本地AI模型集成。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
ShellToken认证开发工具

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

J-Code-Sigma

提供方

J-Code-Sigma

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Palworld MCP服务器和Discord Bot

此项目允许您通过Discord或任何MCP客户端运行和管理您的Palworld服务器脚本。它支持:

  • 运行任何 .sh 指定目录中的脚本
  • 动态列出可用脚本
  • (可选)使用本地Ollama AI模型进行建议或自动化

______________________________________________________________________

1.先决条件

  • 安装了Palworld服务器的Ubuntu 22.04服务器
  • Node.js和npm
  • Discord帐户和服务器,您可以在其中添加机器人
  • (可选)Ollama本地安装

如果尚未安装Node.js,请安装:

sudo apt update
sudo apt install nodejs npm -y

______________________________________________________________________

2.Discord Bot设置

  1. 转到Discord开发者门户: https://discord.com/developers/applications
  2. 创建新应用程序并添加Bot
  3. 复制Bot令牌
  4. 在OAuth2->URL生成器下:

- 范围: bot - 权限: Send Messages, Read Messages - 使用生成的URL邀请机器人到您的服务器

  1. 记下您的Discord用户ID,将命令限制为您自己

______________________________________________________________________

3.MCP服务器设置

mkdir ~/palworld-mcp
cd ~/palworld-mcp
npm init -y
npm install @modelcontextprotocol/server

创建 server.js:

import { Server } from "@modelcontextprotocol/server";
import { execFile } from "child_process";
import fs from "fs";
import path from "path";

const SCRIPTS_DIR = "/home/steam";

function getAvailableScripts() {
    return fs.readdirSync(SCRIPTS_DIR)
        .filter(file => file.endsWith(".sh"))
        .map(file => path.basename(file));
}

function runScript(scriptName) {
    return new Promise((resolve) => {
        const scriptPath = path.join(SCRIPTS_DIR, scriptName);
        if (!fs.existsSync(scriptPath) || !scriptPath.startsWith(SCRIPTS_DIR)) {
            resolve(`Script not found or not allowed: ${scriptName}`);
            return;
        }
        execFile("bash", [scriptPath], { cwd: SCRIPTS_DIR }, (error, stdout, stderr) => {
            if (error) { resolve(`Error: ${error.message}`); return; }
            if (stderr) { resolve(`stderr: ${stderr}`); return; }
            resolve(stdout);
        });
    });
}

const server = new Server({
    name: "palworld-script-runner",
    version: "1.0.0",
    tools: {
        list_scripts: {
            description: "Lists all available .sh scripts",
            parameters: {},
            execute: async () => {
                const scripts = getAvailableScripts();
                return { content: [{ type: "text", text: scripts.join("\n") }] };
            }
        },
        run_script: {
            description: "Runs a specific .sh script",
            parameters: {
                scriptName: { type: "string", description: "The script file to run" }
            },
            execute: async ({ scriptName }) => {
                const output = await runScript(scriptName);
                return { content: [{ type: "text", text: output }] };
            }
        }
    }
});

server.listen();
console.log(`MCP Server running — watching ${SCRIPTS_DIR}`);

运行服务器:

node server.js

______________________________________________________________________

4.Discord Bot设置

mkdir ~/palworld-discord
cd ~/palworld-discord
npm init -y
npm install discord.js node-fetch

创建 bot.js:

import { Client, GatewayIntentBits } from "discord.js";
import fetch from "node-fetch";

const TOKEN = "YOUR_DISCORD_BOT_TOKEN";
const ALLOWED_USER_IDS = ["YOUR_DISCORD_USER_ID"];
const MCP_SERVER_URL = "http://localhost:3000/tools";

const client = new Client({
    intents: [GatewayIntentBits.Guilds, GatewayIntentBits.GuildMessages, GatewayIntentBits.MessageContent]
});

async function callMCPTool(toolName, params = {}) {
    const res = await fetch(`${MCP_SERVER_URL}/${toolName}`, {
        method: "POST",
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify(params)
    });
    const data = await res.json();
    return data?.content?.[0]?.text || "No output.";
}

client.on("ready", () => {
    console.log(`Logged in as ${client.user.tag}`);
});

client.on("messageCreate", async (message) => {
    if (message.author.bot) return;
    if (!ALLOWED_USER_IDS.includes(message.author.id)) return;

    if (message.content.toLowerCase().startsWith("!listscripts")) {
        const output = await callMCPTool("list_scripts");
        await message.channel.send(`\`\`\`${output.substring(0, 1900)}\`\`\``);
    }

    if (message.content.toLowerCase().startsWith("!runscript")) {
        const parts = message.content.split(" ");
        if (parts.length ");
        const scriptName = parts[1];
        const output = await callMCPTool("run_script", { scriptName });
        await message.channel.send(`\`\`\`${output.substring(0, 1900)}\`\`\``);
    }
});

client.login(TOKEN);

运行机器人程序:

node bot.js

nohup node bot.js &

______________________________________________________________________

5.可选:Olama集成

安装Ollama:

curl -fsSL https://ollama.com/install.sh | sh

拉一个模型:

ollama pull llama3

MCP工具示例:

ask_ollama: {
    description: "Ask the local AI model",
    parameters: { prompt: { type: "string" } },
    execute: async ({ prompt }) => {
        const res = await fetch('http://localhost:11434/api/generate', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ model: 'llama3', prompt })
        });
        const data = await res.json();
        return { content: [{ type: "text", text: data.output_text }] };
    }
}

Discord命令:

!askai "How do I fix Palworld crash logs?"

______________________________________________________________________

6.使用方法

Discord命令

!listscripts         → List all .sh scripts in /home/steam
!runscript update.sh → Run a specific script
!runscript restart.sh → Restart server via script
!askai 
      → Ask local Ollama AI (optional)

MCP工具

list_scripts → Returns available scripts
run_script   → Runs a specific script
ask_ollama   → (Optional) Queries local AI model

______________________________________________________________________

7.注意事项和安全

  • MCP服务器仅在内部运行脚本 /home/steam
  • 将Discord机器人命令限制为您的用户ID
  • 使脚本可执行:
chmod +x /home/steam/*.sh
  • Ollama在本地运行-不需要外部API调用

目录标签

目录标签

ShellToken认证开发工具本地部署游戏服务器管理脚本自动化Discord机器人AI集成

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

token

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明token部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP