Khiip
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| KHIIP_DAEMON_URL | No | URL of the running Khiip daemon | http://localhost:8478 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| capture_urlA | Capture a URL into the Khiip substrate. Dispatches to the appropriate extractor (X, Reddit, web article, Wikipedia, YouTube, PDF). Stores raw source bytes at Source-tier plus a typed payload in the vault. Submits to Wayback Machine unless disabled. Idempotent by default (dedup by URL hash). Args:
url: The URL to capture.
force_new: If True, skip dedup-by-url and force creation of a
new capture (overrides the existing capture's
Returns: Capture record (id, source, vault_path, payload, archive_urls, etc.) on success; structured error dict on failure. |
| recallA | Semantic recall over captured payloads by natural-language query. Ranks captures by cosine similarity over typed-payload embed-text composition (per ADR-0009 §C7). Returns top-k captures with their scores. Args: query: Natural-language recall query. limit: Maximum number of results to return (1-100; default 10). Returns:
Recall response with |
| list_capturesA | List captures, newest first. Args: source: Optional filter by source name (x, reddit, web, wikipedia, youtube, pdf). When None, returns all sources. limit: Page size (1-500; default 50). offset: Pagination offset. Returns: On success: {"captures": [Capture, ...], "count": int}. On failure: structured error dict. |
| get_captureA | Fetch a single capture by id, in the requested format. Args:
capture_id: The capture ULID.
format: One of Returns:
On success: payload in the requested format wrapped in a
|
| refetch_captureA | Refetch one dimension of an existing capture. Dimensions, per ADR-0010 commitment 6 + ADR-0009 §C2 replay (S42):
Args:
capture_id: The capture ULID to refetch.
dimension: Which dimension to refetch (extraction | re-extract |
re-render | media | wayback). Defaults to Returns: Updated capture record on success; structured error dict on failure. |
| daemon_statusA | Combined daemon health + metadata. Aggregates GET /health (extractor + wayback liveness) and GET /api/v1/meta (version, configured extractors, embedder model + dimension). Useful as a first call when an agent connects, to confirm the daemon is reachable and to learn what sources + capabilities are available. Returns:
On success: |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a distinct purpose: capturing a URL, fetching a capture, listing captures, semantic recall, refetching dimensions, and checking daemon status. No overlap in functionality.
Tools follow a verb_noun pattern with snake_case (e.g., capture_url, get_capture). 'daemon_status' is a noun phrase but still clear and consistent in style. Minor deviation from verb-first naming.
6 tools is well-scoped for a URL capture and retrieval server. Each tool addresses a core operation without unnecessary redundancy.
Covers create, read, list, search, and update (via refetch). Missing a delete tool, which is a notable gap for a complete lifecycle, but the core workflows are covered.