Zum Hauptinhalt springen
Zur Entwicklerübersicht

StudioMeyer MCP: öffentliche Dokumentation anbinden

Der Dokumentationsserver unter https://studiomeyer.io/api/docs/mcp stellt ausschließlich öffentliche Lesedokumentation bereit. Er benötigt weder API-Key noch OAuth und greift nicht auf Konto-, Memory- oder Checkoutdaten zu. Kontaktübermittlung und Terminbuchung gehören nicht zu seinen Werkzeugen.

Verbindung über Streamable HTTP

Trage https://studiomeyer.io/api/docs/mcp als Remote-MCP-URL in einen Client mit Streamable-HTTP-Unterstützung ein. Lasse Zugangsdaten weg. Der Client übernimmt Initialisierung und Protokollnachrichten; der Server arbeitet zustandslos mit JSON-Antworten.

Der Endpunkt unterstützt POST und OPTIONS. Ein einfacher GET-Aufruf ist keine MCP-Verbindung. Ermittle die verfügbaren Werkzeuge nach der Verbindung mit tools/list.

Genau zwei lesende Werkzeuge

search erhält query als nicht leeren Text mit höchstens 200 Zeichen und optional limit von 1 bis 5; Standard ist 5. Das Ergebnis enthält results mit id, title, url und snippet. Es durchsucht nur die festgelegten öffentlichen StudioMeyer-Dokumente, nicht das Web.

fetch erhält id: entweder die exakte Dokument-ID oder die unveränderte Canonical-URL aus einem Suchtreffer. Das Ergebnis enthält id, title, url und text. Andere Hosts, private Pfade oder veränderte URLs werden nicht abgerufen. Ein unbekanntes Dokument ergibt ein Werkzeugergebnis mit isError: true.

Erfolgreiche Aufrufe liefern structuredContent und zusätzlich dieselben Daten als JSON in einem Textblock. Prüfe isError, bevor du das Ergebnis verwendest.

Argumente für search
{
  "query": "authentication",
  "limit": 5
}

Argumente für fetch
{
  "id": "authentication"
}

Vollständiges Beispiel mit dem offiziellen MCP-SDK

Das Beispiel verwendet @modelcontextprotocol/sdk in Version 1.32.2, kein StudioMeyer-SDK. Speichere den JavaScript-Code als docs-client.mjs in einem eigenen Beispielordner. Installiere dort das Paket mit den gezeigten Befehlen und starte die Datei mit Node.js.

Der Client initialisiert die Verbindung, liest die Werkzeugliste, sucht öffentliche Auth-Dokumentation und ruft den ersten Treffer per fetch ab. finally schließt den Client auch bei einem Fehler. Es werden keine Produktdaten oder Zugangsdaten übertragen.

Im Beispielordner installieren und starten
npm init -y
npm install @modelcontextprotocol/sdk@1.32.2
node docs-client.mjs

docs-client.mjs
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const client = new Client({
  name: "studiomeyer-docs-example",
  version: "1.0.0"
});
const transport = new StreamableHTTPClientTransport(
  new URL("https://studiomeyer.io/api/docs/mcp")
);

try {
  await client.connect(transport);
  const tools = await client.listTools();
  console.log(tools.tools.map((tool) => tool.name));

  const search = await client.callTool({
    name: "search",
    arguments: { query: "authentication", limit: 5 }
  });
  if (search.isError) throw new Error(JSON.stringify(search.content));
  const results = search.structuredContent?.results;
  if (!Array.isArray(results) || typeof results[0]?.id !== "string") {
    throw new Error("No public document found");
  }

  const document = await client.callTool({
    name: "fetch",
    arguments: { id: results[0].id }
  });
  if (document.isError) throw new Error(JSON.stringify(document.content));
  console.log(document.structuredContent ?? document.content);
} finally {
  await client.close();
}

Sieben öffentliche Dokumente aus gepflegten Quellen

authentication führt zu /auth.md: Zugangsmethoden und Kontogrenzen. pricing führt zu /pricing.md: veröffentlichte Website- und Produkttarife aus den aktuellen Preisquellen. developer-index führt zu /developers/llms.txt: Schnittstellen und weiterführende Verträge.

integration-skill führt zu /.well-known/agent-skills/studiomeyer-services/SKILL.md: die öffentliche Integrationsanleitung. public-api führt zu /api/v1/docs: die öffentliche Website-API als JSON-Dokumentation. Die Inhalte werden aus denselben Buildern erzeugt wie die jeweiligen öffentlichen Dokumente.

public-api-guide führt zu https://studiomeyer.io/en/developers/api.md, mcp-guide zu https://studiomeyer.io/en/developers/mcp.md. Diese beiden Guides stammen aus denselben DE/EN/ES-Inhalten wie die sichtbare Entwicklerdokumentation; ihre Canonical-URLs in der MCP-Allowlist führen zur englischen Markdown-Fassung.

Der Server nimmt keine beliebigen URLs entgegen. Für eine Dokument-ID oder ihre exakte Canonical-URL bekommst du den vorhandenen öffentlichen Inhalt, keine allgemeine Website-Suche und keine privaten Kontoinhalte.

Produkt-MCPs authentifizieren getrennt

Memory, CRM und GEO sind eigene Produktserver. Die anonyme Dokumentationsverbindung meldet dich dort nicht an. Verwende den MCP-Katalog und die Metadaten des jeweiligen Produktservers.

Für eine normale Memory-MCP-Verbindung verwendet der Client OAuth 2.1 Authorization Code mit PKCE (S256). Der dokumentierte Scope memory gewährt vollen Zugriff auf das authentifizierte Memory-Konto; getrennte Lese- und Schreib-Scopes sind nicht implementiert. Erkläre dem Nutzer den Umfang, bevor er die Verbindung genehmigt.

Eigene REST-Skripte können den Tenant-API-Key als Authorization: Bearer senden, wie im Memory-Vertrag beschrieben. Ein Website-Lizenzschlüssel ist kein Memory-Tenant-Key. Produkt-Token, API-Keys und Portal-Cookies gehören weder zum anonymen Dokumentations-MCP noch zur öffentlichen Website-API. Bei 401 folge der WWW-Authenticate-Challenge und der servereigenen OAuth-Discovery.

Discovery und weiterführende Verträge

Die eigene Servercard beschreibt den Dokumentationsserver und seinen anonymen Streamable-HTTP-Endpunkt. Sie ist von den Produktcards getrennt und nutzt das experimentelle MCP-Servercard-Format. Die aktuelle Werkzeugliste liest du vom Server.

Der maschinenlesbare Entwicklerindex, die öffentlichen Agentenhinweise und der MCP-Katalog verlinken die tatsächlichen Verträge. Nutze für API-Anfragen den API-Guide und für einen eigenen Memory-Zugriff dessen separate Dokumentation.