<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MCP-Server on dsyr.DataBridge</title><link>https://databridge.docs.dsyr.de/docs/mcp-server/</link><description>Recent content in MCP-Server on dsyr.DataBridge</description><generator>Hugo</generator><language>de</language><atom:link href="https://databridge.docs.dsyr.de/docs/mcp-server/index.xml" rel="self" type="application/rss+xml"/><item><title>Funktionsweise</title><link>https://databridge.docs.dsyr.de/docs/mcp-server/funktionsweise/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/mcp-server/funktionsweise/</guid><description>&lt;h2 id="endpunkt"&gt;Endpunkt&lt;/h2&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Function&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Mcp&lt;/code&gt; (&lt;code&gt;DataBridge/Functions/McpApi.cs&lt;/code&gt;)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Route&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;POST /api/mcp&lt;/code&gt; (JSON-RPC-Austausch); &lt;code&gt;GET /api/mcp&lt;/code&gt; liefert bewusst &lt;code&gt;405&lt;/code&gt; — siehe &lt;a href="https://databridge.docs.dsyr.de/docs/mcp-server/funktionsweise/#bekannte-einschr%c3%a4nkung-get-auf-apimcp"&gt;Bekannte Einschränkung&lt;/a&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Auth-Level&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;Function&lt;/code&gt; (Function Key als &lt;code&gt;?code=&lt;/code&gt;-Query-Parameter)&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;strong&gt;Protokoll&lt;/strong&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;MCP über Streamable HTTP, &lt;strong&gt;stateless&lt;/strong&gt; — jede POST-Anfrage ist ein eigenständiger JSON-RPC-Austausch, es gibt keine langlebige Server-Session&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;p&gt;Der Server ist damit direkt an einer laufenden Function App (lokal oder in Azure) ansprechbar,&#10;ohne eigenen Prozess oder zusätzliche Infrastruktur. Da die Authentifizierung über den normalen&#10;Azure-Functions-Mechanismus läuft (Function Key), lässt sich der Server ohne zusätzliche&#10;Identity-Provider-Konfiguration einrichten — der Key kann als Query-Parameter oder als Header&#10;übergeben werden, je nachdem, was der jeweilige Client unterstützt (siehe &lt;a href="../nutzung/"&gt;Nutzung&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Operationen</title><link>https://databridge.docs.dsyr.de/docs/mcp-server/operationen/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/mcp-server/operationen/</guid><description>&lt;p&gt;Alle zehn Tools sind als &lt;code&gt;ReadOnly = true&lt;/code&gt;, &lt;code&gt;Idempotent = true&lt;/code&gt; und &lt;code&gt;Destructive = false&lt;/code&gt; markiert&#10;(MCP-Tool-Annotationen, die dem aufrufenden Client mitgeben, dass wiederholte Aufrufe risikolos&#10;sind). Kein Tool schreibt, löscht oder sendet — weder in der &lt;code&gt;jobs&lt;/code&gt;-/&lt;code&gt;mappings&lt;/code&gt;-Tabelle, noch in&#10;den Service-Bus-Queues, noch in einem Quell-/Zielsystem.&lt;/p&gt;&#10;&lt;div class="alert alert-warning" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Grenze ist Metadaten vs. Nutzdaten, nicht nur lesend vs. schreibend&lt;/div&gt;&#10;&lt;p&gt;Auch innerhalb der reinen Lesezugriffe gibt es eine bewusste zweite Grenze: Betriebs-/&#10;Konfigurationsdaten (Job-Namen, Schemata, Fehlermeldungen, Zeitstempel) sind unkritisch und werden&#10;vollständig zurückgegeben. &lt;strong&gt;Fachliche Nutz-/Kundendaten&lt;/strong&gt; — z. B. der Inhalt einer&#10;Service-Bus-Nachricht — werden dagegen &lt;strong&gt;nie&lt;/strong&gt; zurückgegeben, selbst wenn das zugrunde liegende&#10;Tool ansonsten &amp;ldquo;nur liest&amp;rdquo;. Details dazu unten bei den Peek-Tools.&lt;/p&gt;</description></item><item><title>Nutzung</title><link>https://databridge.docs.dsyr.de/docs/mcp-server/nutzung/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/mcp-server/nutzung/</guid><description>&lt;p&gt;Der Server spricht Standard-MCP über Streamable HTTP — grundsätzlich verbindet sich jeder&#10;MCP-fähige Client über dieselbe URL (&lt;code&gt;.../api/mcp?code=&amp;lt;Function-Key&amp;gt;&lt;/code&gt;). Die folgenden Abschnitte&#10;zeigen die konkrete Einrichtung für die gängigsten Clients.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="claude-code"&gt;Claude Code&lt;/h2&gt;&#10;&lt;p&gt;Dieses Repository bringt bereits eine passende &lt;a href="https://docs.claude.com/en/docs/claude-code/mcp"&gt;.mcp.json&lt;/a&gt;&#10;mit:&lt;/p&gt;&#10;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;mcpServers&amp;#34;&lt;/span&gt;: {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;databridge&amp;#34;&lt;/span&gt;: {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;type&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;http&amp;#34;&lt;/span&gt;,&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;url&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;http://localhost:7062/api/mcp?code=${DATABRIDGE_FUNCTION_KEY:-local}&amp;#34;&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Lokal (Core Tools / Debugger):&lt;/strong&gt; Der lokale Function-Host prüft den Auth-Level &lt;code&gt;Function&lt;/code&gt; nicht&#10;— der Platzhalterwert &lt;code&gt;local&lt;/code&gt; in der URL reicht aus. Voraussetzung ist nur, dass die Function App&#10;tatsächlich auf &lt;strong&gt;Port 7062&lt;/strong&gt; läuft (nicht der &lt;code&gt;func&lt;/code&gt;-Standard 7071!):&lt;/p&gt;</description></item></channel></rss>