Deployment¶
Deployment Options¶
vector-mcp exposes its MCP server (console script vector-mcp) four ways. Pick the row that
matches where the server runs relative to your MCP client, then copy the matching
mcp_config.json below. Replace the <your-…> placeholders with the values from the Configuration / Environment Variables section. Do not copy concrete secret/endpoint values into a
committed config file — inject the EMBEDDING_MODELS registry, supported secret references, TLS
profiles, selected backend, and document root from AgentConfig or the deployment environment.
| # | Option | Transport | Where it runs | mcp_config.json key |
|---|---|---|---|---|
| 1 | stdio | stdio |
client launches a subprocess | command |
| 2 | Streamable-HTTP (local) | streamable-http |
a local network port | command or url |
| 3 | Local container / uv | stdio or streamable-http |
Docker / Podman / uv on this host | command or url |
| 4 | Remote URL | streamable-http |
a remote host behind Caddy | url |
1. stdio (local subprocess)¶
The client launches the server over stdio via uvx — best for local IDEs
(Cursor, Claude Desktop, VS Code). A client can launch the package without a checkout:
{
"mcpServers": {
"vector-mcp": {
"command": "uvx",
"args": ["--from", "vector-mcp[mcp]", "vector-mcp"],
"env": {
"DATABASE_TYPE": "epistemic_graph"
}
}
}
}
The packaged agent-launch configuration contains only the local command, tool mode, and tool toggles; it inherits operator-managed runtime settings.
2. Streamable-HTTP (local process)¶
Run the server as a long-lived HTTP process:
uvx --from vector-mcp vector-mcp --transport streamable-http --host 0.0.0.0 --port 8000
curl -s http://localhost:8000/health # {"status":"OK"}
Then either let the client launch it:
{
"mcpServers": {
"vector-mcp": {
"command": "uvx",
"args": ["--from", "vector-mcp", "vector-mcp", "--transport", "streamable-http", "--port", "8000"],
"env": {
"TRANSPORT": "streamable-http",
"HOST": "0.0.0.0",
"PORT": "8000",
"DATABASE_TYPE": "epistemic_graph"
}
}
}
}
…or connect to the already-running process by URL:
3. Local container / uv¶
(a) Launch a container directly from mcp_config.json (stdio over the container —
no ports to manage). Swap docker for podman for a daemonless runtime:
{
"mcpServers": {
"vector-mcp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "TRANSPORT=stdio",
"-e", "DATABASE_TYPE=epistemic_graph",
"knucklessg1/vector-mcp:latest"
]
}
}
}
(b) Run a local streamable-http container, then connect by URL:
docker run -d --name vector-mcp -p 8000:8000 \
-e TRANSPORT=streamable-http \
-e PORT=8000 \
-e DATABASE_TYPE=epistemic_graph \
knucklessg1/vector-mcp:latest
# or, from a clone of this repo:
docker compose -f docker/mcp.compose.yml up -d
(c) From a local checkout with uv:
4. Remote URL (deployed behind Caddy)¶
When the server is deployed remotely (e.g. as a Docker service) and published through
Caddy at a deployment-selected HTTPS hostname, connect with the "url" key — no local process or
image required:
Caddy reverse-proxies https://vector-mcp.example.invalid to the container's :8000
streamable-http listener; https://vector-mcp.example.invalid/health returns
{"status":"OK"} when the service is live.
Managed network service¶
Run the same command with the deployment's streamable-HTTP transport settings, bind only to the intended interface, and enforce the shared MCP authentication middleware. Publish it behind a verified HTTPS endpoint and configure clients with the deployment-provided URL:
A remote service must not use plaintext transport. Health probes should return status only and must not disclose package versions, provider topology, endpoints, identities, or credentials.
Containers¶
The maintained container definitions live under docker/. Provide all secrets at runtime and
mount any CA bundle or document root read-only. Offline provider tests mock SDK boundaries;
deployment qualification must provision its own authenticated services.
Release gates¶
Before deployment:
- validate Python, JSON, TOML, YAML, and Markdown structure;
- run the repository privacy and security contracts;
- verify the selected provider and TLS profile with
vector-mcp-doctor; - certify the installed MCP tool schema and regenerate signed connector evidence;
- confirm traces contain status, counts, and opaque references only.