1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8041],{2796:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/developers/mcp/features/SectionThree",function(){return a(2052)}])},2052:function(e,t,a){"use strict";a.r(t);var n=a(5893);a(7294);var o=a(240);let s=o.Q1.reduce((e,t)=>{let{count:a}=t;return e+a},0),r=()=>(0,n.jsxs)("div",{className:"flex flex-col justify-start items-start w-full h-fit gap-y-10 md:gap-y-14 my-16 md:my-[110px]",children:[(0,n.jsx)("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-end w-full gap-6",children:(0,n.jsxs)("div",{className:"flex flex-col gap-y-4 md:w-[60%]",children:[(0,n.jsx)("p",{className:"text-blue basier-medium bani-base",children:"WHAT'S INCLUDED"}),(0,n.jsxs)("h2",{className:"text-black bani-heading-alt-2",children:[s," tools across the whole Bani API"]}),(0,n.jsxs)("p",{className:"text-grey-text font-light bani-lg",children:["Tools are grouped into toolsets. Use"," ",(0,n.jsx)("span",{className:"bani-code text-blue",children:"BANI_TOOLSETS"})," to load only the groups you need."]})]})}),(0,n.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6 md:gap-8 w-full",children:o.Q1.map(e=>{let{key:t,title:a,count:o,body:s,optIn:r}=e;return(0,n.jsxs)("div",{className:"flex flex-col justify-between items-start gap-y-6 w-full rounded-[30px] bg-white p-7 md:p-9 shadow-card-3",children:[(0,n.jsxs)("div",{className:"flex flex-col gap-y-3",children:[(0,n.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,n.jsx)("h3",{className:"text-black text-xl md:text-[22px]",children:a}),r&&(0,n.jsx)("span",{className:"px-2.5 py-0.5 rounded-full bg-yellow/[.15] text-[#B37A00] text-sm basier-medium",children:"Opt-in"})]}),(0,n.jsx)("p",{className:"text-grey-text font-light leading-loose text-sm md:text-lg",children:s})]}),(0,n.jsxs)("div",{className:"flex justify-between items-center w-full pt-4 border-t border-grey-border",children:[(0,n.jsx)("span",{className:"bani-code text-sm md:text-base text-grey-text",children:t}),(0,n.jsxs)("span",{className:"text-blue basier-medium text-sm md:text-base",children:[o," ",1===o?"tool":"tools"]})]})]},t)})})]});t.default=r},240:function(e,t,a){"use strict";a.d(t,{Os:function(){return o},Q1:function(){return c},Qq:function(){return i},TD:function(){return n},ax:function(){return d},kz:function(){return l}});let n="https://www.npmjs.com/package/bani-mcp",o="https://docs.getbani.com/bani-pop",s='"env": {\n "BANI_ENV": "sandbox",\n "BANI_ACCESS_TOKEN": "your-access-token",\n "BANI_PUBLIC_KEY": "your-public-key",\n "BANI_PRIVATE_KEY": "your-merchant-private-key",\n "BANI_ACCOUNT_TRIBE_REF": "your-account-tribe-ref"\n }',r='{\n "mcpServers": {\n "bani": {\n "command": "npx",\n "args": ["-y", "bani-mcp"],\n '.concat(s,"\n }\n }\n}"),i=[{name:"Claude Code",filename:"Terminal",language:"shell",note:"Run this once from your terminal. It registers the Bani server with Claude Code.",code:"claude mcp add bani \\\n -e BANI_ENV=sandbox \\\n -e BANI_ACCESS_TOKEN=your-access-token \\\n -e BANI_PUBLIC_KEY=your-public-key \\\n -e BANI_PRIVATE_KEY=your-merchant-private-key \\\n -e BANI_ACCOUNT_TRIBE_REF=your-account-tribe-ref \\\n -- npx -y bani-mcp"},{name:"Claude Desktop",filename:"claude_desktop_config.json",language:"json",note:"Open Settings > Developer > Edit Config, paste this under mcpServers, then restart Claude.",code:r},{name:"Cursor",filename:"~/.cursor/mcp.json",language:"json",note:"Go to Settings > MCP > Add new MCP server. The config has the same shape.",code:r},{name:"VS Code",filename:".vscode/mcp.json",language:"json",note:'Add this to .vscode/mcp.json in your project. VS Code uses "servers" instead of "mcpServers".',code:'{\n "servers": {\n "bani": {\n "type": "stdio",\n "command": "npx",\n "args": ["-y", "bani-mcp"],\n '.concat(s,"\n }\n }\n}")}],l=[{label:"Collect a payment",prompt:"Create a customer for Ada Obi ([email protected], +2348023123200) and give her a â¦25,000 bank transfer account that expires in 2 days.",tools:[{name:"bani_create_customer"},{name:"bani_list_collection_banks"},{name:"bani_create_virtual_account"}],reply:["Done. Ada Obi has been added as a customer, and she has a temporary account ready for payment:","Amount: â¦25,
1000 \xb7 Expires in 2 days","I'll check the payment status for you whenever you ask."]},{label:"Send a payout",prompt:"Check my NGN wallet balance, then send â¦50,000 to account 0123456789 at GTBank.",tools:[{name:"bani_get_account_details"},{name:"bani_get_wallet_details"},{name:"bani_verify_ng_bank_account"},{name:"bani_initiate_bank_payout",destructive:!0}],reply:["Your NGN wallet has enough to cover this payout. The account name on 0123456789 matches, so I've prepared the â¦50,000 transfer.","Payouts move real money, so your client asked you to approve it before it ran."]},{label:"Build with the docs",prompt:"I need to handle Bani webhooks in my Express app. Can you wire it up?",tools:[{name:"bani_list_doc_pages"},{name:"bani_get_doc_page"}],reply:["I read the webhooks page in the Bani docs and added a /webhooks/bani route to your app. It verifies each event before processing it.","Webhooks aren't an API call, so the server pulls in the live documentation to get the details right."]}],c=[{key:"customers",title:"Customers",count:8,body:"Create and update customers, and manage their metadata and delivery addresses."},{key:"collections",title:"Collections",count:15,body:"Bank transfer virtual accounts, mobile money, crypto deposits, Bani Shopper e-wallet payments, and their status checks."},{key:"payouts",title:"Payouts",count:11,body:"Bank transfers in Nigeria, across Africa and internationally, plus mobile money and crypto payouts and account verification."},{key:"shopper",title:"Bani Shopper",count:5,body:"Payment requests, refunds, and the recurring auto-debit consent flow."},{key:"verification",title:"Verification",count:3,body:"Nigerian BVN and phone (USSD) verification."},{key:"bills",title:"Bills",count:9,body:"Airtime, mobile data, and bill payments such as electricity and cable TV."},{key:"conversion",title:"Conversion",count:4,body:"Currency and coin conversion rates, and swaps between your balances."},{key:"account",title:"Account",count:3,body:"Account and wallet balance lookups, and phone network lookup."},{key:"docs",title:"Docs",count:2,body:"Fetch live Bani documentation, for work like the Bani Pop widget or webhooks that isn't an API call."},{key:"agent",title:"Super Agent",count:12,optIn:!0,body:"Onboard and manage merchant sub-accounts. Only enabled when BANI_SUPER_AGENT_KEY is set."}],d=[{name:"BANI_ACCESS_TOKEN",required:!0,body:"Bearer token from your dashboard."},{name:"BANI_PUBLIC_KEY",required:!0,body:"Public key from your dashboard."},{name:"BANI_PRIVATE_KEY",required:!0,body:"Merchant private key, used to sign every request. Never share this."},{name:"BANI_ACCOUNT_TRIBE_REF",required:!0,body:"Your account's tribe reference."},{name:"BANI_ENV",defaultValue:"sandbox",body:"sandbox or live."},{name:"BANI_READ_ONLY",defaultValue:"false",body:"Set to true to register only read-only tools (lookups and status checks). Nothing can create, pay, or move money."},{name:"BANI_TOOLSETS",defaultValue:"all except agent",body:"Comma-separated list that limits which tool groups are registered."},{name:"BANI_SUPER_AGENT_KEY",defaultValue:"â",body:"Only needed for the agent toolset, which manages merchant sub-accounts."},{name:"BANI_BASE_URL",defaultValue:"from BANI_ENV",body:"Override the API base URL."}]}},function(e){e.O(0,[9774,2888,179],function(){return e(e.s=2796)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.