Layer 01
MCP
Connect
Your agent speaks standard Model Context Protocol over stdio — no plugins, no gateways, no cloud. Claude, Cursor, or any MCP client works.
AI-native testing bridge // open.mp + SA-MP
A Model Context Protocol bridge that lets an AI agent start, drive, and verify a local open.mp / SA-MP server through a headless RakClient — 77 tools over stdio. Testable. Local. Verifiable.
scroll
// How it works
Keep scrolling — the bridge stacks itself, layer by layer.
Layer 01
MCP
Your agent speaks standard Model Context Protocol over stdio — no plugins, no gateways, no cloud. Claude, Cursor, or any MCP client works.
Layer 02
RakClient
A headless RakClient joins your local open.mp / SA-MP server over UDP loopback — a real game client, with no window and no desktop footprint.
Layer 03
spawn-gated
Commands are spawn-gated and checked against an allowlist parsed from your Pawn source. Flood, spam, lag injection, and arbitrary RCON: off the table.
Layer 04
round-trip
Every command is an evidence-based round-trip: sent, received by the gamemode callback, answered by the server, then asserted by the bridge.
// 3D Architecture Core
Representasi visual model 3D inti server MCP. Mengontrol bridge I/O stream secara terisolasi tanpa latency external.
// Headless RakClient Orbit
Ring data luar merepresentasikan koneksi headless RakClient yang terhubung langsung ke port SA-MP/open.mp via UDP loopback lokal.
// State Inspector
Setiap putaran rotasi memproses 77+ tool events secara real-time: textdraws, vehicle physics, body heading, dan dialog capture.
// Realtime Visual Observer
Off-screen visual window renderer yang mengekstrak bukti frame game PrintWindow lossless secara simultan ke agent AI.
// Features
Everything the bridge does — and nothing it won't. Local servers only, proof in every response.
LIFECYCLE
server_start, server_status, server_stop — plus a matching start / status / stop lifecycle for the headless RakClient.
ALLOWLIST
Slash commands are gated until the bot is Spawned, then checked against an allowlist parsed straight from your Pawn source.
ASSERTION
Every command is sent, received by the gamemode callback, answered, and asserted by the bridge. No blind assumptions.
OBSERVER
Run a real rendered client parked off-screen and capture PNG screenshots of the game window via PrintWindow.
// MCP Tools
Lifecycle, driving, dialog and textdraw awareness, key sequences, world scanning — and a visual observer that screenshots a real rendered client.
// The agent loop
The reference workflow an agent follows. Boot is not proof, and neither is joining or spawning — only an asserted round-trip counts.
// Quickstart
Windows, Linux, macOS — Python 3.10+. The bridge speaks stdio, so wire it into Claude, Cursor, or any MCP client.
# 1 · clone + venv git clone https://github.com/marhenrik635-oss/mcponmysamp.git cd mcponmysamp py -3 -m venv .venv .venvScriptsactivate python -m pip install ".[dev]" # 2 · run the bridge (stdio) mcp-gta-samp --config local-server.json --client-executable D:/Games/RakClient/rakclient.exe --client-arg --server --client-arg 127.0.0.1:7777 --client-arg --nick --client-arg MCPBot
Everything runs against localhost. The bridge never touches a public server, and ships no game binaries — point it at your own open.mp install.
Copy config.example.json → local-server.json, set your executable paths, and let the agent do the rest.
Free to use, fork, and extend. Built as an AI-native integration testing foundation for SA-MP / open.mp.