<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Dhotiiiii</title>
    <description>The latest articles on DEV Community by Dhotiiiii (@rustam335).</description>
    <link>https://dev.to/rustam335</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4131798%2F39ef84e6-f668-4d79-ba5e-b6c3a3bf2e23.jpg</url>
      <title>DEV Community: Dhotiiiii</title>
      <link>https://dev.to/rustam335</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rustam335"/>
    <language>en</language>
    <item>
      <title>Give Your AI Agent WhatsApp Superpowers with MCP (Official Business API)</title>
      <dc:creator>Dhotiiiii</dc:creator>
      <pubDate>Fri, 18 Sep 2026 16:05:26 +0000</pubDate>
      <link>https://dev.to/rustam335/give-your-ai-agent-whatsapp-superpowers-with-mcp-official-business-api-3f9l</link>
      <guid>https://dev.to/rustam335/give-your-ai-agent-whatsapp-superpowers-with-mcp-official-business-api-3f9l</guid>
      <description>&lt;p&gt;What if your AI assistant could check your store's WhatsApp inbox, look up an order, and send the customer a reply — by itself?&lt;/p&gt;

&lt;p&gt;That's what the &lt;a href="https://modelcontextprotocol.io" rel="noopener noreferrer"&gt;Model Context Protocol&lt;/a&gt; (MCP) makes possible. MCP is now supported across the LLM ecosystem — claude.ai, ChatGPT, Gemini, Cursor, Windsurf, VS Code Copilot, and most agent frameworks speak it — and in this post I'll show you how to wire &lt;strong&gt;any&lt;/strong&gt; MCP-capable client to a live WhatsApp Business platform in under two minutes. No SDKs, no servers to host — it's a remote MCP server.&lt;/p&gt;

&lt;h2&gt;
  
  
  The server
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://tokolaku.id/developers" rel="noopener noreferrer"&gt;Tokolaku&lt;/a&gt; is a WhatsApp business platform for Indonesian SMBs built on Meta's &lt;strong&gt;official&lt;/strong&gt; WhatsApp Business API (Cloud API — so no gray-market gateways, no ban roulette). It exposes a hosted MCP server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://api.tokolaku.id/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Transport:&lt;/strong&gt; Streamable HTTP, stateless&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auth:&lt;/strong&gt; OAuth 2.1 (interactive clients) &lt;em&gt;or&lt;/em&gt; API key (programmatic)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tools:&lt;/strong&gt; send messages, browse inbox conversations, products, orders, manage webhooks&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Option 1: OAuth-capable clients — just paste the URL
&lt;/h2&gt;

&lt;p&gt;Any modern MCP client with OAuth discovery (claude.ai, ChatGPT, Gemini, LibreChat, and most hosted assistants) needs nothing but the URL:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your client's &lt;strong&gt;connector / MCP server settings&lt;/strong&gt; (e.g. &lt;em&gt;Settings → Connectors → Add custom connector&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;Paste &lt;code&gt;https://api.tokolaku.id/mcp&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;You'll be redirected to sign in with your Tokolaku account and approve access&lt;/li&gt;
&lt;li&gt;Done. Your assistant now has 6 read-only tools scoped to &lt;em&gt;your&lt;/em&gt; account: &lt;code&gt;list_channels&lt;/code&gt;, &lt;code&gt;list_conversations&lt;/code&gt;, &lt;code&gt;get_conversation&lt;/code&gt;, &lt;code&gt;list_products&lt;/code&gt;, &lt;code&gt;list_orders&lt;/code&gt;, &lt;code&gt;get_order&lt;/code&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Behind the scenes this uses PKCE, dynamic client registration (RFC 7591), and standard discovery metadata (RFC 8414/9728) — tokens are minted per user, short-lived, and revocable from the dashboard.&lt;/p&gt;

&lt;p&gt;Try prompts like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Any unpaid orders from this week? Summarize who I should follow up with."&lt;/p&gt;

&lt;p&gt;"Which products got asked about most in yesterday's chats?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Option 2: Coding agents, CLIs &amp;amp; SDK frameworks — API key
&lt;/h2&gt;

&lt;p&gt;For write access (actually sending messages), use a &lt;strong&gt;secret API key&lt;/strong&gt; from the developer dashboard. Most coding agents and frameworks (Claude Code, Cursor, Windsurf, Cline, VS Code, OpenAI Agents SDK, LangChain, and friends) share the same &lt;code&gt;mcpServers&lt;/code&gt; config convention:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"mcpServers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"tokolaku"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"http"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"url"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://api.tokolaku.id/mcp"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"x-api-key"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tk_live_sk_xxx"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Building your own agent instead? Point any MCP client SDK at the Streamable HTTP URL and pass the key as an &lt;code&gt;x-api-key&lt;/code&gt; (or &lt;code&gt;Authorization: Bearer&lt;/code&gt;) header — that's the whole integration.&lt;/p&gt;

&lt;p&gt;Tools follow your key's scopes (&lt;code&gt;tools/list&lt;/code&gt; reflects them), and write tools like &lt;code&gt;send_message&lt;/code&gt; go through the exact same billing, quota, and rate-limit path as the REST API — your agent can't do anything your key can't.&lt;/p&gt;

&lt;p&gt;A fun one to try in your coding agent of choice:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A customer at +62812xxxx asked about their order this morning. Check the conversation, find the order status, and send them a polite update."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why this pattern is interesting
&lt;/h2&gt;

&lt;p&gt;Most "AI + WhatsApp" setups either screen-scrape the desktop app (fragile, ToS-risky) or make you build a bot pipeline first. A remote MCP server flips it: the &lt;em&gt;platform&lt;/em&gt; speaks MCP natively, and any agent — today's or next year's — gets structured, permissioned access to real business state: conversations, catalog, orders.&lt;/p&gt;

&lt;p&gt;The same endpoint also serves classic REST (&lt;code&gt;POST /api/v1/messages&lt;/code&gt;, webhooks with HMAC signatures) and official SDKs on &lt;a href="https://www.npmjs.com/package/tokolaku-sdk" rel="noopener noreferrer"&gt;npm&lt;/a&gt;, &lt;a href="https://pypi.org/project/tokolaku/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt;, and &lt;a href="https://packagist.org/packages/tokolaku/sdk" rel="noopener noreferrer"&gt;Packagist&lt;/a&gt; — so the MCP layer is a first-class citizen, not a demo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Server metadata: &lt;a href="https://github.com/Rustam335/tokolaku-mcp" rel="noopener noreferrer"&gt;https://github.com/Rustam335/tokolaku-mcp&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;API reference &amp;amp; MCP docs: &lt;a href="https://tokolaku.id/api-docs" rel="noopener noreferrer"&gt;https://tokolaku.id/api-docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The platform (WhatsApp Business API from Rp99k/mo, zero message markup): &lt;a href="https://tokolaku.id/whatsapp-api" rel="noopener noreferrer"&gt;https://tokolaku.id/whatsapp-api&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Questions or weird edge cases? I'd love to hear what your agents do with a WhatsApp inbox. 👇&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>whatsapp</category>
      <category>llm</category>
    </item>
  </channel>
</rss>
