ArchiveBox API
ArchiveBox API - A2A | AG-UI | MCP
バージョン: 0.1.53
概要
ArchiveBox API Pythonラッパー & 高速MCPサーバー!
このリポジトリは、ArchiveBox APIと対話するためのPythonラッパーを提供し、Webアーカイブ機能へのプログラム的なアクセスを可能にします。エージェント型AIのためのModel Context Protocol (MCP) サーバーが含まれており、さまざまな認証メカニズム、可観測性と制御のためのミドルウェア、およびポリシーベースのアクセス制御のためのオプションのEunomia認可機能で強化されています。
貢献を歓迎します!
すべてのAPIレスポンスオブジェクトは、レスポンス呼び出し用にカスタマイズされています。戻り値には parent.value.nested_value 形式でアクセスするか、parent.json() を使用して辞書としてレスポンスを取得できます。
機能:
認証: なし(無効)、静的(内部トークン)、JWT、OAuthプロキシ、OIDCプロキシ、および外部IDプロバイダー用のリモートOAuthを含む、複数の認証タイプをサポートします。
ミドルウェア: 堅牢なサーバー運用のためのログ記録、タイミング計測、レート制限、エラー処理が含まれています。
Eunomia認可: 組み込みまたはリモートのEunomiaサーバー統合による、オプションのポリシーベースの認可機能。
リソース: ArchiveBox設定用の
instance_configを提供します。プロンプト: AI主導の対話のための
cli_add_promptを含みます。
API
API呼び出し:
認証
コアモデル (スナップショット、ArchiveResults、タグ)
CLIコマンド (add, update, schedule, list, remove)
API呼び出しがサポートされていない場合は、カスタムエンドポイントを追加するか、既存のラッパーを変更することで機能を拡張できます。
MCP
上記のすべての利用可能なAPI呼び出しは、MCPツールにラップされています。以下に、ツールの説明と関連タグとともに記載します。
MCPツール
関数名 | 説明 | タグ |
| 指定されたユーザー名とパスワードのAPIトークンを生成します。 |
|
| APIトークンが有効で期限切れでないことを検証します。 |
|
| スナップショットのリストを取得します。 |
|
| abidまたはidで特定のスナップショットを取得します。 |
|
| これらのフィルターに一致するすべてのArchiveResultエントリをリストします。 |
|
| idまたはabidで特定のタグを取得します。 |
|
| abidで特定のスナップショット、ArchiveResult、またはタグを取得します。 |
|
| archivebox addコマンドを実行します。 |
|
| archivebox updateコマンドを実行します。 |
|
| archivebox scheduleコマンドを実行します。 |
|
| archivebox listコマンドを実行します。 |
|
| archivebox removeコマンドを実行します。 |
|
A2Aエージェント
アーキテクチャ:
---
config:
layout: dagre
---
flowchart TB
subgraph subGraph0["Agent Capabilities"]
C["Agent"]
B["A2A Server - Uvicorn/FastAPI"]
D["MCP Tools"]
F["Agent Skills"]
end
C --> D & F
A["User Query"] --> B
B --> C
D --> E["Platform API"]
C:::agent
B:::server
A:::server
classDef server fill:#f9f,stroke:#333
classDef agent fill:#bbf,stroke:#333,stroke-width:2px
style B stroke:#000000,fill:#FFD600
style D stroke:#000000,fill:#BBDEFB
style F fill:#BBDEFB
style A fill:#C8E6C9
style subGraph0 fill:#FFF9C4コンポーネント対話図
sequenceDiagram
participant User
participant Server as A2A Server
participant Agent as Agent
participant Skill as Agent Skills
participant MCP as MCP Tools
User->>Server: Send Query
Server->>Agent: Invoke Agent
Agent->>Skill: Analyze Skills Available
Skill->>Agent: Provide Guidance on Next Steps
Agent->>MCP: Invoke Tool
MCP-->>Agent: Tool Response Returned
Agent-->>Agent: Return Results Summarized
Agent-->>Server: Final Response
Server-->>User: Outputグラフアーキテクチャ
このエージェントは、インテリジェントなルーティングと最適なコンテキスト管理のために pydantic-graph オーケストレーションを使用します。
---
title: Archivebox API Graph Agent
---
stateDiagram-v2
[*] --> RouterNode: User Query
RouterNode --> DomainNode: Classified Domain
RouterNode --> [*]: Low confidence / Error
DomainNode --> [*]: Domain ResultRouterNode: ユーザーのクエリを専門ドメインのいずれかに分類する、高速で軽量なLLM(例:
nvidia/nemotron-3-super)。DomainNode: エグゼキューターノード。選択されたドメインに対して、そのドメインに関連するツールのみを一時的に有効にするように環境変数を動的に設定し、リクエストを完了させるための高度に焦点を絞ったサブエージェント(例:
gpt-4o)を作成します。これにより、LLMのコンテキストが保持され、ツールのハルシネーションが防止されます。
使用方法
MCP
MCP CLI
短いフラグ | 長いフラグ | 説明 |
-h | --help | ヘルプ情報を表示 |
-t | --transport | トランスポートメソッド: 'stdio', 'http', または 'sse' [レガシー] (デフォルト: stdio) |
-s | --host | HTTPトランスポートのホストアドレス (デフォルト: 0.0.0.0) |
-p | --port | HTTPトランスポートのポート番号 (デフォルト: 8000) |
--auth-type | 認証タイプ: 'none', 'static', 'jwt', 'oauth-proxy', 'oidc-proxy', 'remote-oauth' (デフォルト: none) | |
--token-jwks-uri | JWT検証用のJWKS URI | |
--token-issuer | JWT検証用の発行者 | |
--token-audience | JWT検証用のオーディエンス | |
--oauth-upstream-auth-endpoint | OAuthプロキシ用のアップストリーム認可エンドポイント | |
--oauth-upstream-token-endpoint | OAuthプロキシ用のアップストリームトークンエンドポイント | |
--oauth-upstream-client-id | OAuthプロキシ用のアップストリームクライアントID | |
--oauth-upstream-client-secret | OAuthプロキシ用のアップストリームクライアントシークレット | |
--oauth-base-url | OAuthプロキシのベースURL | |
--oidc-config-url | OIDC設定URL | |
--oidc-client-id | OIDCクライアントID | |
--oidc-client-secret | OIDCクライアントシークレット | |
--oidc-base-url | OIDCプロキシのベースURL | |
--remote-auth-servers | リモートOAuth用の認可サーバーのカンマ区切りリスト | |
--remote-base-url | リモートOAuthのベースURL | |
--allowed-client-redirect-uris | 許可されたクライアントリダイレクトURIのカンマ区切りリスト | |
--eunomia-type | Eunomia認可タイプ: 'none', 'embedded', 'remote' (デフォルト: none) | |
--eunomia-policy-file | 組み込みEunomia用のポリシーファイル (デフォルト: mcp_policies.json) | |
--eunomia-remote-url | リモートEunomiaサーバーのURL |
MCPサーバーとしての使用
MCPサーバーは、stdio(ローカルテスト用)または http(ネットワークアクセス用)の2つのモードで実行できます。サーバーを起動するには、次のコマンドを使用します。
stdioモードで実行 (デフォルト):
archivebox-mcp --transport "stdio"HTTPモードで実行:
archivebox-mcp --transport "http" --host "0.0.0.0" --port "8000"基本的なAPIの使用方法
トークン認証
#!/usr/bin/python
# coding: utf-8
import archivebox_api
archivebox_url = "<ARCHIVEBOX_URL>"
token = "<ARCHIVEBOX_TOKEN>"
client = archivebox_api.Api(
url=archivebox_url,
token=token
)
snapshots = client.get_snapshots()
print(f"Snapshots: {snapshots.json()}")基本認証
#!/usr/bin/python
# coding: utf-8
import archivebox_api
username = "<ARCHIVEBOX_USERNAME>"
password = "<ARCHIVEBOX_PASSWORD>"
archivebox_url = "<ARCHIVEBOX_URL>"
client = archivebox_api.Api(
url=archivebox_url,
username=username,
password=password
)
snapshots = client.get_snapshots()
print(f"Snapshots: {snapshots.json()}")APIキー認証
#!/usr/bin/python
# coding: utf-8
import archivebox_api
archivebox_url = "<ARCHIVEBOX_URL>"
api_key = "<ARCHIVEBOX_API_KEY>"
client = archivebox_api.Api(
url=archivebox_url,
api_key=api_key
)
snapshots = client.get_snapshots()
print(f"Snapshots: {snapshots.json()}")SSL検証
#!/usr/bin/python
# coding: utf-8
import archivebox_api
username = "<ARCHIVEBOX_USERNAME>"
password = "<ARCHIVEBOX_PASSWORD>"
archivebox_url = "<ARCHIVEBOX_URL>"
client = archivebox_api.Api(
url=archivebox_url,
username=username,
password=password,
verify=False
)
snapshots = client.get_snapshots()
print(f"Snapshots: {snapshots.json()}")MCPサーバーをサービスとしてデプロイ
ArchiveBox MCPサーバーは、設定可能な認証、ミドルウェア、Eunomia認可を使用してDockerでデプロイできます。
Docker Runの使用
docker pull archivebox/archivebox:latest
docker run -d \
--name archivebox-mcp \
-p 8004:8004 \
-e HOST=0.0.0.0 \
-e PORT=8004 \
-e TRANSPORT=http \
-e AUTH_TYPE=none \
-e EUNOMIA_TYPE=none \
-e ARCHIVEBOX_URL=https://yourinstance.archivebox.com \
-e ARCHIVEBOX_USERNAME=user \
-e ARCHIVEBOX_PASSWORD=pass \
-e ARCHIVEBOX_TOKEN=token \
-e ARCHIVEBOX_API_KEY=api_key \
-e ARCHIVEBOX_SSL_VERIFY=False \
archivebox/archivebox:latest高度な認証(例: JWT、OAuthプロキシ、OIDCプロキシ、リモートOAuth)やEunomiaを使用する場合は、関連する環境変数を追加してください:
docker run -d \
--name archivebox-mcp \
-p 8004:8004 \
-e HOST=0.0.0.0 \
-e PORT=8004 \
-e TRANSPORT=http \
-e AUTH_TYPE=oidc-proxy \
-e OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration \
-e OIDC_CLIENT_ID=your-client-id \
-e OIDC_CLIENT_SECRET=your-client-secret \
-e OIDC_BASE_URL=https://your-server.com \
-e ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/* \
-e EUNOMIA_TYPE=embedded \
-e EUNOMIA_POLICY_FILE=/app/mcp_policies.json \
-e ARCHIVEBOX_URL=https://yourinstance.archivebox.com \
-e ARCHIVEBOX_USERNAME=user \
-e ARCHIVEBOX_PASSWORD=pass \
-e ARCHIVEBOX_TOKEN=token \
-e ARCHIVEBOX_API_KEY=api_key \
-e ARCHIVEBOX_SSL_VERIFY=False \
archivebox/archivebox:latestDocker Composeの使用
docker-compose.yml ファイルを作成します:
services:
archivebox-mcp:
image: archivebox/archivebox:latest
environment:
- HOST=0.0.0.0
- PORT=8004
- TRANSPORT=http
- AUTH_TYPE=none
- EUNOMIA_TYPE=none
- ARCHIVEBOX_URL=https://yourinstance.archivebox.com
- ARCHIVEBOX_USERNAME=user
- ARCHIVEBOX_PASSWORD=pass
- ARCHIVEBOX_TOKEN=token
- ARCHIVEBOX_API_KEY=api_key
- ARCHIVEBOX_SSL_VERIFY=False
ports:
- 8004:8004認証とEunomiaを使用した高度な設定:
services:
archivebox-mcp:
image: archivebox/archivebox:latest
environment:
- HOST=0.0.0.0
- PORT=8004
- TRANSPORT=http
- AUTH_TYPE=oidc-proxy
- OIDC_CONFIG_URL=https://provider.com/.well-known/openid-configuration
- OIDC_CLIENT_ID=your-client-id
- OIDC_CLIENT_SECRET=your-client-secret
- OIDC_BASE_URL=https://your-server.com
- ALLOWED_CLIENT_REDIRECT_URIS=http://localhost:*,https://*.example.com/*
- EUNOMIA_TYPE=embedded
- EUNOMIA_POLICY_FILE=/app/mcp_policies.json
- ARCHIVEBOX_URL=https://yourinstance.archivebox.com
- ARCHIVEBOX_USERNAME=user
- ARCHIVEBOX_PASSWORD=pass
- ARCHIVEBOX_TOKEN=token
- ARCHIVEBOX_API_KEY=api_key
- ARCHIVEBOX_SSL_VERIFY=False
ports:
- 8004:8004
volumes:
- ./mcp_policies.json:/app/mcp_policies.jsonサービスを実行します:
docker-compose up -dAI統合のための mcp.json の設定
推奨: シークレットは環境変数に保存し、JSONファイルで参照します。
テスト用のみ: プレーンテキストでの保存も機能しますが、推奨されません。
{
"mcpServers": {
"archivebox": {
"command": "uv",
"args": [
"run",
"--with",
"archivebox-api",
"archivebox-mcp",
"--transport",
"${TRANSPORT}",
"--host",
"${HOST}",
"--port",
"${PORT}",
"--auth-type",
"${AUTH_TYPE}",
"--eunomia-type",
"${EUNOMIA_TYPE}"
],
"env": {
"ARCHIVEBOX_URL": "https://yourinstance.archivebox.com",
"ARCHIVEBOX_USERNAME": "user",
"ARCHIVEBOX_PASSWORD": "pass",
"ARCHIVEBOX_TOKEN": "token",
"ARCHIVEBOX_API_KEY": "api_key",
"ARCHIVEBOX_VERIFY": "False",
"TOKEN_JWKS_URI": "${TOKEN_JWKS_URI}",
"TOKEN_ISSUER": "${TOKEN_ISSUER}",
"TOKEN_AUDIENCE": "${TOKEN_AUDIENCE}",
"OAUTH_UPSTREAM_AUTH_ENDPOINT": "${OAUTH_UPSTREAM_AUTH_ENDPOINT}",
"OAUTH_UPSTREAM_TOKEN_ENDPOINT": "${OAUTH_UPSTREAM_TOKEN_ENDPOINT}",
"OAUTH_UPSTREAM_CLIENT_ID": "${OAUTH_UPSTREAM_CLIENT_ID}",
"OAUTH_UPSTREAM_CLIENT_SECRET": "${OAUTH_UPSTREAM_CLIENT_SECRET}",
"OAUTH_BASE_URL": "${OAUTH_BASE_URL}",
"OIDC_CONFIG_URL": "${OIDC_CONFIG_URL}",
"OIDC_CLIENT_ID": "${OIDC_CLIENT_ID}",
"OIDC_CLIENT_SECRET": "${OIDC_CLIENT_SECRET}",
"OIDC_BASE_URL": "${OIDC_BASE_URL}",
"REMOTE_AUTH_SERVERS": "${REMOTE_AUTH_SERVERS}",
"REMOTE_BASE_URL": "${REMOTE_BASE_URL}",
"ALLOWED_CLIENT_REDIRECT_URIS": "${ALLOWED_CLIENT_REDIRECT_URIS}",
"EUNOMIA_TYPE": "${EUNOMIA_TYPE}",
"EUNOMIA_POLICY_FILE": "${EUNOMIA_POLICY_FILE}",
"EUNOMIA_REMOTE_URL": "${EUNOMIA_REMOTE_URL}"
},
"timeout": 200000
}
}
}CLIパラメータ
archivebox-mcp コマンドは、設定のために以下のCLIオプションをサポートしています:
--transport: トランスポートメソッド (stdio,http,sse) [デフォルト:http]--host: HTTPトランスポートのホストアドレス [デフォルト:0.0.0.0]--port: HTTPトランスポートのポート番号 [デフォルト:8000]--auth-type: 認証タイプ (none,static,jwt,oauth-proxy,oidc-proxy,remote-oauth) [デフォルト:none]--token-jwks-uri: JWT検証用のJWKS URI--token-issuer: JWT検証用の発行者--token-audience: JWT検証用のオーディエンス--oauth-upstream-auth-endpoint: OAuthプロキシ用のアップストリーム認可エンドポイント--oauth-upstream-token-endpoint: OAuthプロキシ用のアップストリームトークンエンドポイント--oauth-upstream-client-id: OAuthプロキシ用のアップストリームクライアントID--oauth-upstream-client-secret: OAuthプロキシ用のアップストリームクライアントシークレット--oauth-base-url: OAuthプロキシのベースURL--oidc-config-url: OIDC設定URL--oidc-client-id: OIDCクライアントID--oidc-client-secret: OIDCクライアントシークレット--oidc-base-url: OIDCプロキシのベースURL--remote-auth-servers: リモートOAuth用の認可サーバーのカンマ区切りリスト--remote-base-url: リモートOAuthのベースURL--allowed-client-redirect-uris: 許可されたクライアントリダイレクトURIのカンマ区切りリスト--eunomia-type: Eunomia認可タイプ (none,embedded,remote) [デフォルト:none]--eunomia-policy-file: 組み込みEunomia用のポリシーファイル [デフォルト:mcp_policies.json]--eunomia-remote-url: リモートEunomiaサーバーのURL
ミドルウェア
MCPサーバーには、機能強化のために以下の組み込みミドルウェアが含まれています:
ErrorHandlingMiddleware: 包括的なエラーログ記録と変換を提供します。
RateLimitingMiddleware: トークンバケットアルゴリズムを使用してリクエスト頻度を制限します(10リクエスト/秒、バースト容量20)。
TimingMiddleware: リクエストの実行時間を追跡します。
LoggingMiddleware: 可観測性のためにすべてのリクエストとレスポンスをログに記録します。
Eunomia認可
サーバーは、ポリシーベースのアクセス制御のためにオプションのEunomia認可をサポートしています:
無効 (
none): 認可チェックを行いません。組み込み (
embedded): ローカルポリシーファイル(デフォルトでmcp_policies.json)を使用して組み込みEunomiaサーバーを実行します。リモート (
remote): 一元化されたポリシー決定のために外部Eunomiaサーバーに接続します。
Eunomiaポリシーを設定するには:
# Initialize a default policy file
eunomia-mcp init
# Validate the policy file
eunomia-mcp validate mcp_policies.jsonA2A CLI
エンドポイント
Web UI:
http://localhost:8000/(有効な場合)A2A:
http://localhost:8000/a2a(検出:/a2a/.well-known/agent.json)AG-UI:
http://localhost:8000/ag-ui(POST)
短いフラグ | 長いフラグ | 説明 |
-h | --help | ヘルプ情報を表示 |
--host | サーバーをバインドするホスト (デフォルト: 0.0.0.0) | |
--port | サーバーをバインドするポート (デフォルト: 9000) | |
--reload | 自動リロードを有効にする | |
--provider | LLMプロバイダー: 'openai', 'anthropic', 'google', 'huggingface' | |
--model-id | LLMモデルID (デフォルト: qwen3:4b) | |
--base-url | LLMベースURL (OpenAI互換プロバイダー用) | |
--api-key | LLM APIキー |
| | --mcp-url | MCPサーバーURL (デフォルト: http://localhost:8000/mcp) | | | --web | Pydantic AI Web UIを有効にする | False (環境変数: ENABLE_WEB_UI) |
Pythonパッケージのインストール
python -m pip install archivebox-api[all]リポジトリオーナー
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/Knuckles-Team/archivebox-api'
If you have feedback or need assistance with the MCP directory API, please join our Discord server