A quick test of the SPIEGEL's MCP server turned into a lesson about data and AI agents

DER SPIEGEL opened its database of NSDAP membership cards to chatbots via a Model Context Protocol (MCP) server. MCP is an open standard that lets an AI assistant access a database. The article of October 21, 2026 links a ChatGPT app and a Claude connector. I wanted a quick test: does the same server work in Mistral Vibe, a chatbot by the French company Mistral? It does. But the test also showed me how much the agent depends on the data, how it finds another way when the exact search fails, and that it still needs an outside source to be sure whose card it has found.

The Claude directory lists the server address, https://nsdap-mcp.prod.ki.spiegel.de/mcp. In Vibe, under Context and Connectors, I created a custom connector with the MCP address. The authentication is done by OAuth 2.1 and needs a free SPIEGEL account.

Vibe, dialog "Add custom connector" with the SPIEGEL server address.
Vibe, dialog "Add custom connector" with the SPIEGEL server address.

After adding the connector, a SPIEGEL page asked me to confirm that an application called mistral-mcp-client may access the server. Then I signed in with my SPIEGEL account.

The SPIEGEL consent page: mistral-mcp-client asks for access to nsdap-mcp.
The SPIEGEL consent page: mistral-mcp-client asks for access to nsdap-mcp.
The connector in Vibe: connection valid, four read-only tools.
The connector in Vibe: connection valid, four read-only tools.

Then, on November 2, 2026, I asked about one person. Werner Haftmann, the art historian behind the first documenta exhibitions, joined the NSDAP on October 1, 1937. My prompt gave his name, birth date and birthplace: "Ich suche den Kunsthistoriker Werner Haftmann, geboren 28. April 1912 in Glowno. Gibt es zu ihm eine Karte?" A clear request about a documented member. But it answered that there is "no card" for him. And it showed the card of a different Werner Haftmann, born 1926 in Duisburg, called him obviously another person, and added a correct note that a missing card proves nothing.

The first prompt, and the panel Vibe showed: a Werner Haftmann born 1926.
The first prompt, and the panel Vibe showed: a Werner Haftmann born 1926.
The first answer: "keine Karte", the namesake, and the note that a missing card proves nothing.
The first answer: "keine Karte", the namesake, and the note that a missing card proves nothing.

I told the agent to look again: "Suche erneut". The second answer found a card under the name "Dr Werner Hartmann", born July 28, 1912 in "Glovno", profession "Bauführer", membership number 4457013, admitted October 1, 1937. The scan shows Haftmann, 28.4.12, Glowno and, as I read it, Kunsthistoriker. Three fields were misread, and the birthplace was spelled Glovno, so an exact search could not find him. What found him was a new search with name and place variants. The fuzzy search tool behind the MCP server returned Hartmann for the surname Haftmann and the birthplace Glowno.

The second prompt, "Suche erneut", and the panel for "Hartmann, Dr Werner", born 28.07.1912 in Glovno.
The second prompt, "Suche erneut", and the panel for "Hartmann, Dr Werner", born 28.07.1912 in Glovno.

Tracking the reasoning process of the agent shows: after my second request it searched the index again with name and place variants, found a near match there, and then went to the web on its own to check the membership number, 4457013, against the Wikipedia page.

The agent's reasoning: it opened Wikipedia and matched the membership number 4.457.013 to the card.
The agent's reasoning: it opened Wikipedia and matched the membership number 4.457.013 to the card.

The whole conversation, with the agent's reasoning, is here as one long screenshot.

The card and its transcription, as the server delivers them. On the scan: Haftmann, Dr. Werner, Kunsthistoriker, 28.4.12, Glowno, Nr. 4457013, Aufn. 1. Okt. 1937. In the database: Hartmann, Dr Werner, 28.07.1912, Glovno, Bauführer, 4.457.013, 01.10.1937.
The card and its transcription, as the server delivers them. On the scan: Haftmann, Dr. Werner, Kunsthistoriker, 28.4.12, Glowno, Nr. 4457013, Aufn. 1. Okt. 1937. In the database: Hartmann, Dr Werner, 28.07.1912, Glovno, Bauführer, 4.457.013, 01.10.1937.
The second answer: why the card belongs to Haftmann, and the statistics of the dataset as of August 24, 2026.
The second answer: why the card belongs to Haftmann, and the statistics of the dataset as of August 24, 2026.

I take several things from this.

Three fields of one card were transcribed wrongly. That was enough for a wrong first answer. An agent is only as good as the data underneath it, and as good as the search that sits on top of the data. Here the second saved the first, but only on the second try.

On my second request it widened the search with name and place variants on its own, which found the card, and it went to Wikipedia to confirm the identity, also on its own.

Wikipedia did not find the card. The index did. Wikipedia only settled whose card it is, and that worked because Haftmann is a well-known person whose membership number is published. The database has about 9 million entries, according to the agent's own summary of the dataset. For almost all of these people there is no outside source. For them, the agent could show the near match, but it has no way to verify that the card belongs to the person asked about. That check falls back on the person who asks, and on the scan.

For an archive or a museum that puts AI transcriptions behind an agent, that matters. The agent does not repair the data. It needs the raw scan next to every transcription and a search that tolerates errors.