OpenViking
by @zaynjarvis
RAG and semantic search via OpenViking Context Database MCP server. Query documents, search knowledge base, add files/URLs to vector memory. Use for document Q&A, knowledge management, AI agent memory, file search, semantic retrieval. Triggers on "openviking", "search documents", "semantic search", "knowledge base", "vector database", "RAG", "query pdf", "document query", "add resource".
clawhub install openvikingπ About This Skill
name: openviking description: RAG and semantic search via OpenViking Context Database MCP server. Query documents, search knowledge base, add files/URLs to vector memory. Use for document Q&A, knowledge management, AI agent memory, file search, semantic retrieval. Triggers on "openviking", "search documents", "semantic search", "knowledge base", "vector database", "RAG", "query pdf", "document query", "add resource".
OpenViking - Context Database for AI Agents
OpenViking is ByteDance's open-source Context Database designed for AI Agents β a next-generation RAG system that replaces flat vector storage with a filesystem paradigm for managing memories, resources, and skills.
Key Features:
viking://resources/...)Quick Check: Is It Set Up?
test -f ~/code/openviking/examples/mcp-query/ov.conf && echo "Ready" || echo "Needs setup"
curl -s http://localhost:2033/mcp && echo "Running" || echo "Not running"
If Not Set Up β Initialize
Run the init script (one-time):
bash ~/.openclaw/skills/openviking-mcp/scripts/init.sh
This will:
1. Clone OpenViking from https://github.com/volcengine/OpenViking
2. Install dependencies with uv sync
3. Create ov.conf template
4. Pause for you to add API keys (embedding.dense.api_key, vlm.api_key)
Required: Volcengine/Ark API Keys
| Config Key | Purpose |
|------------|---------|
| embedding.dense.api_key | Semantic search embeddings |
| vlm.api_key | LLM for answer generation |
Get keys from: https://console.volcengine.com/ark
Start the Server
cd ~/code/openviking/examples/mcp-query
uv run server.py
Options:
--port 2033 - Listen port--host 127.0.0.1 - Bind address--data ./data - Data directoryServer will be at: http://127.0.0.1:2033/mcp
Connect to Claude
claude mcp add --transport http openviking http://localhost:2033/mcp
Or add to ~/.mcp.json:
{
"mcpServers": {
"openviking": {
"type": "http",
"url": "http://localhost:2033/mcp"
}
}
}
Tools Available
| Tool | Description |
|------|-------------|
| query | Full RAG pipeline β search + LLM answer |
| search | Semantic search only, returns docs |
| add_resource | Add files, directories, or URLs |
Example Usage
Once connected via MCP:
"Query: What is OpenViking?"
"Search: machine learning papers"
"Add https://example.com/article to knowledge base"
"Add ~/documents/report.pdf"
Troubleshooting
| Issue | Fix |
|-------|-----|
| Port in use | uv run server.py --port 2034 |
| Auth errors | Check API keys in ov.conf |
| Server not found | Ensure it's running: curl localhost:2033/mcp |
Files
ov.conf - Configuration (API keys, models)data/ - Vector database storageserver.py - MCP server implementationπ Tips & Best Practices
| Issue | Fix |
|-------|-----|
| Port in use | uv run server.py --port 2034 |
| Auth errors | Check API keys in ov.conf |
| Server not found | Ensure it's running: curl localhost:2033/mcp |