MCP on My SAMP
MCP on My SAMP
Область применения: локальные серверы или серверы, которыми вы владеете/на которые у вас есть разрешение. Это не инструмент для автоматизации публичных серверов.
Что умеет?
MCP on My SAMP позволяет AI-агенту тестировать игровые серверы с помощью воспроизводимых рабочих процессов:
запуск / остановка / проверка статуса open.mp;
запуск / остановка / проверка статуса headless RakClient;
ожидание фактического перехода клиента в состояние
Spawned;отправка разрешённых slash-команд;
чтение истории вывода клиента;
проверка того, что ответ сервера получен клиентом;
поиск команд в исходном коде Pawn-гаммода;
отклонение команд, не входящих в allowlist.
Не предоставляет flood, спам, инъекцию задержек, произвольный RCON или автоматизацию публичных серверов.
Рабочий процесс
flowchart LR
A[AI Agent] -->|MCP stdio| B[MCP on My SAMP]
B --> C[open.mp Server]
B --> D[Headless RakClient]
D -->|UDP localhost| C
C -->|server response| D
D --> B
B -->|assertion| AДоказательство корректного round-trip:
command dikirim
→ server callback menerima command
→ gamemode mengirim response
→ client menerima response
→ MCP assertion berhasilСостояние Spawned само по себе не является доказательством успешного выполнения команды.
Установка
1. Подготовьте Python
Требуется Python 3.10 или новее.
2. Установите проект
Выполните из корня репозитория:
Windows
py -3 -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip
python -m pip install ".[dev]"Linux / macOS
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install ".[dev]"3. Проверка
pytest -qОжидаемый вывод:
35 passedБинарные файлы open.mp и RakClient требуются только для live-тестов. Модульные тесты Python можно запускать и без этих бинарных файлов.
Конфигурация
Создайте локальный файл конфигурации из шаблона:
Windows
copy config.example.json local-server.jsonLinux / macOS
cp config.example.json local-server.jsonЗаполните файл:
{
"executable": "vendor/openmp/Server/omp-server.exe",
"working_dir": "vendor/openmp/Server",
"args": ["--config-path", "config.json"],
"ready_text": "Legacy Network started on port",
"startup_timeout": 30
}Измените executable и working_dir в соответствии с расположением open.mp на вашем компьютере. local-server.json не попадает в Git, поскольку пути на каждом компьютере разные.
Запуск MCP-сервера
Только сервер
mcp-gta-samp --config local-server.jsonС headless RakClient
Windows
mcp-gta-samp ^
--config local-server.json ^
--client-executable vendor/rakclient-bin/rakclient.exe ^
--client-arg --server ^
--client-arg 127.0.0.1:7777 ^
--client-arg --nick ^
--client-arg MCPBot ^
--client-arg --scripts-dir ^
--client-arg vendor/rakclient-bin/scripts ^
--gamemode-source vendor/openmp/Server/gamemodes/mcp_test.pwnLinux / macOS
mcp-gta-samp \
--config local-server.json \
--client-executable vendor/rakclient-bin/rakclient \
--client-arg --server \
--client-arg 127.0.0.1:7777 \
--client-arg --nick \
--client-arg MCPBot \
--client-arg --scripts-dir \
--client-arg vendor/rakclient-bin/scripts \
--gamemode-source vendor/openmp/Server/gamemodes/mcp_test.pwnТранспорт MCP использует stdio.
MCP-инструменты
Tool | Функция |
| Запускает сервер и ожидает готовности. |
| Проверяет статус сервера и PID. |
| Останавливает сервер. |
| Запускает headless RakClient. |
| Проверяет статус клиента. |
| Останавливает клиент. |
| Отправляет разрешённую slash-команду после |
| Получает буферизованный вывод клиента. |
| Проверяет, что определённый вывод получен клиентом. |
| Показывает команды из исходного кода Pawn. |
| Проверяет команду на соответствие allowlist. |
Последние два инструмента доступны, если используется --gamemode-source.
Рабочий процесс для AI-агента
1. server_status
2. server_start jika belum berjalan
3. client_start
4. tunggu state Spawned
5. server_list_commands
6. server_assert_command("/help")
7. client_send_chat("/help")
8. client_assert_output("MCP Test Commands:")
9. client_get_history bila perlu diagnosis
10. client_stop
11. server_stopВажные инструкции для агента:
не обращаться к публичным серверам;
не считать boot, join или
Spawnedподтверждением round-trip команды;при сбое классифицировать границу: boot, соединение, спавн, очередь, исходящий пакет, серверный callback, ответ сервера, клиентский парсер или assertion MCP;
всегда останавливать процессы после теста;
убедиться, что UDP-порт
7777снова свободен.
Пример live-теста
Тестовый гаммод доступен по адресу:
vendor/openmp/Server/gamemodes/mcp_test.pwnДоступные команды:
/help
/statusЕсли исходный код Pawn изменён, перекомпилируйте .amx из папки сервера:
qawno\pawncc.exe -i.\qawno\include -o.\gamemodes\mcp_test .\gamemodes\mcp_test.pwnLive-рабочий процесс:
server_start
→ client_start
→ client mencapai Spawned
→ client_send_chat("/help")
→ client_assert_output("MCP Test Commands:")
→ client_assert_output("/status - show a test response")
→ client_stop
→ server_stopHeadless RakClient доказывает протокол, состояние и команды. Он не создаёт скриншоты. Для визуального тестирования требуется отдельный отрендеренный GTA-клиент.
Разработка
Запуск тестов:
pytest -qСоздание wheel:
python -m pip wheel . --no-deps -w distУстановка wheel:
python -m pip install dist/mcp_gta_samp-0.1.0-py3-none-any.whlОсновная структура:
mcp_gta_samp/ package Python dan MCP facade
tests/ unit, contract, dan bridge tests
config.example.json template konfigurasi
vendor/ binary dan fixture live testБезопасность
Этот MCP ограничивает использование локальными/принадлежащими вам серверами. Не помещайте учётные данные, прокси-пулы, приватные конфиги, приватные логи или данные тестовых серверов в публичный репозиторий.
Если вы запускаете сервер из интернета, добавьте собственную аутентификацию и сетевую изоляцию. Этот пакет не предназначен для использования в качестве публичного API управления играми.
Лицензия
Лицензия MIT. См. LICENSE.
Ссылки
Репозиторий: marhenrik635-oss/mcponmysamp
Issues: сообщить о проблеме
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
Connect AI agents to Flato's editable canvas runtime through a hosted MCP server.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/marhenrik635-oss/mcponmysamp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server