Skip to main content
Glama
XfeaturesGroup

Xfeatures Athenaeum MCP

Official

Xfeatures Athenaeum

Xfeatures アプリケーション、人、AI エージェントをつなぐセキュアなナレッジレイヤー。

CI Cloudflare Workers MCP OAuth 2.0 Licence

組織内のあらゆるアプリケーション、人、AI エージェントのための、単一の認証付きナレッジ・検索サービス。正確な事実は D1 に、ドキュメントは R2 に、セマンティック検索は Cloudflare AI Search 経由で実行されます。そして、いかなるクライアントもこれらに直接アクセスすることはありません。

呼び出し側は RESTWorkers RPC、または MCP で通信します。Athenaeum はすべての呼び出しにおいて、誰が問い合わせているのか、その人が何を閲覧できるのかを解決し、結果を返す前にすべての結果をライブデータベースに対して再検証します。

Caller ──▶ REST / RPC / MCP ──▶ authenticate ▸ authorize ▸ audit ──▶ D1 · R2 · AI Search

ソースコード公開 — プロプライエタリソフトウェアであり、オープンソースではありません。 本コードは Xfeatures Proprietary Source License の下で、閲覧・クローン・私的評価が可能です。本番サービスとしての運用、商用利用、または修正版の再配布には、別途書面による許可が必要です。詳細は ライセンス を参照してください。

存在理由

各エージェントに独自のデータベース、独自のドキュメントコピー、独自の手作り RAG パイプラインを与えると、エージェントごとに 1 つのナレッジベースができあがります——それぞれが異なる形で陳腐化し、どれもアクセス制御されていません。Athenaeum はその代替案です。1 つのコーパス、1 つの権限モデル、1 つの監査証跡、そしてエージェントごとのスライスを提供します。

Related MCP server: Volterra Knowledge Engine

保証されること

  • アイデンティティはクライアントが主張するものではありません。 呼び出し側は資格情報を提示します。権限は、検証済みのアイデンティティをキーとした Athenaeum 自身のデータベースから取得されます。トークンのスコープを編集しても何も得るものはありません。

  • 分類とドメインはすべての呼び出しで強制されます。 support ドメインで INTERNAL にクリアされたサポートエージェントは、同じドメインに分類された RESTRICTED ドキュメントを閲覧できません——その存在を知ることもできません。

  • 検索インデックスは権威ではありません。 取得されたすべてのチャンクは、返される前にライブデータベースの行に対して再検証されます。古いインデックスや改ざんされたインデックスはコンテンツを公開できず、置き換えられたバージョンが現在のバージョンのアイデンティティで提供されることもありません。

  • 取得された知識は証拠であり、指示ではありません。 Athenaeum は LLM を呼び出しません。引用付きのパッセージを返すだけです。呼び出し側のエージェントが回答を合成し、そのコンテンツを信頼できないものとして扱う責任を負います。

  • 公開には人間が必要です。 エージェントはドキュメントを下書きし、レビューに提出できます。公開する手段を提供するトランスポートはありません。

  • 手動での削除はありません。 ドキュメントはゴミ箱に移動し、72 時間は復元可能で、スケジュールされたジョブによってパージされます——ボタンで削除されることはありません。

2 種類の知識

Athenaeum は、正確な事実とセマンティックな知識を異なる方法で保存します。なぜなら、それらは異なる方法で失敗するからです。

正確な事実

セマンティックな知識

plans/annual-pro の価格は 299

「当社の返金ポリシーは実際には何と言っているか」

保存先

D1、構造化された行として

R2、正規のドキュメントバイトとして

取得方法

名前空間 + キーによる直接ルックアップ

AI Search、その後 D1 で再チェック

不確かな場合の回答

NOT_FOUND

NO_RELIABLE_MATCH

価格が必要なエージェントは、価格を検索すべきではありません。正しくなければならない数値は事実のルックアップです。人が読むパッセージはドキュメントです。類似性検索からもっともらしい間違った価格を取得することは、まさにこの分割が防ごうとしている失敗です。

各ストアの用途

  • D1 は権威です。事実、ドキュメントメタデータ、カタログ、エージェント、ロール、権限、クォータ、監査証跡。すべてのアクセス決定は D1 から行われ、キャッシュやインデックスからは決して行われません。

  • R2 は正規のドキュメントコンテンツを保持し、バージョンごとに 1 つの不変オブジェクトです。キーはサーバー生成で、人間が閲覧しやすいように分類とドメインを埋め込んでいます——バケットは公開されないため、これらは明示的に セキュリティ境界ではありません

  • AI Search は R2 上のインデックスであり、それ以上のものではありません。どこを見るべきかのヒントです。呼び出し側が何を閲覧できるかの権威ではありません。

