Skip to main content
The OpenViking MCP server provides Model Context Protocol tools for semantic search and RAG (Retrieval-Augmented Generation). Connect it to Claude Desktop, Claude CLI, or any MCP-compatible client.

Available Tools

Quick Start

1

Install Dependencies

2

Configure OpenViking

Copy the example config:
Edit ov.conf with your API keys:
3

Start the Server

The server starts on http://127.0.0.1:2033/mcp by default.
4

Connect from Claude

Claude CLI:
Claude Desktop: Add to .mcp.json:

Tool Reference

query

Ask questions and get answers using RAG. Parameters:
Example usage in Claude:
Response format:
Perform semantic search without LLM generation. Parameters:
Example usage:

add_resource

Add documents, directories, or URLs to the database. Parameters:
Supported formats:
  • PDF, Markdown, Text, HTML
  • Local files and directories
  • URLs (auto-downloaded)
  • GitHub repositories (via URL)
Example usage:

Server Options

Examples

Testing with MCP Inspector

The MCP Inspector is a tool for testing MCP servers:
You can then:
  • Browse available tools
  • Test tool invocations
  • Inspect request/response payloads
  • Debug server behavior

Production Deployment

Systemd Service (Linux)

/etc/systemd/system/openviking-mcp.service

Docker

Dockerfile

Reverse Proxy (Nginx)

/etc/nginx/sites-available/openviking-mcp

Security Considerations

The MCP server has no built-in authentication. For production:
  1. Use a reverse proxy with authentication (Nginx, Caddy)
  2. Restrict access via firewall rules
  3. Use HTTPS for external access
  4. Bind to 127.0.0.1 if only local access needed

Add Basic Auth (Nginx)

Generate password file:

Resources

The server exposes one resource:

openviking://status

Get server status and configuration:

Troubleshooting

Check the config file:
Verify API keys are set and valid. Test manually:
Verify the server is running:
Check the MCP config:
Add content first:
Check indexing status:
Reinstall dependencies:

Advanced Configuration

Custom System Prompts

Control LLM behavior via system_prompt parameter:
Limit search to specific resources:

Adjusting Relevance

See Also