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
This commit is contained in:
Tobias J. Endres 2026-06-24 00:42:42 +02:00
parent c623c8d566
commit 6cff3d92ca
4 changed files with 95 additions and 0 deletions

View file

@ -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

View file

@ -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

2
openviking/Dockerfile Normal file
View file

@ -0,0 +1,2 @@
FROM ghcr.io/volcengine/openviking:latest
EXPOSE 1933

84
openviking/README.md Normal file
View file

@ -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 |