Athenaeum の位置づけ

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 は Xfeatures エコシステムのアイデンティティプラットフォームです。誰が呼び出しているか にのみ答え、それ以外は何も答えません: Athenaeum はイントロスペクトされたアイデンティティを受け取り、自身のデータベースから権限を解決します。Account トークンはあなたが誰であるかを証明できますが、ここでは何も得るものはありません。(Account は別のプライベートシステムです。このリポジトリは、それが公開するパブリックコントラクト——RFC 7662 イントロスペクション——を文書化しており、その実装は文書化していません。)

  • Xfeatures HQ は、人々がドキュメントを管理し、レビューして公開し、アクセスを管理するコントロールプレーンです。HQ は Athenaeum 内で特別な地位を持ちません——独自のマシン資格情報で認証し、すべての呼び出しで承認されます。HQ のプリンシパルを失効させると、Account のアイデンティティに触れることなく、HQ を遮断します。

セキュリティモデル

5 つのプロパティ。それぞれが慣習ではなくコードで強制されます:

  1. アイデンティティは解決され、受け入れられません。 権限は、検証されたアイデンティティをキーにした新しい D1 読み取りから、すべての呼び出しで取得されます。呼び出し側が送信できるものは、閲覧範囲を広げることはできません。

  2. すべての読み取りに 2 つの独立したゲート。 スコープ権限 (documents.read.<domain>) 分類権限 (knowledge.classification.<TIER>)。一方だけを持っていても拒否されます。

  3. 来歴は記録され、推測されません。 すべてのドキュメントはソースタイプと参照を持ち、すべてのバージョンは誰がなぜ書いたかを記録し、すべての認証済み呼び出し——許可されたものも拒否されたものも——監査イベントを書き込みます。

  4. バージョンは不変です。 編集はバージョンを追加します。書き換えは決して行われません。ロールバックは以前のバージョンを 新しいバージョンとして 再公開します。履歴は証拠であるため、何も上書きしません。

  5. 現在バージョンとの整合性。 検索ヒットは、チャンクのソースオブジェクトがドキュメントの現在のバージョンであり、ライブ行がまだアクティブであり、呼び出し側が閲覧できる分類をまだ保持している場合にのみ提供されます。古いインデックスは、置き換えられたバージョンを現在のバージョンのアイデンティティで公開できず、アーカイブ、再分類、またはゴミ箱に移動されたものを公開できません。

取得されたコンテンツはデータであり、指示ではありません——Athenaeum は LLM を呼び出しません。これらが何に基づいているかは THREAT-MODEL.md を、どこで保証が終わるかは SECURITY-ASSUMPTIONS.md を参照してください。

クイックスタート

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"}'

完全なウォークスルー: REST · MCP

ドキュメント

ドキュメント

内容

ARCHITECTURE.md

各要素がどのように組み合わさるか、そしてその理由

AUTHENTICATION.md

資格情報、ゲート、失効、障害モード

OAUTH-PKCE.md

人と CLI のためのインタラクティブログイン

OAUTH-CLIENT-CREDENTIALS.md

サービスのためのマシンログイン

QUICKSTART-REST.md

REST で最初の結果を得る

AGENT-INTEGRATION.md

RPC、REST、または MCP でエージェントを接続する

THREAT-MODEL.md

これが何を防御するか、そしてどのように

SECURITY-ASSUMPTIONS.md

保証が依存するもの

LOCAL-DEVELOPMENT.md

自分のマシンで実行する

DEPLOYMENT.md

環境を構築する

openapi.yaml

完全な REST サーフェス。CI でルートテーブルと照合

接続方法

このリポジトリはサービス本体です。開発者向けのサーフェスはそれぞれ独自のリポジトリにあり、それぞれに独自の README、例、リリースサイクルがあります:

リポジトリ

使用する場面

XfeaturesAthenaeumMCP

Model Context Protocol で AI エージェントを接続する場合。エンドポイント、両方のトークンフロー、9 つのツール、接続プローブ。

XfeaturesAthenaeumSDK

TypeScript で型付きクライアントを書く場合。依存関係なし。型は同じパッケージにあります。

XfeaturesAthenaeumCLI

ターミナルから検索したい場合。PKCE でサインインし、シークレットの設定は不要。

