Connects agents to the Safaricom Daraja API so they can run M-Pesa payment transactions and automation.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add daraja --env BUSINESS_SHORTCODE='<BUSINESS_SHORTCODE>' --env MPESA_CONSUMER_KEY='<MPESA_CONSUMER_KEY>' --env MPESA_CONSUMER_SECRET='<MPESA_CONSUMER_SECRET>' --env PASSKEY='<PASSKEY>' -- uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP run main.py~/.codex/config.toml
[mcp_servers.daraja]
command = "uv"
args = ["--directory", "/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP", "run", "main.py"]
env = { BUSINESS_SHORTCODE = "<BUSINESS_SHORTCODE>", MPESA_CONSUMER_KEY = "<MPESA_CONSUMER_KEY>", MPESA_CONSUMER_SECRET = "<MPESA_CONSUMER_SECRET>", PASSKEY = "<PASSKEY>" }
# codex mcp add daraja --env BUSINESS_SHORTCODE='<BUSINESS_SHORTCODE>' --env MPESA_CONSUMER_KEY='<MPESA_CONSUMER_KEY>' --env MPESA_CONSUMER_SECRET='<MPESA_CONSUMER_SECRET>' --env PASSKEY='<PASSKEY>' -- uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP run main.py~/.cursor/mcp.json
{
"mcpServers": {
"daraja": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
],
"env": {
"BUSINESS_SHORTCODE": "<BUSINESS_SHORTCODE>",
"MPESA_CONSUMER_KEY": "<MPESA_CONSUMER_KEY>",
"MPESA_CONSUMER_SECRET": "<MPESA_CONSUMER_SECRET>",
"PASSKEY": "<PASSKEY>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"daraja": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
],
"env": {
"BUSINESS_SHORTCODE": "<BUSINESS_SHORTCODE>",
"MPESA_CONSUMER_KEY": "<MPESA_CONSUMER_KEY>",
"MPESA_CONSUMER_SECRET": "<MPESA_CONSUMER_SECRET>",
"PASSKEY": "<PASSKEY>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"daraja": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
],
"env": {
"BUSINESS_SHORTCODE": "<BUSINESS_SHORTCODE>",
"MPESA_CONSUMER_KEY": "<MPESA_CONSUMER_KEY>",
"MPESA_CONSUMER_SECRET": "<MPESA_CONSUMER_SECRET>",
"PASSKEY": "<PASSKEY>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"daraja": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
],
"env": {
"BUSINESS_SHORTCODE": "<BUSINESS_SHORTCODE>",
"MPESA_CONSUMER_KEY": "<MPESA_CONSUMER_KEY>",
"MPESA_CONSUMER_SECRET": "<MPESA_CONSUMER_SECRET>",
"PASSKEY": "<PASSKEY>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"daraja": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/PARENT/FOLDER/DarajaMCP",
"run",
"main.py"
],
"env": {
"BUSINESS_SHORTCODE": "<BUSINESS_SHORTCODE>",
"MPESA_CONSUMER_KEY": "<MPESA_CONSUMER_KEY>",
"MPESA_CONSUMER_SECRET": "<MPESA_CONSUMER_SECRET>",
"PASSKEY": "<PASSKEY>"
}
}
}
}Environment variables
BUSINESS_SHORTCODEMPESA_CONSUMER_KEYMPESA_CONSUMER_SECRETPASSKEY
Replace the placeholders with your own credentials and keep them out of version control.