<?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: Dmitry Yurchenko</title>
    <description>The latest articles on DEV Community by Dmitry Yurchenko (@dimon_axl).</description>
    <link>https://dev.to/dimon_axl</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%2F4209568%2Fb640aee1-0a63-41ac-9aef-ea79b22ae199.png</url>
      <title>DEV Community: Dmitry Yurchenko</title>
      <link>https://dev.to/dimon_axl</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dimon_axl"/>
    <language>en</language>
    <item>
      <title>We gave Claude and Codex a sales and marketing system through MCP</title>
      <dc:creator>Dmitry Yurchenko</dc:creator>
      <pubDate>Mon, 26 Oct 2026 22:09:37 +0000</pubDate>
      <link>https://dev.to/dimon_axl/we-gave-claude-and-codex-a-sales-and-marketing-system-through-mcp-47b2</link>
      <guid>https://dev.to/dimon_axl/we-gave-claude-and-codex-a-sales-and-marketing-system-through-mcp-47b2</guid>
      <description>&lt;p&gt;Most MCP demos connect an agent to one narrow tool. We wanted Claude and Codex to finish a whole customer workflow without wiring five apps together.&lt;/p&gt;

&lt;p&gt;I'm Dmitry, co-founder of &lt;a href="https://axl.tech" rel="noopener noreferrer"&gt;AXL&lt;/a&gt;. AXL combines websites, CRM, sales pipelines, booking, payments, courses, webinars, email and messaging automation. We built a remote MCP server so an agent can work across that system from the chat its user already has open.&lt;/p&gt;

&lt;p&gt;The endpoint is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://app.axl.tech/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claude Code connects with one command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;claude mcp add &lt;span class="nt"&gt;--transport&lt;/span&gt; http axl https://app.axl.tech/mcp
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The browser opens for sign-in. You choose the AXL account, approve the connection and return to the agent. There is no API key to paste into chat.&lt;/p&gt;

&lt;h2&gt;
  
  
  The kind of job we wanted it to finish
&lt;/h2&gt;

&lt;p&gt;Here is one example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Launch a paid photography course.
Build the landing page, signup form and checkout.
Create the course and lessons.
Put every buyer in the CRM and prepare the follow-up emails.
Give me links to review everything before it goes live.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That one request crosses several parts of a normal business stack. The page needs a form. The form needs a contact record. The checkout needs a product. A successful payment needs to give the buyer course access. The follow-up emails need to know what that person bought.&lt;/p&gt;

&lt;p&gt;AXL keeps those events on the same customer record, so the agent doesn't have to match IDs across a page builder, CRM, checkout, course platform and email tool.&lt;/p&gt;

&lt;p&gt;It can also handle smaller jobs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;build a landing page and publish it on an AXL address;&lt;/li&gt;
&lt;li&gt;create a pipeline and organize incoming leads;&lt;/li&gt;
&lt;li&gt;set up booking, reminders and post-call follow-up;&lt;/li&gt;
&lt;li&gt;create a webinar and follow up based on attendance;&lt;/li&gt;
&lt;li&gt;build a course, attach hosted video and enroll buyers;&lt;/li&gt;
&lt;li&gt;prepare an email or messaging automation and wait for approval.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  We did not load 1,100 tools into the prompt
&lt;/h2&gt;

&lt;p&gt;AXL's admin API currently has around 1,100 operations. Sending every operation schema to the model on every turn would waste context before the work even started.&lt;/p&gt;

&lt;p&gt;The MCP server gives the agent a small fixed tool set. The agent searches the live operation catalog, reads the contract it needs, then runs that operation. One connection covers the platform without loading hundreds of unrelated schemas into the model context.&lt;/p&gt;

&lt;p&gt;The server uses stateless Streamable HTTP and accepts JSON-RPC over &lt;code&gt;POST&lt;/code&gt;. It does not depend on a long-lived server session.&lt;/p&gt;

&lt;h2&gt;
  
  
  The permission problem matters more at this size
&lt;/h2&gt;

&lt;p&gt;The browser flow uses OAuth 2.1, PKCE and dynamic client registration. The token is tied to the AXL account approved during sign-in and the user's permissions in that account.&lt;/p&gt;

&lt;p&gt;We also remove 21 sensitive operations from the AI surface. The agent cannot use MCP to mint tokens, change administrator permissions or perform billing writes. Those operations do not appear in search results or tool schemas.&lt;/p&gt;

&lt;p&gt;Publishing, sending messages, starting calls and spending money remain separate actions. The agent can prepare the work and return review links without quietly putting it in front of customers.&lt;/p&gt;

&lt;p&gt;The exact rules are in &lt;a href="https://axl.tech/developers/agent-guardrails" rel="noopener noreferrer"&gt;AXL agent guardrails&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is still awkward
&lt;/h2&gt;

&lt;p&gt;The standard browser authorization currently uses one broad MCP scope. It is limited to the selected account, but it is not a read-only grant. An administrator who needs read-only access can create an AXL API key with reduced rights and use it as a Bearer token.&lt;/p&gt;

&lt;p&gt;File uploads also need one step outside MCP. The agent requests a pre-signed URL, uploads the file with a raw &lt;code&gt;PUT&lt;/code&gt;, then completes the AXL record. A client restricted to MCP tool calls cannot finish that upload by itself.&lt;/p&gt;

&lt;p&gt;These details are less exciting than a demo, but they matter when an agent can touch a real customer system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try one complete workflow
&lt;/h2&gt;

&lt;p&gt;MCP access has no separate fee. New AXL accounts start on a permanent Free plan with no card and no trial deadline. Usage limits apply. Calls, SMS and AXL's built-in AI use a prepaid balance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://axl.tech/developers/mcp" rel="noopener noreferrer"&gt;MCP setup and technical details&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/axlhq/business-stack" rel="noopener noreferrer"&gt;Open-source AXL Business Stack skill&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://axl.tech/pricing" rel="noopener noreferrer"&gt;Current pricing and Free limits&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start with a small end-to-end test: ask the agent to build a page, submit its form and show the new lead in the CRM. That reveals more than a list of available tool names.&lt;/p&gt;

&lt;p&gt;If you're building a broad MCP server, how are you handling permissions: one account-scoped connection, module scopes or confirmation for individual actions?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpztttplkza230u2ej92j.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpztttplkza230u2ej92j.gif" alt=" " width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjy55jx91khnsyizpz4f5.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjy55jx91khnsyizpz4f5.gif" alt=" " width="760" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnrw0ywvbgq4z0bp35vp4.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnrw0ywvbgq4z0bp35vp4.gif" alt=" " width="799" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpbleu6ghopmix0t5d85c.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpbleu6ghopmix0t5d85c.gif" alt=" " width="799" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feaizcf2sfwe4sybazk2p.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Feaizcf2sfwe4sybazk2p.gif" alt=" " width="799" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8yfhson988iqht4w5nk7.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8yfhson988iqht4w5nk7.gif" alt=" " width="759" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2jc01t6pyhqtkktreucc.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2jc01t6pyhqtkktreucc.gif" alt=" " width="799" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>automation</category>
      <category>showdev</category>
      <category>mcp</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
