<?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: esoloz</title>
    <description>The latest articles on DEV Community by esoloz (@esoloz).</description>
    <link>https://dev.to/esoloz</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1126188%2F740bbe93-187b-4478-8249-9acc1418c5c3.png</url>
      <title>DEV Community: esoloz</title>
      <link>https://dev.to/esoloz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/esoloz"/>
    <language>en</language>
    <item>
      <title>🚀 Introducing MCPX: A Gateway for Governing AI Agent Tool Usage</title>
      <dc:creator>esoloz</dc:creator>
      <pubDate>Thu, 05 Jun 2025 10:50:54 +0000</pubDate>
      <link>https://dev.to/esoloz/introducing-mcpx-a-gateway-for-governing-ai-agent-tool-usage-1ni</link>
      <guid>https://dev.to/esoloz/introducing-mcpx-a-gateway-for-governing-ai-agent-tool-usage-1ni</guid>
      <description>&lt;p&gt;As more teams start experimenting with AI agents using &lt;strong&gt;MCP&lt;/strong&gt;, one challenge keeps coming up - there's no clear way to &lt;strong&gt;govern how agents access tools&lt;/strong&gt;, or understand what's happening when those tools are called.&lt;/p&gt;

&lt;p&gt;That’s why we built &lt;strong&gt;MCPX&lt;/strong&gt; - an open-source gateway that helps you add visibility, guardrails, and permissioning around MCP usage. Whether you're testing locally or building toward more complex workflows, MCPX gives you control over how agents interact with your tool ecosystem.&lt;/p&gt;

&lt;p&gt;Check it out:&lt;br&gt;
👉 &lt;a href="https://github.com/TheLunarCompany/lunar/tree/main/mcpx" rel="noopener noreferrer"&gt;&lt;strong&gt;MCPX on GitHub&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  🧱 Why We Built MCPX
&lt;/h2&gt;

&lt;p&gt;We’re seeing real traction in teams using MCP to let agents call tools like Slack, GitHub, Gmail, internal APIs, and more. But the operational gaps are clear:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agents can call tools they shouldn’t&lt;/li&gt;
&lt;li&gt;No way to group or gate sensitive actions&lt;/li&gt;
&lt;li&gt;No built-in audit or usage tracking&lt;/li&gt;
&lt;li&gt;No policies for managing overuse or privilege boundaries&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This lack of governance is called out directly by OWASP in &lt;a href="https://owasp.org/www-project-top-10-for-large-language-model-applications/" rel="noopener noreferrer"&gt;&lt;strong&gt;LLM07 - Excessive Agency&lt;/strong&gt;&lt;/a&gt;, where AI agents can do more than they should, often unintentionally.&lt;/p&gt;

&lt;p&gt;MCPX gives teams a simple gateway to safely connect agents to tools - with access controls and observability built in.&lt;/p&gt;


&lt;h2&gt;
  
  
  🔐 Access Controls Are Now Live
&lt;/h2&gt;

&lt;p&gt;We recently shipped a major feature: &lt;strong&gt;Access Controls&lt;/strong&gt; that let you group and define permissions over tools - across services.&lt;/p&gt;

&lt;p&gt;You can now define &lt;strong&gt;tool groups&lt;/strong&gt; like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;toolGroups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;writes"&lt;/span&gt;
    &lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;slack&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;post_message"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;post_reaction"&lt;/span&gt;
      &lt;span class="na"&gt;gmail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;send_email"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;send_attachment"&lt;/span&gt;
      &lt;span class="na"&gt;github&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;*"&lt;/span&gt; &lt;span class="c1"&gt;# allow all tools from GitHub&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;reads"&lt;/span&gt;
    &lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;slack&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read_messages"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read_comments"&lt;/span&gt;
      &lt;span class="na"&gt;gmail&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read_email"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;read_attachment"&lt;/span&gt;

  &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;admin"&lt;/span&gt;
    &lt;span class="na"&gt;services&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;slack&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;create_channel"&lt;/span&gt;
        &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;delete_channel"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From there, you can assign specific LLMs, agents, or users to one or more of these groups - allowing fine-grained, flexible control over what tools are allowed and when.&lt;/p&gt;

&lt;p&gt;More on how it works:&lt;br&gt;
👉 &lt;a href="https://www.lunar.dev/post/mcp-gateway-access-controls-defining-permissions-for-llm-agents" rel="noopener noreferrer"&gt;Defining Access Controls for LLM Agents&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Start Local, Scale as You Grow
&lt;/h2&gt;

&lt;p&gt;MCPX is lightweight and easy to run locally. But as your usage grows, you can deploy it in production, plug into observability tooling, and layer in more advanced policies.&lt;/p&gt;

&lt;p&gt;We share that evolution here:&lt;br&gt;
👉 &lt;a href="https://www.lunar.dev/post/mcpx-from-local-experimentation-to-production-grade-infrastructure" rel="noopener noreferrer"&gt;From Local Experimentation to Production-Grade Infrastructure&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Try It Out or Contribute
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;⭐ GitHub: &lt;a href="https://github.com/TheLunarCompany/lunar/tree/main/mcpx" rel="noopener noreferrer"&gt;github.com/TheLunarCompany/lunar/tree/main/mcpx&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Docs: &lt;a href="https://docs.lunar.dev" rel="noopener noreferrer"&gt;docs.lunar.dev&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Community: Join our Discord (linked in the repo)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’re learning alongside the community and would love your feedback or ideas. If you’re using MCP today - or just exploring how to bring AI agents closer to your systems - MCPX is a layer worth trying.&lt;/p&gt;

</description>
      <category>mcp</category>
      <category>ai</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
