ArchiveBox API
ArchiveBox API - A2A | AG-UI | MCP
버전: 0.1.53
개요
ArchiveBox API 파이썬 래퍼 & Fast MCP 서버!
이 저장소는 ArchiveBox API와 상호작용하기 위한 파이썬 래퍼를 제공하여 웹 아카이빙 기능에 대한 프로그래밍 방식의 액세스를 가능하게 합니다. 에이전트 AI를 위한 MCP(Model Context Protocol) 서버가 포함되어 있으며, 다양한 인증 메커니즘, 관찰 가능성 및 제어를 위한 미들웨어, 그리고 정책 기반 액세스 제어를 위한 선택적 Eunomia 권한 부여 기능으로 강화되었습니다.
기여를 환영합니다!
모든 API 응답 객체는 응답 호출에 맞게 사용자 정의됩니다. parent.value.nested_value 형식으로 반환 값에 액세스하거나 parent.json()을 사용하여 응답을 딕셔너리로 가져올 수 있습니다.
기능:
인증: 인증 없음(비활성화), 정적(내부 토큰), JWT, OAuth 프록시, OIDC 프록시, 외부 ID 공급자를 위한 원격 OAuth 등 다중 인증 유형을 지원합니다.
미들웨어: 강력한 서버 운영을 위한 로깅, 타이밍, 속도 제한 및 오류 처리가 포함되어 있습니다.
Eunomia 권한 부여: 내장 또는 원격 Eunomia 서버 통합을 통한 선택적 정책 기반 권한 부여를 지원합니다.
리소스: ArchiveBox 구성을 위한
instance_config를 제공합니다.프롬프트: AI 기반 상호작용을 위한
cli_add_prompt가 포함되어 있습니다.
API
API 호출:
인증
핵심 모델 (스냅샷, 아카이브 결과, 태그)
CLI 명령 (추가, 업데이트, 예약, 목록, 제거)
지원되지 않는 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 (네트워크 액세스용) 두 가지 모드로 실행할 수 있습니다. 서버를 시작하려면 다음 명령을 사용하세요:
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
엔드포인트
웹 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 | LL |
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