Prompts the customer to authorize a payment on their mobile device.
AI agents use stk_push to commit financial operations through Daraja MCP — usually the final step of a payment, billing, or trading workflow. A call moves real money.
This tool initiates an M-Pesa STK (SIM Toolkit) push payment request, which directly triggers a financial transaction on a customer's mobile device. It involves moving real money via Safaricom's M-Pesa service. Misuse could result in unauthorized payment requests being sent to customers, making this a critical financial risk.
From the tool's definition Prompts the customer to authorize a payment on their mobile device
Documented attack patterns abuse exactly the kind of access stk_push gives an agent:
PolicyLayer is an MCP gateway — it sits between your AI agents and Daraja MCP, and nothing reaches the server without passing your rules. This is the rule we recommend for stk_push:
{
"version": "1",
"default": "deny",
"tools": {
"stk_push": {
"deny_if": [
{
"conditions": [],
"on_deny": "Requires human approval."
}
]
}
}
} Any call to stk_push is blocked until a human approves it. The rest of the server keeps working.
Free to start. No card required.
Prompts the customer to authorize a payment on their mobile device. It is categorised as a Financial tool in the Daraja MCP MCP Server, which means it involves financial transactions. Block by default and require explicit approval.
Register the Daraja MCP server in PolicyLayer and add a rule for stk_push: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Daraja MCP. Nothing to install.
stk_push is a Financial tool with critical risk. Critical-risk tools should be blocked by default and only enabled with explicit human approval.
Yes. Add a rate_limit block to the stk_push rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for stk_push. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
stk_push is provided by the Daraja MCP server (jameskanyiri/darajamcp). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Start from Daraja MCP, add the rest of your stack, and see everything your agents can call. Then put policy on all of it.
Free to start. No card required.
8 Daraja MCP tools catalogued and risk-classified — across an index of 43,000+ MCP servers.