MCP サーバー実装はここ、src/mcp/ にあります。 REST と Workers RPC と同じ authenticate → authorize → audit パイプラインを共有するためです。MCP リポジトリはクライアント向けの半分です: 接続方法とツールの動作。REST も同様にここで実装されています——SDK はそのクライアントであるため、別の REST サーバーリポジトリを維持する必要はありません。

リクエストの決定方法

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"]

3 つのトランスポートすべてで同じコードが実行されます。MCP や「内部」呼び出し側に対して緩い ACL はありません。

ドキュメントライフサイクル

ドキュメントはバージョンレベルで不変です。編集は新しいバージョンを書き込みます。履歴を書き換えることは決してありません。ロールバックは以前のバージョンを新しいものとして再公開します。

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 72h

ゴミ箱は遅延のある削除ボタンではありません。ゴミ箱に移動されたドキュメントは、HQ、REST、MCP のすべての取得サーフェスから即座に消えます。AI Search のヒットもライブデータベースチェックで拒否されます。72 時間後、スケジュールされたジョブが正規のコンテンツとその履歴オブジェクトをパージしますが、監査トレイルは残ります。

開発

npm install
npm run typecheck && npm run lint && npm test

テストは @cloudflare/vitest-pool-workers を使用して実際の Workers ランタイム内で実行されます。統合テストは、実行ごとに Miniflare バックの D1 に実際のマイグレーションを適用し、ソース検査テストのセットは、たとえば権限ゲートなしで新しい管理ルートが追加された場合にビルドを失敗させます。

ローカルでサービスを実行するには、LOCAL-DEVELOPMENT.md を参照してください。

セキュリティ

セキュリティの問題について公開の issue を開かないでください。プライベートな報告方法は SECURITY.md を参照してください。

中心となる主張は、完全に侵害された低権限エージェントが、有効な認証情報をすべて保持していたとしても、自身の権限セットの外にあるものを読み取り、変更し、破壊することはできず、より強力なアイデンティティに権限昇格することもできないということです。threat modelはその根拠を示し、SECURITY-ASSUMPTIONS.mdはその限界を示しています。

このコードベースは社内の敵対的レビューを経ており、各指摘に対するリグレッションテストが、脆弱なコードに対して失敗することを検証済みです。これは独立したペネトレーションテストの代わりになるものではなく、システムに欠陥がないことを主張するものでもありません。

構築されていないもの

実際以上に含意していると受け取られないよう、境界を明確にします:

  • PDF取り込み。 検証済みの安全なWorker内PDFテキスト抽出は配線されていません。上流でMarkdownまたはプレーンテキストに変換してください。

  • アドホックなロール・権限編集。 ロールは完全にモデル化されシードされており、エージェント作成時に付与されますが、後から編集するCRUD画面はありません。

  • 管理一覧ビュー。 ファクト、製品、プラン、サービス、ポリシー用のものはありません。作成と更新は存在しますが、ページネーション付きの「タイプXの全件一覧」はありません。

  • キャッシュレイヤー。 意図的に省かれています。AI Search独自のレスポンスキャッシュは無効化されています。エージェントごとの分類とドメインフィルタに関するキャッシュキーの契約が文書化されておらず、それなしでは「あるエージェントのキャッシュ結果が、異なるスコープのエージェントに届くことは決してない」ことを証明できないためです。

  • 一括操作。 一括公開、一括ゴミ箱、一括パージはありません。

ライセンス

ソースコード公開 — プロプライエタリソフトウェアであり、オープンソースではありません。

このリポジトリはXfeatures Proprietary Source Licenseの下でライセンスされています。MIT、Apache、GPL、その他のOSI承認ライセンスではありません。簡単に言うと:

許可なく行ってよいこと

書面による許可なく行ってはならないこと

ソースの閲覧、クローン、学習

自分自身または他者のために本番サービスとして実行

非本番環境での非公開評価

ホスト型またはマネージドサービスとして提供、またはその派生物を提供

GitHubの機能によるフォーク

販売、サブライセンス、再ライセンス

責任あるセキュリティ調査(SECURITY.mdを参照)

変更したコピーの配布、または通知の削除

競合プラットフォームの構築に、その全部または実質的な部分を使用

セキュリティ調査の適用除外や商用ライセンスのリクエスト方法を含む完全な条件は、LICENSEにあります。

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides AI models with structured access to external data and services, acting as a bridge between AI assistants and applications, databases, and APIs in a standardized, secure way.
    2
  • A
    license
    Not graded
    quality
    C
    maintenance
    A 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

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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