<?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: Matteo Morelli</title>
    <description>The latest articles on DEV Community by Matteo Morelli (@keysersoft).</description>
    <link>https://dev.to/keysersoft</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%2F4151846%2Fba2a2f26-80a5-4d50-b55f-a05302439363.jpg</url>
      <title>DEV Community: Matteo Morelli</title>
      <link>https://dev.to/keysersoft</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/keysersoft"/>
    <language>en</language>
    <item>
      <title>Run an SAP HANA MCP server for Claude in 10 minutes</title>
      <dc:creator>Matteo Morelli</dc:creator>
      <pubDate>Wed, 30 Sep 2026 10:17:26 +0000</pubDate>
      <link>https://dev.to/keysersoft/run-an-sap-hana-mcp-server-for-claude-in-10-minutes-2lo8</link>
      <guid>https://dev.to/keysersoft/run-an-sap-hana-mcp-server-for-claude-in-10-minutes-2lo8</guid>
      <description>&lt;p&gt;This is the short, hands-on version: an MCP server that lets Claude, ChatGPT, Copilot or Cursor read SAP S/4HANA from its HANA database, read-only, with SAP's data dictionary as tools. You need Docker, a host that reaches the HANA SQL port and a database user from your SAP Basis team.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qln6diond1a0e1d9fkf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F1qln6diond1a0e1d9fkf.png" alt="Claude, ChatGPT and Copilot reach the MCP server over MCP; only the server reaches the HANA SQL port, read-only" width="799" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  1. The database user
&lt;/h2&gt;

&lt;p&gt;In the tenant that holds the ABAP schema (usually &lt;code&gt;SAPHANADB&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt; &lt;span class="k"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;AMCP_READER&lt;/span&gt; &lt;span class="n"&gt;PASSWORD&lt;/span&gt; &lt;span class="nv"&gt;"&amp;lt;strong password&amp;gt;"&lt;/span&gt; &lt;span class="k"&gt;NO&lt;/span&gt; &lt;span class="n"&gt;FORCE_FIRST_PASSWORD_CHANGE&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;ALTER&lt;/span&gt; &lt;span class="k"&gt;USER&lt;/span&gt; &lt;span class="n"&gt;AMCP_READER&lt;/span&gt; &lt;span class="n"&gt;DISABLE&lt;/span&gt; &lt;span class="n"&gt;PASSWORD&lt;/span&gt; &lt;span class="n"&gt;LIFETIME&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;-- dictionary and organization tables the tools read&lt;/span&gt;
&lt;span class="k"&gt;GRANT&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;SAPHANADB&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DD02L&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;AMCP_READER&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;GRANT&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;SAPHANADB&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DD03L&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;AMCP_READER&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;GRANT&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;SAPHANADB&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;DD04T&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;AMCP_READER&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="c1"&gt;-- … the full list is in the guide linked below&lt;/span&gt;
&lt;span class="k"&gt;GRANT&lt;/span&gt; &lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="n"&gt;SAPHANADB&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;ACDOCA&lt;/span&gt; &lt;span class="k"&gt;TO&lt;/span&gt; &lt;span class="n"&gt;AMCP_READER&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;-- plus the business tables you need&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Start the server
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;anythingmcp &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;anythingmcp
curl &lt;span class="nt"&gt;-fsSLo&lt;/span&gt; docker-compose.yml &lt;span class="se"&gt;\&lt;/span&gt;
  https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml
&lt;span class="nb"&gt;printf&lt;/span&gt; &lt;span class="s1"&gt;'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n'&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;openssl rand &lt;span class="nt"&gt;-hex&lt;/span&gt; 32&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;openssl rand &lt;span class="nt"&gt;-hex&lt;/span&gt; 32&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; .env
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'SSRF_ALLOWED_HOSTS=hana.internal'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; .env
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt;, create the admin user, go to &lt;strong&gt;Connectors → Marketplace&lt;/strong&gt; and install &lt;strong&gt;SAP S/4HANA (HANA SQL)&lt;/strong&gt; with host, port (&lt;code&gt;3&amp;lt;instance&amp;gt;15&lt;/code&gt;), tenant, schema, SAP client and the user above. The install runs a test call and tells you if the grants work.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnhkswo6i4kwncyq17e3u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fnhkswo6i4kwncyq17e3u.png" alt="The install dialog of the SAP S/4HANA (HANA SQL) connector, with the SQL for the database user" width="800" height="1607"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Connect a client
&lt;/h2&gt;

&lt;p&gt;Claude Code:&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 sap-hana http://localhost:4000/mcp &lt;span class="nt"&gt;--header&lt;/span&gt; &lt;span class="s2"&gt;"X-API-Key: &amp;lt;key&amp;gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For claude.ai or ChatGPT, publish only the MCP endpoint over HTTPS, never the HANA port.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Ask
&lt;/h2&gt;

&lt;p&gt;"Which company codes are in this system, and in which currency?" is a good first question. Then try "Top 10 customers by net sales in 2025, from the billing documents". Watch the tool calls: the model reads the guide and the dictionary before it writes any SQL.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F500gzq1ukf3aph02yn1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F500gzq1ukf3aph02yn1g.png" alt="How the model answers: sap_guide, org structure, dictionary lookups, then one read-only SELECT" width="799" height="206"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What you get
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;10 tools: a data model guide, dictionary lookups, CDS view search, org structure, and one read-only &lt;code&gt;SELECT&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;SET TRANSACTION READ ONLY&lt;/code&gt; on every session, 1,000-row cap, statement timeout, HR tables blocked&lt;/li&gt;
&lt;li&gt;Roles per MCP server and an audit log of every call&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faeaet7ux10d8zy9kulwz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Faeaet7ux10d8zy9kulwz.png" alt="The 10 tools of the connector, each with its SQL visible" width="800" height="511"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Full guide with the complete grant list, screenshots and example questions: &lt;a href="https://anythingmcp.com/guides/connect-sap-hana-to-claude" rel="noopener noreferrer"&gt;https://anythingmcp.com/guides/connect-sap-hana-to-claude&lt;/a&gt;. Code: AnythingMCP at &lt;a href="https://github.com/HelpCode-ai/anythingmcp" rel="noopener noreferrer"&gt;https://github.com/HelpCode-ai/anythingmcp&lt;/a&gt;, the HANA connector on its own at &lt;a href="https://github.com/HelpCode-ai/sap-hana-mcp-server" rel="noopener noreferrer"&gt;https://github.com/HelpCode-ai/sap-hana-mcp-server&lt;/a&gt;&lt;/p&gt;

</description>
      <category>sap</category>
      <category>mcp</category>
      <category>claude</category>
      <category>docker</category>
    </item>
  </channel>
</rss>
