{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.Mr-Macharia/mpesa-daraja-mcp","description":"Safaricom M-Pesa Daraja tools: STK Push, C2B, B2C, B2B, QR, Ratiba. Sandbox-first, idempotent.","title":"M-Pesa Daraja","repository":{"url":"https://github.com/Mr-Macharia/mpesa-daraja-skills-and-mcp","source":"github","subfolder":"mcp-server"},"version":"0.1.6","packages":[{"registryType":"pypi","identifier":"mpesa-daraja-mcp","version":"0.1.6","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Daraja app Consumer Key","isRequired":true,"isSecret":true,"name":"DARAJA_CONSUMER_KEY"},{"description":"Daraja app Consumer Secret","isRequired":true,"isSecret":true,"name":"DARAJA_CONSUMER_SECRET"},{"description":"sandbox (default) or production","name":"DARAJA_ENV"},{"description":"Paybill / store number (174379 in sandbox)","name":"DARAJA_SHORTCODE"},{"description":"M-Pesa Express passkey (STK Push)","isSecret":true,"name":"DARAJA_PASSKEY"},{"description":"API operator username (B2C, B2B, status, balance, reversal)","name":"DARAJA_INITIATOR_NAME"},{"description":"Encrypted initiator password","isSecret":true,"name":"DARAJA_SECURITY_CREDENTIAL"},{"description":"Public HTTPS base for callback URLs","name":"DARAJA_CALLBACK_BASE_URL"},{"description":"host:port for the built-in callback receiver","name":"DARAJA_CALLBACK_LISTEN"},{"description":"16+ random characters; secret path for callbacks","isSecret":true,"name":"DARAJA_CALLBACK_TOKEN"},{"description":"Comma list: stk,c2b,payouts,ops,qr,ratiba,billmanager","name":"DARAJA_TOOLSETS"},{"description":"true hides every tool that moves money or writes","name":"DARAJA_READ_ONLY"},{"description":"Payouts above this many shillings need approval in the chat","name":"DARAJA_APPROVAL_THRESHOLD"},{"description":"Comma list of phones/shortcodes that payouts may go to","name":"DARAJA_ALLOWED_RECIPIENTS"},{"description":"true to allow production charges and payouts","name":"DARAJA_ALLOW_LIVE_MONEY_MOVEMENT"},{"description":"Initiator password, encrypted into SecurityCredential at startup (alternative to DARAJA_SECURITY_CREDENTIAL)","isSecret":true,"name":"DARAJA_INITIATOR_PASSWORD"},{"description":"Path to Safaricom's public certificate, used with DARAJA_INITIATOR_PASSWORD","name":"DARAJA_CERT_PATH"},{"description":"Path of the SQLite file that stores request state and callbacks","name":"DARAJA_STATE_DB"},{"description":"Directory where generated QR PNGs are saved","name":"DARAJA_OUTPUT_DIR"},{"description":"Directory holding the saved config (default: user config dir)","name":"DARAJA_CONFIG_DIR"},{"description":"Path of a .env file to load instead of the project one","name":"DARAJA_DOTENV"},{"description":"Bearer token for HTTP mode (32+ random characters)","isSecret":true,"name":"DARAJA_MCP_TOKEN"},{"description":"HTTP mode bind address (default 127.0.0.1)","name":"DARAJA_MCP_HOST"},{"description":"HTTP mode port (default 8000)","name":"DARAJA_MCP_PORT"},{"description":"Your app's URL: every callback is POSTed on to it, HMAC-signed","name":"DARAJA_FORWARD_URL"},{"description":"HMAC secret for forwarded callbacks (16+ characters)","isSecret":true,"name":"DARAJA_FORWARD_SECRET"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-29T02:46:20.379769Z","publishedAt":"2026-10-29T02:46:20.379769Z","updatedAt":"2026-10-29T02:46:20.379769Z","isLatest":true}}}
