[{"data":1,"prerenderedAt":560},["ShallowReactive",2],{"blog-\u002Fblog\u002Fmcp-server-integrieren":3,"blog-surround-\u002Fblog\u002Fmcp-server-integrieren":550},{"id":4,"title":5,"authors":6,"body":10,"category":537,"date":538,"description":539,"draft":540,"extension":541,"image":542,"meta":543,"navigation":544,"path":545,"seo":546,"series":547,"stem":548,"updated":547,"__hash__":549},"blog\u002F3.blog\u002F12.mcp-server-integrieren.md","Bodenrichtwerte per MCP-Server integrieren",[7],{"name":8,"to":9},"Sören Uhrbach","mailto:soeren@bodenrichtwert.ai",{"type":11,"value":12,"toc":524},"minimark",[13,17,26,31,39,42,61,68,72,75,205,218,222,225,267,271,315,318,322,339,343,350,360,364,373,387,486,494,497,500,520],[14,15,16],"p",{},"Ein MCP-Server lässt sich in jeden MCP-fähigen Client einbinden — Claude Desktop, Perplexity, Cursor, Windsurf, Zed oder einen selbst gebauten Agenten. In allen Fällen genügt eine URL, der Rest läuft automatisch über OAuth. Was dabei technisch passiert — und wie du die Anbindung in deinem Client einrichtest — ist Thema dieses Artikels.",[14,18,19,20,25],{},"Für die reine Klick-Anleitung ohne Technik in Claude: ",[21,22,24],"a",{"href":23},"\u002Fblog\u002Fbodenrichtwert-mit-claude-abfragen","Bodenrichtwert mit Claude abfragen",". Hier geht es eine Ebene tiefer.",[27,28,30],"h2",{"id":29},"was-mcp-ist","Was MCP ist",[14,32,33,34,38],{},"Das ",[35,36,37],"strong",{},"Model Context Protocol (MCP)"," ist ein offener Standard, über den KI-Clients (Claude Desktop, Perplexity, Cursor, Agenten-Frameworks, eigene Apps) externe Werkzeuge und Datenquellen ansprechen. Statt für jede KI eine eigene Integration zu bauen, stellst du einen MCP-Server bereit — und jeder MCP-fähige Client kann ihn nutzen.",[14,40,41],{},"Unser Server liegt unter:",[43,44,50],"pre",{"className":45,"code":46,"filename":47,"language":48,"meta":49,"style":49},"language-bash shiki shiki-themes github-light","https:\u002F\u002Fmcp.bodenrichtwert.ai\u002Fmcp\n","MCP-Server","bash","",[51,52,53],"code",{"__ignoreMap":49},[54,55,58],"span",{"class":56,"line":57},"line",1,[54,59,46],{"class":60},"s7eDp",[14,62,63,64,67],{},"Er spricht ",[35,65,66],{},"Streamable HTTP"," (die aktuelle MCP-Transport-Variante) und stellt das Bodenrichtwert-Werkzeug als Tool bereit, das die KI bei Bedarf aufruft.",[27,69,71],{"id":70},"warum-mcp-und-nicht-manuelle-tool-definition","Warum MCP und nicht manuelle Tool-Definition",[14,73,74],{},"Ohne MCP müsstest du das Werkzeug bei jeder Integration von Hand beschreiben — pro Framework ein eigenes Schema, das Name, Parameter und Einsatzzweck des Tools festlegt, etwa:",[43,76,80],{"className":77,"code":78,"language":79,"meta":49,"style":49},"language-json shiki shiki-themes github-light","{\n  \"name\": \"get_bodenrichtwert\",\n  \"description\": \"Amtlichen Bodenrichtwert für eine deutsche Adresse abrufen\",\n  \"parameters\": {\n    \"type\": \"object\",\n    \"properties\": { \"address\": { \"type\": \"string\" }, \"nutzungsart\": { \"type\": \"string\" } },\n    \"required\": [\"address\"]\n  }\n}\n","json",[51,81,82,88,105,118,127,140,179,193,199],{"__ignoreMap":49},[54,83,84],{"class":56,"line":57},[54,85,87],{"class":86},"sgsFI","{\n",[54,89,91,95,98,102],{"class":56,"line":90},2,[54,92,94],{"class":93},"sYu0t","  \"name\"",[54,96,97],{"class":86},": ",[54,99,101],{"class":100},"sYBdl","\"get_bodenrichtwert\"",[54,103,104],{"class":86},",\n",[54,106,108,111,113,116],{"class":56,"line":107},3,[54,109,110],{"class":93},"  \"description\"",[54,112,97],{"class":86},[54,114,115],{"class":100},"\"Amtlichen Bodenrichtwert für eine deutsche Adresse abrufen\"",[54,117,104],{"class":86},[54,119,121,124],{"class":56,"line":120},4,[54,122,123],{"class":93},"  \"parameters\"",[54,125,126],{"class":86},": {\n",[54,128,130,133,135,138],{"class":56,"line":129},5,[54,131,132],{"class":93},"    \"type\"",[54,134,97],{"class":86},[54,136,137],{"class":100},"\"object\"",[54,139,104],{"class":86},[54,141,143,146,149,152,154,157,159,162,165,168,170,172,174,176],{"class":56,"line":142},6,[54,144,145],{"class":93},"    \"properties\"",[54,147,148],{"class":86},": { ",[54,150,151],{"class":93},"\"address\"",[54,153,148],{"class":86},[54,155,156],{"class":93},"\"type\"",[54,158,97],{"class":86},[54,160,161],{"class":100},"\"string\"",[54,163,164],{"class":86}," }, ",[54,166,167],{"class":93},"\"nutzungsart\"",[54,169,148],{"class":86},[54,171,156],{"class":93},[54,173,97],{"class":86},[54,175,161],{"class":100},[54,177,178],{"class":86}," } },\n",[54,180,182,185,188,190],{"class":56,"line":181},7,[54,183,184],{"class":93},"    \"required\"",[54,186,187],{"class":86},": [",[54,189,151],{"class":100},[54,191,192],{"class":86},"]\n",[54,194,196],{"class":56,"line":195},8,[54,197,198],{"class":86},"  }\n",[54,200,202],{"class":56,"line":201},9,[54,203,204],{"class":86},"}\n",[14,206,207,208,212,213,217],{},"Das funktioniert, muss aber für jedes Framework einzeln gepflegt werden — ändert sich ein Parameter, aktualisierst du jede Integration separat. Mit MCP entfällt das: Der Client fragt den Server bei der Verbindung selbst nach den verfügbaren Werkzeugen, inklusive Beschreibung und Parametern. Das Modell weiß dadurch, ",[209,210,211],"em",{},"wann"," es den Bodenrichtwert nachschlagen soll, ohne dass du es ihm in jeder Tool-Definition manuell erklärst — genau das macht aus einem ratenden ein nachschlagendes Modell (warum der Unterschied zählt: ",[21,214,216],{"href":215},"\u002Fblog\u002Fwarum-ki-bodenrichtwert-halluziniert","Warum dein KI-Assistent halluziniert",").",[27,219,221],{"id":220},"der-verbindungsablauf-oauth-discovery","Der Verbindungsablauf (OAuth-Discovery)",[14,223,224],{},"Anders als ein API-Key-Setup handelt MCP die Authentifizierung über OAuth aus. Der Client muss nichts außer der URL kennen — den Rest findet er selbst. Das Ergebnis: kein manuelles Kopieren von Tokens, kein Konfigurationsfile mit Geheimnissen. Genau deshalb genügt in jedem MCP-Client nur die URL.",[226,227,231],"collapsible",{"close-text":228,"name":229,"open-text":230},"Technische Details ausblenden:","OAuth-Discovery","Technische Details:",[232,233,234,250,261,264],"ol",{},[235,236,237,238,241,242,245,246,249],"li",{},"Der Client ruft ",[51,239,240],{},"\u002Fmcp"," ohne Token auf und erhält ",[35,243,244],{},"401"," mit einem ",[51,247,248],{},"WWW-Authenticate","-Header, der auf die Resource-Metadaten verweist.",[235,251,252,253,256,257,260],{},"Über die ",[51,254,255],{},".well-known","-Endpunkte entdeckt der Client den Authorization-Server (RFC 9728 \u002F RFC 8414) — die OAuth-Endpunkte liegen auf ",[51,258,259],{},"bodenrichtwert.ai",".",[235,262,263],{},"Der Client registriert sich dynamisch, öffnet den Browser zur Anmeldung, du bestätigst.",[235,265,266],{},"Mit dem ausgestellten Bearer-Token spricht der Client den MCP-Server an — die Session steht.",[27,268,270],{"id":269},"beispiel-claude-desktop-referenz-client","Beispiel: Claude Desktop (Referenz-Client)",[272,273,275,280,286,290,297,305,309],"steps",{"level":274},"4",[276,277,279],"h4",{"id":278},"einstellungen-öffnen","Einstellungen öffnen",[14,281,282,283,260],{},"Öffne in Claude Desktop die Einstellungen und wähle ",[35,284,285],{},"„Customize\"",[276,287,289],{"id":288},"custom-connector-hinzufügen","Custom Connector hinzufügen",[14,291,292,293,296],{},"Klicke auf ",[35,294,295],{},"„Custom Connector hinzufügen\""," und trage diese Adresse ein:",[43,298,299],{"className":45,"code":46,"filename":47,"language":48,"meta":49,"style":49},[51,300,301],{"__ignoreMap":49},[54,302,303],{"class":56,"line":57},[54,304,46],{"class":60},[276,306,308],{"id":307},"anmelden","Anmelden",[14,310,311,312,260],{},"Einmal anmelden — im Chat erscheint die Abfrage danach als ",[51,313,314],{},"get_bodenrichtwert",[316,317],"docs-claude-connector-mockup",{},[27,319,321],{"id":320},"in-anderen-clients-und-eigenen-agenten","In anderen Clients und eigenen Agenten",[14,323,324,325,328,329,333,334,338],{},"Das Prinzip ist überall identisch: Server-URL eintragen, OAuth-Flow oben bestätigen, fertig. Perplexity, Cursor, Windsurf, Zed, selbst gehostete Clients (etwa ",[51,326,327],{},"claude-code",") und lokale Modelle mit MCP-Adapter (Ollama) funktionieren alle so — die vollständige Client-Tabelle mit den jeweiligen Einstellungsorten steht in den ",[21,330,332],{"href":331},"\u002Fdocs\u002Fmcp-server","Docs → MCP-Server",". Für Frameworks, die noch kein MCP sprechen, ist die ",[21,335,337],{"href":336},"\u002Fdocs\u002Frest-api\u002Fbodenrichtwert","REST-API"," der direktere Weg.",[27,340,342],{"id":341},"was-das-tool-zurückgibt","Was das Tool zurückgibt",[14,344,345,346,349],{},"Die Antwort ist dieselbe normalisierte Struktur wie bei der REST-API: Bodenrichtwert(e) pro Nutzungsart, Stichtag, Gutachterausschuss, Koordinaten — plus das ",[51,347,348],{},"attribution","-Objekt und den Disclaimer. Mehrere Zonen pro Punkt kommen als Array; SH\u002FSN\u002FBY werden mit einem klaren Block beantwortet statt mit Falschwerten.",[351,352,354],"note",{"icon":353},"i-lucide-shield-check",[14,355,356,359],{},[35,357,358],{},"Compliance ist eingebaut:"," Jede Antwort trägt die dl-de\u002Fby-2-0-Attribution und den Hinweis, dass der Bodenrichtwert ein Orientierungswert ist — kein Verkehrswert, kein Verkaufspreis, keine Rechtsberatung. Reich beides in deinem Client mit durch.",[27,361,363],{"id":362},"ein-beispiel-im-chat","Ein Beispiel im Chat",[365,366,367],"blockquote",{},[14,368,369,372],{},[35,370,371],{},"Du (in Claude):"," Wie hoch ist der amtliche Bodenrichtwert für die Musterstraße 12 in Köln, Nutzungsart Wohnen?",[14,374,375,376,378,379,382,383,386],{},"Claude erkennt selbst, dass die Frage zum verbundenen Werkzeug passt, ruft ",[51,377,314],{}," mit ",[51,380,381],{},"address=\"Musterstraße 12, Köln\""," und ",[51,384,385],{},"nutzungsart=\"W\""," auf und bekommt strukturiert zurück:",[43,388,390],{"className":77,"code":389,"language":79,"meta":49,"style":49},"{\n  \"bodenrichtwerte\": [\n    { \"nutzungsart\": \"Wohnen\", \"code\": \"W\", \"brw_euro_pro_m2\": 620, \"stichtag\": \"2025-01-01\", \"gutachterausschuss\": \"Köln\" }\n  ],\n  \"attribution\": { \"text\": \"© Daten der Gutachterausschüsse für Grundstückswerte 2025, dl-de\u002Fby-2-0\" }\n}\n",[51,391,392,396,404,460,465,482],{"__ignoreMap":49},[54,393,394],{"class":56,"line":57},[54,395,87],{"class":86},[54,397,398,401],{"class":56,"line":90},[54,399,400],{"class":93},"  \"bodenrichtwerte\"",[54,402,403],{"class":86},": [\n",[54,405,406,409,411,413,416,419,422,424,427,429,432,434,437,439,442,444,447,449,452,454,457],{"class":56,"line":107},[54,407,408],{"class":86},"    { ",[54,410,167],{"class":93},[54,412,97],{"class":86},[54,414,415],{"class":100},"\"Wohnen\"",[54,417,418],{"class":86},", ",[54,420,421],{"class":93},"\"code\"",[54,423,97],{"class":86},[54,425,426],{"class":100},"\"W\"",[54,428,418],{"class":86},[54,430,431],{"class":93},"\"brw_euro_pro_m2\"",[54,433,97],{"class":86},[54,435,436],{"class":93},"620",[54,438,418],{"class":86},[54,440,441],{"class":93},"\"stichtag\"",[54,443,97],{"class":86},[54,445,446],{"class":100},"\"2025-01-01\"",[54,448,418],{"class":86},[54,450,451],{"class":93},"\"gutachterausschuss\"",[54,453,97],{"class":86},[54,455,456],{"class":100},"\"Köln\"",[54,458,459],{"class":86}," }\n",[54,461,462],{"class":56,"line":120},[54,463,464],{"class":86},"  ],\n",[54,466,467,470,472,475,477,480],{"class":56,"line":129},[54,468,469],{"class":93},"  \"attribution\"",[54,471,148],{"class":86},[54,473,474],{"class":93},"\"text\"",[54,476,97],{"class":86},[54,478,479],{"class":100},"\"© Daten der Gutachterausschüsse für Grundstückswerte 2025, dl-de\u002Fby-2-0\"",[54,481,459],{"class":86},[54,483,484],{"class":56,"line":142},[54,485,204],{"class":86},[365,487,488],{},[14,489,490,493],{},[35,491,492],{},"Claude:"," Der amtliche Bodenrichtwert für Wohnbauflächen liegt bei 620 €\u002Fm² (Stichtag 1. Januar 2025, Gutachterausschuss Köln). Quelle: dl-de\u002Fby-2-0.",[14,495,496],{},"Der Client entscheidet selbst, wann er das Tool braucht. Fragst du stattdessen nach einer anderen Nutzungsart oder einer zweiten Adresse, ruft Claude dasselbe Tool erneut mit anderen Parametern auf — ohne dass du dafür etwas konfigurierst.",[498,499],"hr",{},[14,501,502],{},[209,503,504,505,418,509,512,513,517,518,260],{},"MCP-Server testen: ",[21,506,508],{"href":507},"\u002Flogin","Token bzw. Account holen",[51,510,511],{},"https:\u002F\u002Fmcp.bodenrichtwert.ai\u002Fmcp"," in deinem Client eintragen — die ersten Abfragen sind im ",[21,514,516],{"href":515},"\u002Fpricing","14-Tage-Trial"," frei. Volle Doku: ",[21,519,332],{"href":331},[521,522,523],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}",{"title":49,"searchDepth":107,"depth":107,"links":525},[526,527,528,529,534,535,536],{"id":29,"depth":90,"text":30},{"id":70,"depth":90,"text":71},{"id":220,"depth":90,"text":221},{"id":269,"depth":90,"text":270,"children":530},[531,532,533],{"id":278,"depth":120,"text":279},{"id":288,"depth":120,"text":289},{"id":307,"depth":120,"text":308},{"id":320,"depth":90,"text":321},{"id":341,"depth":90,"text":342},{"id":362,"depth":90,"text":363},"Entwickler","2026-07-27","Was hinter der MCP-Anbindung steckt — Streamable HTTP, OAuth-Discovery — und wie du den Server in Claude Desktop, Perplexity, Cursor, eigenen Agenten oder jedem anderen MCP-fähigen Client nutzt.",false,"md","\u002Fblog\u002Fmcp-server-integrieren.webp",{},true,"\u002Fblog\u002Fmcp-server-integrieren",{"title":5,"description":539},null,"3.blog\u002F12.mcp-server-integrieren","77caRNzBe4BxoKkbEWZlUIJHSFfMp1EBuR7OqHwUfq8",[551,555],{"title":552,"path":215,"stem":553,"description":554,"series":547,"children":-1},"Warum dein KI-Assistent beim Bodenrichtwert halluziniert — und wie das aufhört","3.blog\u002F9.warum-ki-bodenrichtwert-halluziniert","ChatGPT und Claude erfinden Bodenrichtwerte mit voller Überzeugung. Hier erfährst du, warum das technisch passiert, woran du erfundene Werte erkennst und wie du es abstellst.",{"title":556,"path":23,"stem":557,"description":558,"series":559,"children":-1},"Bodenrichtwert mit Claude abfragen – Schritt für Schritt","3.blog\u002F5.bodenrichtwert-mit-claude-abfragen","So fragst du amtliche Bodenrichtwerte direkt in Claude ab – ohne Amtsportal, ohne Karten klicken. Anleitung in einfachen Schritten, mit Beispiel-Dialog.","ki-assistent-abfragen",1787435677395]