From 6cff3d92ca1862a262986f00a4c19f2fd598a6f0 Mon Sep 17 00:00:00 2001 From: "Tobias J. Endres" Date: Wed, 24 Jun 2026 00:42:42 +0200 Subject: [PATCH] feat: add openviking MCP to fleet OpenViking is a Context Database for AI Agents from Volcengine. Uses upstream Docker image (ghcr.io/volcengine/openviking:latest) with native HTTP MCP endpoint on port 1933 at /mcp. - openviking/Dockerfile: FROM upstream image - openviking/README.md: env vars, usage, client config, tools - README.md: add 1933 port entry - .woodpecker.yml: add pull+tag build step for openviking --- .woodpecker.yml | 8 +++++ README.md | 1 + openviking/Dockerfile | 2 ++ openviking/README.md | 84 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 95 insertions(+) create mode 100644 openviking/Dockerfile create mode 100644 openviking/README.md diff --git a/.woodpecker.yml b/.woodpecker.yml index 0b5fd03..33aa2fd 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -124,3 +124,11 @@ steps: - docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN - docker build -t forgejo.corentic.eu/corentic/mcp-fleet-web-search:latest -f web-search/Dockerfile web-search/ - docker push forgejo.corentic.eu/corentic/mcp-fleet-web-search:latest + + build-openviking: + <<: *build-step + commands: + - docker login forgejo.corentic.eu -u tobi -p $FORGEJO_REGISTRY_TOKEN + - docker pull ghcr.io/volcengine/openviking:latest + - docker tag ghcr.io/volcengine/openviking:latest forgejo.corentic.eu/corentic/mcp-fleet-openviking:latest + - docker push forgejo.corentic.eu/corentic/mcp-fleet-openviking:latest diff --git a/README.md b/README.md index 6938484..561ca7e 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Production-ready MCP server Docker images for the Corentic infrastructure. Each | 8114 | filesystem | node | mcp-proxy | | 8115 | docker | node | mcp-proxy | | 8116 | web-search | python+node | mcp-proxy | +| 1933 | openviking | upstream Docker | native HTTP | ## Registry diff --git a/openviking/Dockerfile b/openviking/Dockerfile new file mode 100644 index 0000000..0a614f6 --- /dev/null +++ b/openviking/Dockerfile @@ -0,0 +1,2 @@ +FROM ghcr.io/volcengine/openviking:latest +EXPOSE 1933 diff --git a/openviking/README.md b/openviking/README.md new file mode 100644 index 0000000..bde6e5a --- /dev/null +++ b/openviking/README.md @@ -0,0 +1,84 @@ +# openviking-mcp + +OpenViking: Context Database for AI Agents — semantic search, memory management, resource ingestion, and session management over MCP. + +Source: [`volcengine/OpenViking`](https://github.com/volcengine/OpenViking) + +OpenViking has a **built-in HTTP MCP endpoint** at `/mcp` on port 1933 — no mcp-proxy needed. + +## Prerequisites + +A valid `ov.conf` configuration file is required. Generate one: + +```bash +docker run --rm -it \ + -v ~/.openviking:/app/.openviking \ + forgejo.corentic.eu/corentic/mcp-fleet-openviking:latest \ + openviking-server init +``` + +Validate setup: +```bash +docker run --rm -it \ + -v ~/.openviking:/app/.openviking \ + forgejo.corentic.eu/corentic/mcp-fleet-openviking:latest \ + openviking-server doctor +``` + +## Environment Variables + +| Variable | Required | Description | +|----------|----------|-------------| +| `OPENVIKING_CONFIG_FILE` | No | Path to ov.conf inside container (default: `/app/.openviking/ov.conf`) | +| `OPENVIKING_CONF_CONTENT` | No | Inline config content (alternative to volume mount) | +| `OPENVIKING_SERVER_HOST` | No | Server bind address (default: `0.0.0.0`) | +| `OPENVIKING_PUBLIC_BASE_URL` | No | Public URL for file upload signed URLs (needed behind reverse proxy) | +| `OPENVIKING_WITH_BOT` | No | Set to `0` to disable VikingBot | + +## Usage + +```bash +docker run -d \ + --name openviking-mcp \ + -p 1933:1933 \ + -v ~/.openviking:/app/.openviking \ + --restart unless-stopped \ + forgejo.corentic.eu/corentic/mcp-fleet-openviking:latest +``` + +MCP endpoint: `http://host:1933/mcp` + +## Client Configuration + +Connect from any MCP client: + +```json +{ + "mcpServers": { + "openviking": { + "url": "http://host:1933/mcp" + } + } +} +``` + +Add `"headers": {"Authorization": "Bearer your-api-key"}` if auth is configured. + +## Tools + +| Tool | Description | +|------|-------------| +| `search` | Semantic search across memories, resources, and skills | +| `read` | Read one or more `viking://` URIs | +| `list` | List entries under a `viking://` directory | +| `store` | Store messages into long-term memory | +| `add_resource` | Add a local file or URL as a resource | +| `grep` | Regex content search across `viking://` files | +| `glob` | Find files matching a glob pattern | +| `forget` | Delete a `viking://` URI | +| `code_outline` | Show a file's symbol structure | +| `code_search` | Search symbol names across a directory | +| `code_expand` | Return full source of a named symbol | +| `health` | Check service health | +| `list_watches` | List auto-refresh subscriptions | +| `cancel_watch` | Cancel a watch task |