Xfeatures Athenaeum MCP
OfficialXfeatures Athenaeum
Die sichere Wissensebene, die Xfeatures-Anwendungen, Menschen und KI-Agenten verbindet.
Ein authentifizierter Wissens- und Abrufdienst für jede Anwendung, jede Person und jeden KI-Agenten in einer Organisation. Exakte Fakten liegen in D1, Dokumente in R2, semantische Suche läuft über Cloudflare AI Search – und nichts spricht jemals direkt mit diesen.
Aufrufer sprechen REST, Workers RPC oder MCP. Athenaeum ermittelt bei jedem einzelnen Aufruf, wer fragt und was er sehen darf, und prüft dann jedes Ergebnis erneut gegen die Live-Datenbank, bevor es zurückgegeben wird.
Caller ──▶ REST / RPC / MCP ──▶ authenticate ▸ authorize ▸ audit ──▶ D1 · R2 · AI SearchQuellcode verfügbar – proprietäre Software, nicht Open Source. Sie dürfen diesen Code unter der Xfeatures Proprietary Source License lesen, klonen und privat bewerten. Der Betrieb als Produktionsdienst, die kommerzielle Nutzung oder die Weiterverbreitung einer modifizierten Kopie erfordert eine separate schriftliche Genehmigung. Siehe Lizenz unten.
Warum es existiert
Geben Sie jedem Agenten eine eigene Datenbank, eine eigene Kopie der Dokumente und eine eigene handgebaute RAG-Pipeline, und Sie erhalten eine Wissensbasis pro Agent – jede auf andere Weise veraltet, keine davon zugriffskontrolliert. Athenaeum ist die Alternative: ein Korpus, ein Berechtigungsmodell, ein Audit-Trail und pro Agent zugeschnittene Ausschnitte davon.
Related MCP server: Volterra Knowledge Engine
Was es garantiert
Identität wird nie vom Client behauptet. Ein Aufrufer präsentiert eine Anmeldeinformation; Berechtigungen stammen aus Athenaeums eigener Datenbank, basierend auf der verifizierten Identität. Das Bearbeiten des Umfangs eines Tokens bringt nichts.
Klassifizierung und Domäne werden bei jedem Aufruf durchgesetzt. Ein Support-Agent, der für
supportaufINTERNALfreigeschaltet ist, kann einRESTRICTED-Dokument, das unter derselben Domäne abgelegt ist, nicht sehen – und erfährt nie, dass es existiert.Der Suchindex ist nicht maßgeblich. Jeder abgerufene Ausschnitt wird vor der Rückgabe erneut gegen die Live-Datenbankzeile validiert, sodass ein veralteter oder manipulierter Index keine Inhalte freigeben kann und eine überholte Version nicht unter der Identität der aktuellen Version ausgeliefert werden kann.
Abgerufenes Wissen ist Beweis, nicht Anweisung. Athenaeum ruft nie ein LLM auf. Es gibt Passagen mit Zitaten zurück; der aufrufende Agent synthetisiert die Antwort und ist dafür verantwortlich, diesen Inhalt als nicht vertrauenswürdig zu behandeln.
Veröffentlichung erfordert einen Menschen. Ein Agent kann ein Dokument entwerfen und zur Überprüfung einreichen. Kein Transport bietet eine Möglichkeit, eines zu veröffentlichen.
Nichts wird von Hand gelöscht. Dokumente werden in den Papierkorb verschoben, sind 72 Stunden lang wiederherstellbar und werden von einem geplanten Job gelöscht – nie durch einen Knopf.
Zwei Arten von Wissen
Athenaeum speichert exakte Fakten und semantisches Wissen unterschiedlich, weil sie auf unterschiedliche Weise versagen.
Exakte Fakten | Semantisches Wissen | |
Beispiel |
| „Was sagt unsere Rückerstattungsrichtlinie eigentlich?" |
Lebt in | D1, als strukturierte Zeilen | R2, als kanonische Dokumentbytes |
Abgerufen durch | Direkte Suche nach Namespace + Schlüssel | AI Search, dann erneut gegen D1 geprüft |
Antwort bei Unsicherheit |
|
|
Ein Agent, der einen Preis benötigt, sollte nie danach suchen. Eine Zahl, die stimmen muss, ist eine Faktenabfrage; eine Passage, die eine Person lesen wird, ist ein Dokument. Aus einer Ähnlichkeitssuche einen plausibel aussehenden falschen Preis zu erhalten, ist genau das Versagen, das diese Trennung verhindern soll.
Wofür jeder Speicher da ist
D1 ist die Autorität. Fakten, Dokumentmetadaten, der Katalog, Agenten, Rollen, Berechtigungen, Kontingente und der Audit-Trail. Jede Zugriffsentscheidung wird aus D1 getroffen, nie aus einem Cache und nie aus dem Index.
R2 enthält kanonischen Dokumentinhalt, ein unveränderliches Objekt pro Version. Schlüssel werden serverseitig generiert und enthalten Klassifizierung und Domäne für die menschliche Durchsuchbarkeit – sie sind ausdrücklich keine Sicherheitsgrenze, da der Bucket nie öffentlich erreichbar ist.
AI Search ist ein Index über R2 und nichts weiter. Es ist ein Hinweis darauf, wo man suchen sollte. Es ist nie die Autorität darüber, was ein Aufrufer sehen darf.
Wo Athenaeum sitzt
flowchart LR
people["People"] --> hq["Xfeatures HQ<br/>control plane"]
agents["AI agents<br/>and applications"] --> ath
hq -- "machine credential,<br/>authorized like anyone else" --> ath["Xfeatures Athenaeum"]
ath -- "token introspection" --> acc["Xfeatures Account<br/>identity"]
hq --> acc
ath --> stores[("D1 · R2 · AI Search")]Xfeatures Account ist die Identitätsplattform für das Xfeatures-Ökosystem. Es beantwortet wer aufruft und sonst nichts: Athenaeum nimmt die introspizierte Identität und löst Berechtigungen aus seiner eigenen Datenbank auf. Ein Account-Token kann beweisen, wer Sie sind, und bringt Ihnen hier trotzdem nichts. (Account ist ein separates, privates System; dieses Repository dokumentiert den öffentlichen Vertrag, den es bereitstellt – RFC 7662-Introspection – nicht seine Implementierung.)
Xfeatures HQ ist die Kontrollebene, auf der Menschen Dokumente verwalten, überprüfen und veröffentlichen und Zugriff verwalten. HQ hat keinen besonderen Status innerhalb von Athenaeum – es authentifiziert sich mit seiner eigenen Maschinenanmeldeinformation und wird bei jedem Aufruf autorisiert. Das Widerrufen des HQ-Prinzipals schneidet es ab, ohne seine Account-Identität zu berühren.
Das Sicherheitsmodell
Fünf Eigenschaften, jede im Code durchgesetzt und nicht durch Konvention:
Identität wird aufgelöst, nie akzeptiert. Berechtigungen stammen bei jedem Aufruf aus einem frischen D1-Lesezugriff, der auf einer verifizierten Identität basiert. Nichts, was ein Aufrufer sendet, kann erweitern, was er sehen darf.
Zwei unabhängige Tore bei jedem Lesezugriff. Eine Bereichsberechtigung (
documents.read.<domain>) und eine Klassifizierungsberechtigung (knowledge.classification.<TIER>). Nur eine davon zu haben, verweigert den Zugriff.Herkunft wird aufgezeichnet, nicht abgeleitet. Jedes Dokument trägt seinen Quelltyp und seine Referenz, jede Version zeichnet auf, wer es geschrieben hat und warum, und jeder authentifizierte Aufruf – erlaubt oder verweigert – schreibt ein Audit-Ereignis.
Versionen sind unveränderlich. Bearbeiten fügt eine Version hinzu; es überschreibt nie eine. Rollback veröffentlicht eine frühere Version als neue Version. Geschichte ist Beweis, also überschreibt nichts sie.
Abgleich der aktuellen Version. Ein Suchergebnis wird nur ausgeliefert, wenn das Quellobjekt des Ausschnitts die aktuelle Version des Dokuments ist und die Live-Zeile weiterhin sagt, dass es aktiv ist und noch eine Klassifizierung trägt, die der Aufrufer sehen darf. Ein veralteter Index kann keine überholte Version unter der Identität der aktuellen Version freigeben und kann nichts freigeben, das vor einem Moment archiviert, neu klassifiziert oder in den Papierkorb verschoben wurde.
Abgerufener Inhalt ist Daten, nie Anweisung – Athenaeum ruft nie ein LLM auf. Siehe THREAT-MODEL.md für die Grundlagen und SECURITY-ASSUMPTIONS.md für deren Grenzen.
Schnellstart
TOKEN=$(curl -s https://auth.xfeatures.net/oauth/token \
-d grant_type=client_credentials \
-d "client_id=$CLIENT_ID" -d "client_secret=$CLIENT_SECRET" | jq -r .access_token)
curl -s https://athenaeum.xfeatures.net/v1/knowledge/search \
-H "Authorization: Bearer $TOKEN" -H 'content-type: application/json' \
-d '{"query": "what is the refund window", "domain": "support"}'Vollständige Anleitungen: REST · MCP
Dokumentation
Dokument | Was es abdeckt |
Wie die Teile zusammenpassen und warum | |
Anmeldeinformationen, Tore, Widerruf, Fehlermodi | |
Interaktive Anmeldung für Menschen und CLIs | |
Maschinenanmeldung für Dienste | |
Erstes Ergebnis über REST erhalten | |
Verbinden eines Agenten über RPC, REST oder MCP | |
Wogegen dies schützt und wie | |
Wovon die Garantien abhängen | |
Ausführen auf Ihrem Rechner | |
Einrichten einer Umgebung | |
Vollständige REST-Oberfläche, in CI gegen die Routentabelle geprüft |
Verbinden damit
Dieses Repository ist der Dienst. Die entwicklerorientierten Oberflächen leben in eigenen Repositories, sodass jedes sein eigenes README, Beispiele und Release-Rhythmus hat:
Repository | Verwenden Sie es, wenn |
Sie verbinden einen KI-Agenten über das Model Context Protocol. Endpunkt, beide Token-Flows, die neun Tools und eine Verbindungssonde. | |
Sie schreiben TypeScript und möchten einen typisierten Client. Ohne Abhängigkeiten; die Typen leben im selben Paket. | |
Sie möchten von einem Terminal aus suchen. Meldet sich mit PKCE an, kein Geheimnis zu konfigurieren. |
Die MCP-Serverimplementierung bleibt hier, in src/mcp/, weil sie eine gemeinsame Authentifizierungs- → Autorisierungs- → Audit-Pipeline mit REST und Workers RPC teilt. Das MCP-Repository ist die clientorientierte Hälfte: wie man sich verbindet und was die Tools tun. REST ist ebenfalls hier implementiert – das SDK ist sein Client, daher gibt es kein separates REST-Server-Repository zu pflegen.
Wie eine Anfrage entschieden wird
flowchart LR
req["REST · RPC · MCP"] --> authn["authenticate<br/>introspect or RPC key"]
authn --> princ["resolve principal<br/>fresh from D1"]
princ --> authz["authorize<br/>permission + classification + domain"]
authz --> svc["knowledge services"]
svc --> live["re-check every result<br/>against the live row"]
live --> audit["audit the decision"]
audit --> resp["response"]Derselbe Code läuft für alle drei Transporte. Es gibt keine lockerere ACL für MCP oder für „interne“ Aufrufer.
Dokumentlebenszyklus
Dokumente sind auf Versionsebene unveränderlich. Bearbeiten schreibt eine neue Version; es überschreibt nie die Geschichte. Rollback veröffentlicht eine frühere Version als neue.
stateDiagram-v2
[*] --> draft: upload
draft --> pending_review: submit for review
pending_review --> active: approved
pending_review --> draft: rejected
draft --> active: publish
active --> deprecated: supersede
deprecated --> active: republish
active --> archived: archive
draft --> trashed: move to trash
active --> trashed: move to trash
archived --> trashed: move to trash
trashed --> draft: restore
trashed --> active: restore
trashed --> [*]: scheduled purge after 72hDer Papierkorb ist kein Löschknopf mit Verzögerung. Ein in den Papierkorb verschobenes Dokument verlässt sofort jede Abrufoberfläche – HQ, REST, MCP – und jeder AI-Search-Treffer dafür wird durch die Live-Datenbankprüfung abgelehnt. Nach 72 Stunden löscht ein geplanter Job den kanonischen Inhalt und seine historischen Objekte, während der Audit-Trail erhalten bleibt.
Entwicklung
npm install
npm run typecheck && npm run lint && npm testTests laufen innerhalb der echten Workers-Laufzeit über @cloudflare/vitest-pool-workers. Integrationstests wenden die echten Migrationen pro Lauf auf ein Miniflare-gestütztes D1 an, und eine Reihe von Quellcode-Inspektionstests lassen den Build fehlschlagen, wenn beispielsweise eine neue Admin-Route ohne Berechtigungs-Gate hinzugefügt wird.
Um den Dienst lokal auszuführen, siehe LOCAL-DEVELOPMENT.md.
Sicherheit
Bitte öffnen Sie kein öffentliches Issue für ein Sicherheitsproblem – siehe SECURITY.md für private Meldung.
Die zentrale Behauptung lautet, dass ein vollständig kompromittierter Agent mit niedrigen Berechtigungen – inklusive gültiger Anmeldedaten – weiterhin nichts außerhalb seines eigenen Berechtigungssatzes lesen, ändern oder zerstören kann und keine Eskalation zu einer stärkeren Identität möglich ist. Das Threat Model beschreibt, worauf dies beruht; SECURITY-ASSUMPTIONS.md beschreibt, wo die Grenzen liegen.
Diese Codebasis wurde einer internen adversarischen Überprüfung unterzogen, mit einem Regressionstest für jeden Befund, der nachweislich gegen den verwundbaren Code fehlschlägt. Das ist kein Ersatz für einen unabhängigen Penetrationstest und auch keine Behauptung, dass das System frei von Fehlern ist.
Was nicht gebaut wurde
Um die Grenzen direkt anzusprechen, statt mehr zu suggerieren, als vorhanden ist:
PDF-Erfassung. Es ist keine verifiziert sichere PDF-Textextraktion im Worker verdrahtet; konvertieren Sie stattdessen vorgelagert in Markdown oder Klartext.
Ad-hoc-Bearbeitung von Rollen und Berechtigungen. Rollen sind vollständig modelliert und initial befüllt, und die Agentenerstellung gewährt sie, aber es gibt keine CRUD-Oberfläche, um sie nachträglich zu bearbeiten.
Admin-Listenansichten für Fakten, Produkte, Pläne, Dienste und Richtlinien. Erstellen und Aktualisieren existieren; paginierte „Liste alles vom Typ X"-Ansichten nicht.
Eine Caching-Schicht. Bewusst nicht vorhanden. Der eigene Antwort-Cache von AI Search ist deaktiviert, weil dessen Cache-Key-Vertrag in Bezug auf die agentenspezifische Klassifizierung und Domänenfilter nicht dokumentiert ist – und ohne das ist „ein gecachtes Ergebnis eines Agents kann niemals einen anders skopierten Agenten erreichen" nicht beweisbar.
Massenoperationen. Kein Massen-Publishing, kein Massen-Papierkorb, kein Massen-Purge.
Lizenz
Quellcode verfügbar – proprietäre Software, kein Open Source.
Dieses Repository ist unter der Xfeatures Proprietary Source License lizenziert, nicht unter MIT, Apache, GPL oder einer anderen OSI-anerkannten Lizenz. Kurz gesagt:
Sie dürfen, ohne zu fragen | Sie dürfen nicht, ohne schriftliche Genehmigung |
Den Quellcode lesen, klonen und studieren | Es als Produktionsdienst betreiben, für sich selbst oder andere |
Es privat und nicht-produktiv evaluieren | Es oder ein Derivat als gehosteten oder verwalteten Dienst anbieten |
Es über die eigene Funktionalität von GitHub forken | Es verkaufen, unterlizenzieren oder neu lizenzieren |
Verantwortungsvolle Sicherheitsforschung betreiben (siehe SECURITY.md) | Eine modifizierte Kopie verbreiten oder deren Hinweise entfernen |
— | Es oder einen wesentlichen Teil davon zum Aufbau einer konkurrierenden Plattform verwenden |
Die vollständigen Bedingungen, einschließlich der Ausnahme für Sicherheitsforschung und der Möglichkeit, eine kommerzielle Lizenz anzufragen, finden Sie in LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA read-only Model Context Protocol server that exposes a semantic knowledge base to AI agents via 27 tools. It enables querying of documents and data integrated from sources like Notion, SharePoint, HubSpot, and Slack.MIT
- AlicenseNot gradedqualityCmaintenanceA governed, audited Model Context Protocol server that provides AI agents with secure, read-only access to a clinical knowledge base through least-privilege tools, policy validation, and append-only audit logging.MIT
- AlicenseNot gradedqualityBmaintenanceA secure, multi-tenant Model Context Protocol server that gives AI clients controlled access to enterprise knowledge bases, SQL databases, REST APIs, files, and GitHub.Apache 2.0
Related MCP Connectors
Shared, permission-aware company context for AI agents, with provenance, approvals and audit.
A Model Context Protocol server for Wix AI tools
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/XfeaturesGroup/XfeaturesAthenaeum'
If you have feedback or need assistance with the MCP directory API, please join our Discord server