Skip to main content
Glama

vector-mcp

Action-routed MCP and agent interfaces for governed vector collection management and retrieval. The native default is epistemic-graph. Secure opt-in providers cover PostgreSQL/pgvector, Qdrant, and MongoDB Atlas.

Governed capability

  • MCP tools: vector_collection_management and vector_search

  • Skill provider: the consolidated vector-mcp-operations workflow

  • Ontology provider: the packaged vector retrieval ontology

  • Source connector provider: a read-only vector collection inventory preset

  • Runtime configuration: AgentConfig, environment variables, and secret references

  • Privacy posture: no checked-in endpoints, credentials, personal identity, or host paths

Related MCP server: production-grade-mcp-agentic-system

Install

Use the smallest extra set required by the deployment:

uvx --from 'vector-mcp[mcp]' vector-mcp

The runtime requires scion-sdk>=0.2.0 and its self-contained full epistemic-graph engine contract. A bare numeric-only or partial engine profile is not a supported deployment.

For a selected storage provider:

uv add 'vector-mcp[postgres]'
uv add 'vector-mcp[qdrant]'
uv add 'vector-mcp[mongodb]'

The all extra enables every supported optional provider plus the agent, Langfuse, and Logfire runtimes. Production images should install only the providers they operate.

MCP configuration

The package includes a neutral agent-start configuration containing only the command, condensed tool mode, and tool toggles. Runtime values are inherited from AgentConfig or injected by the operator. Detailed instructions on how to use the underlying API wrappers, extended schema bindings, and developer SDK references are maintained in docs/index.md.


MCP

This server use dynamic Action-Routed tools to optimize token overhead and maximize IDE compatibility.

Available MCP Tools

Auto-generated from the live MCP server — do not edit by hand.

Condensed action-routed tools (MCP_TOOL_MODE=condensed)

MCP Tool

Toggle Env Var

Description

vector_collection_management

COLLECTION_MANAGEMENTTOOL

Manage collection management operations.

vector_search

SEARCHTOOL

Manage search operations.

2 action-routed tool(s) · 0 verbose 1:1 tool(s). Each is enabled unless its <DOMAIN>TOOL toggle is set false; MCP_TOOL_MODE selects the surface (intent default — the six verb-tools, granular set loaded on demand · condensed action-routed · verbose 1:1 · both). Auto-generated — do not edit.

Detailed tool schemas, parameter shapes, and validation constraints are preserved in the usage guide.

Dynamic Tool Selection & Visibility

This MCP server supports dynamic toolset selection and visibility filtering at runtime. This allows the operator to restrict the set of exposed tools to prevent blowing up the LLM's context window.

The operator can configure tool filtering via multiple input channels:

  • CLI Arguments: Pass --tools or --toolsets (or their disabled counterparts --disabled-tools and --disabled-toolsets) during startup.

  • Environment Variables: Define standard environment variables:

    • MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

    • MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

  • HTTP SSE Request Headers: Pass custom headers during transport initialization:

    • x-mcp-enabled-tools / x-mcp-disabled-tools

    • x-mcp-enabled-tags / x-mcp-disabled-tags

  • HTTP SSE Request Query Parameters: Append query parameters directly to the operator's transport connection URL:

    • ?tools=tool1,tool2

    • ?tags=tag1

When query strings or parameters are provided, an LLM-free Knowledge Graph resolution layer (using DynamicToolOrchestrator) matches query intents against known tool tags, names, or descriptions, with safe fallback and automated 24-hour background cache refreshing.


MCP Configuration Examples

Install the connector-focused [mcp] extra. Examples use vector-mcp[mcp] to add FastMCP / FastAPI through scion-sdk[mcp].

stdio Transport (local IDEs — Cursor, Claude Desktop, VS Code)

{
  "mcpServers": {
    "vector-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "vector-mcp[mcp]",
        "vector-mcp"
      ],
      "env": {
        "MCP_TOOL_MODE": "intent",
        "COLLECTION_MANAGEMENTTOOL": "True",
        "DATABASE_TYPE": "epistemic_graph",
        "DB_PASSWORD_REF": "secret://runtime/db-password",
        "DB_PORT": "5432",
        "DB_USERNAME_REF": "secret://runtime/db-username",
        "MONGODB_MAX_POOL_SIZE": "20",
        "MONGODB_REQUEST_TIMEOUT_MS": "30000",
        "MONGODB_URI_REF": "secret://runtime/mongodb-uri",
        "POSTGRES_MAX_POOL_SIZE": "20",
        "POSTGRES_REQUEST_TIMEOUT": "30",
        "QDRANT_API_KEY_REF": "secret://runtime/qdrant-api-key",
        "QDRANT_REQUEST_TIMEOUT": "30",
        "SEARCHTOOL": "True",
        "VECTOR_DB_TYPE": "epistemic_graph"
      }
    }
  }
}

Runtime references require an alias-aware launcher such as Arbora. Other launchers must omit those entries and inject the resolved values through their own runtime secret boundary.

Streamable-HTTP Transport (networked / production)

{
  "mcpServers": {
    "vector-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "vector-mcp[mcp]",
        "vector-mcp",
        "--transport",
        "streamable-http",
        "--port",
        "8000"
      ],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "127.0.0.1",
        "PORT": "8000",
        "MCP_TOOL_MODE": "intent",
        "COLLECTION_MANAGEMENTTOOL": "True",
        "DATABASE_TYPE": "epistemic_graph",
        "DB_PASSWORD_REF": "secret://runtime/db-password",
        "DB_PORT": "5432",
        "DB_USERNAME_REF": "secret://runtime/db-username",
        "MONGODB_MAX_POOL_SIZE": "20",
        "MONGODB_REQUEST_TIMEOUT_MS": "30000",
        "MONGODB_URI_REF": "secret://runtime/mongodb-uri",
        "POSTGRES_MAX_POOL_SIZE": "20",
        "POSTGRES_REQUEST_TIMEOUT": "30",
        "QDRANT_API_KEY_REF": "secret://runtime/qdrant-api-key",
        "QDRANT_REQUEST_TIMEOUT": "30",
        "SEARCHTOOL": "True",
        "VECTOR_DB_TYPE": "epistemic_graph"
      }
    }
  }
}

Alternatively, connect to a pre-deployed Streamable-HTTP instance by url:

{
  "mcpServers": {
    "vector-mcp": {
      "url": "http://localhost:8000/vector-mcp/mcp"
    }
  }
}

Run a reviewed container image as a least-privilege stdio child (no listener or published port):

docker run -i --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  --pids-limit=256 \
  --tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
  -e TRANSPORT=stdio \
  -e MCP_TOOL_MODE=intent \
  -e COLLECTION_MANAGEMENTTOOL=True \
  -e DATABASE_TYPE=epistemic_graph \
  -e DB_PASSWORD_REF \
  -e DB_PORT=5432 \
  -e DB_USERNAME_REF \
  -e MONGODB_MAX_POOL_SIZE=20 \
  -e MONGODB_REQUEST_TIMEOUT_MS=30000 \
  -e MONGODB_URI_REF \
  -e POSTGRES_MAX_POOL_SIZE=20 \
  -e POSTGRES_REQUEST_TIMEOUT=30 \
  -e QDRANT_API_KEY_REF \
  -e QDRANT_REQUEST_TIMEOUT=30 \
  -e SEARCHTOOL=True \
  -e VECTOR_DB_TYPE=epistemic_graph \
  registry.example.invalid/vector-mcp@sha256:<digest> vector-mcp

For containerized network HTTP, supply an authenticated TLS ingress (or direct server TLS), exact MCP_ALLOWED_HOSTS, and an exact trusted-proxy CIDR policy through the operator-owned deployment profile. The generator does not emit an unauthenticated non-loopback listener.

Auto-generated from the code-read env surface (MCP_TOOL_MODE + package vars) — do not edit.

Additional Deployment Options

vector-mcp can also run as a local container (Docker / Podman / uv) or be consumed from a remote deployment. The Deployment guide has full, copy-paste mcp_config.json for all four transports — stdio, streamable-http, local container / uv, and remote URL:

  • Local container / uv — launch the server from mcp_config.json via uvx, docker run, or podman run, or point at a local streamable-http container by url.

  • Remote URL — connect to a server deployed behind Caddy at https://vector-mcp.example.invalid/mcp using the "url" key.


Environment Variables

Package environment variables

Variable

Example

Description

HOST

127.0.0.1

PORT

8000

TRANSPORT

stdio

options: stdio, streamable-http, sse

ENABLE_OTEL

—

EMBEDDING_TLS_PROFILE_REF

secret://runtime/embedding-tls-profile

Configure AgentConfig EMBEDDING_MODELS and its referenced runtime credentials.

DOCUMENT_DIRECTORY

—

Required only for filesystem ingestion. Supply the operator-owned root at runtime.

DATABASE_TYPE

epistemic_graph

Backend used when db_type is unspecified. Default is the native epistemic-graph engine (local, zero-infra, durable). Options: epistemic_graph, postgres, mongodb, qdrant. DATABASE_TYPE is the canonical variable; VECTOR_DB_TYPE is accepted as an alias for backward compatibility.

VECTOR_DB_TYPE

epistemic_graph

DB_HOST

—

postgres/qdrant host

DBNAME

—

postgres/mongodb database name

DB_PORT

5432

DB_USERNAME_REF

secret://runtime/db-username

DB_PASSWORD_REF

secret://runtime/db-password

MONGODB_URI_REF

secret://runtime/mongodb-uri

QDRANT_API_KEY_REF

secret://runtime/qdrant-api-key

QDRANT_HTTP_ALLOWED_PRIVATE_HOSTS

—

comma-separated SSRF allowlist for a private Qdrant host

POSTGRES_REQUEST_TIMEOUT

30

seconds, 1-300

POSTGRES_MAX_POOL_SIZE

20

connections, 1-100

MONGODB_REQUEST_TIMEOUT_MS

30000

milliseconds, 1-300000

MONGODB_MAX_POOL_SIZE

20

connections, 1-100

QDRANT_REQUEST_TIMEOUT

30

seconds, 1-300

COLLECTION_MANAGEMENTTOOL

True

SEARCHTOOL

True

VECTOR_MCP_MCP_IMAGE

—

e.g. registry.example.invalid/vector-mcp@sha256:

VECTOR_MCP_AGENT_IMAGE

—

e.g. registry.example.invalid/vector-mcp@sha256:

Inherited agent-utilities variables (apply to every connector)

Variable

Example

Description

MCP_TOOL_MODE

intent

Tool surface: intent | condensed | verbose | both

MCP_ENABLED_TOOLS

—

Comma-separated tool allow-list

MCP_DISABLED_TOOLS

—

Comma-separated tool deny-list

MCP_ENABLED_TAGS

—

Comma-separated tag allow-list

MCP_DISABLED_TAGS

—

Comma-separated tag deny-list

EUNOMIA_TYPE

none

Authorization mode: none | embedded | remote

EUNOMIA_POLICY_FILE

mcp_policies.json

Embedded Eunomia policy file

EUNOMIA_REMOTE_URL

—

Remote Eunomia authorization server URL

OTEL_EXPORTER_OTLP_ENDPOINT

—

OTLP collector endpoint

MCP_CLIENT_AUTH

—

Outbound MCP child auth: oidc-client-credentials | basic | none

OIDC_CLIENT_ID

—

OIDC client id (service-account auth)

OIDC_CLIENT_SECRET_REF

secret://identity/oidc-client-secret

Runtime secret reference for the OIDC service account

MCP_BASIC_AUTH_USERNAME

—

HTTP Basic username (MCP_CLIENT_AUTH=basic)

MCP_BASIC_AUTH_PASSWORD_REF

secret://identity/mcp-basic-password

Runtime secret reference for HTTP Basic auth (MCP_CLIENT_AUTH=basic)

DEBUG

False

Verbose logging

PYTHONUNBUFFERED

1

Unbuffered stdout (recommended in containers)

MCP_URL

http://localhost:8000/mcp

URL of the MCP server the agent connects to

PROVIDER

—

Operator-configured LLM provider for the agent

MODEL_ID

—

Operator-configured model id for the agent

ENABLE_WEB_UI

True

Serve the AG-UI web interface

25 package + 20 inherited variable(s). Auto-generated from .env.example + the shared agent-utilities set — do not edit.

Every variable the server reads, grouped by purpose. See .env.example for the canonical, copy-paste list — including the DATABASE_TYPE / GRAPH_SERVICE_SOCKET / GRAPH_SERVICE_AUTH_SECRET connection settings for the native epistemic-graph backend. Backend endpoints, database locations, and credentials for opt-in providers (Postgres/Qdrant/Mongo/ Chroma/Couchbase) are never README-documented literal values or MCP tool arguments — they resolve through AgentConfig and secret:///env:///vault:// references at runtime.

MCP server / transport

Variable

Description

Default

TRANSPORT

stdio, streamable-http, or sse

stdio

HOST

Bind host (HTTP transports)

0.0.0.0

PORT

Bind port (HTTP transports)

8000

MCP_TOOL_MODE

Tool surface: condensed, verbose, or both

condensed

MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

Comma-separated tool allow/deny list

—

MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

Comma-separated tag allow/deny list

—

PYTHONUNBUFFERED

Unbuffered stdout (recommended in containers)

1

Tool toggles

Each action-routed tool can be disabled individually via its toggle env var (set to false). The full list is in the Available MCP Tools table above.

Variable

Description

Default

COLLECTION_MANAGEMENTTOOL

Enable the collection-management tool

True

SEARCHTOOL

Enable the search tool

True

Telemetry & governance

Variable

Description

Default

ENABLE_OTEL

Enable OpenTelemetry export

True

OTEL_EXPORTER_OTLP_ENDPOINT

OTLP collector endpoint

—

OTEL_EXPORTER_OTLP_PUBLIC_KEY / OTEL_EXPORTER_OTLP_SECRET_KEY

OTLP auth keys

—

OTEL_EXPORTER_OTLP_PROTOCOL

OTLP protocol (e.g. http/protobuf)

—

EUNOMIA_TYPE

Authorization mode: none, embedded, remote

none

EUNOMIA_POLICY_FILE

Embedded policy file

mcp_policies.json

EUNOMIA_REMOTE_URL

Remote Eunomia server URL

—

See .env.example for a copy-paste starting point.

Provider and ontology integration

The package contributes its skills, prompts, ontology, and source connector through Python entry points. The collection-inventory connector is intentionally read-only and registers collection metadata, not document or embedding payloads.

Generated connector signatures must be recreated only after the installed MCP schema is observed and a release signing key is provided at runtime. A signature from an older tool schema or ontology must never be copied forward.

Development checks

Low-cost checks that do not start providers:

python -m compileall -q vector_mcp

Provider tests use mocked SDK boundaries and make no network calls. Live qualification is a separate deployment gate and must use operator-provided AgentConfig and secrets.

Documentation

The slim :mcp streamable-http container (docker/mcp.compose.yml) publishes 0.0.0.0:8000 with a /health check; see Deployment for the full compose service definition.

License

See LICENSE.

Deploy with agent-utilities-deployment

Provision this package with the consolidated agent-utilities-deployment workflow. It selects an installed-package, editable-source, or immutable-container path; records only runtime secret and TLS-profile references in AgentConfig; and runs doctor, registration, policy, observability, and rollback gates. Ask your agent to "deploy vector-mcp with agent-utilities-deployment".

Install mode

Command

Installed package

uv tool install "vector-mcp[mcp]", then run vector-mcp

Editable source

uv pip install -e ".[mcp]", then run vector-mcp

Immutable container

deploy registry.example.invalid/vector-mcp@sha256:<digest> through the operator-selected orchestrator

The repository embeds no deployment profile, credential value, certificate path, or environment-specific endpoint. Supply those at runtime through AgentConfig and the configured secret provider.


Installation

Pick the extra that matches what the operator want to run:

Extra

Installs

Use when

vector-mcp[mcp]

Slim MCP server only (scion-sdk[mcp] — FastMCP/FastAPI)

The operator only run the MCP server (smallest install / image)

vector-mcp[all]

Everything (mcp + all vector backends)

Development / both surfaces

# MCP server only (recommended for tool hosting — slim deps)
uv pip install "vector-mcp[mcp]"

# Full agent runtime (Pydantic AI + epistemic-graph engine)
uv pip install "vector-mcp[mcp]"

# Everything (development)
uv pip install "vector-mcp[all]"      # or: python -m pip install "vector-mcp[all]"

Container image

The shared connector pipeline renders a slim :mcp image (vector-mcp[mcp], entrypoint vector-mcp) from pyproject.toml at release time:

pipelines-connector render --root .
docker build -t knucklessg1/vector-mcp:mcp docker/

The render command creates the release-owned docker/mcp.compose.yml; it runs the image with the configured host publication.

Knowledge-graph database (epistemic-graph)

Graph storage, vector search and queries are served by epistemic-graph, run as its own database container. Deployment recipes (single-node + Raft HA), connection config, and the database architecture are in the epistemic-graph deployment guide.

Repository Owners

GitHub followers GitHub User's stars


Contribute

Contributions are welcome! Please ensure code quality by running local checks before submitting pull requests:

  • Format code using ruff format .

  • Lint code using ruff check .

  • Validate type-safety with mypy .

  • Run test suites using pytest

Available Tools

7 tools
vector_add_documentsAdd DocumentsC

Add documents (vector_collection_management). Manage collection management operations.

NameRequiredDescriptionDefault
confirmNoconfirm
db_typeNodb type
overwriteNooverwrite
document_pathsNorelative paths beneath the configured document root
collection_nameNocollection name
document_contentsNodocument contents
include_configured_directoryNoingest the administrator-configured document root

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already state readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the description is not contradicting anything, but it also adds nothing beyond them. The two most consequential behaviors — what the non-idempotent overwrite flag does to existing collection contents, and what the confirm parameter gates (a safety confirmation for a write) — are never mentioned, and the description does not mention that ingestion can be scoped to the administrator-configured root via include_configured_directory.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short, but the second sentence ("Manage collection management operations") earns nothing — it restates the parenthetical and actively misdirects toward collection management. Briefness here is under-specification rather than economy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter non-idempotent write tool with an output schema, the description should at minimum explain the ingestion sources (paths vs inline contents vs configured directory) and the overwrite/confirm safety semantics. Since an output schema exists it needn't cover returns, but the mutation semantics gap is significant.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 7 parameters, including the useful note that document_paths are relative paths beneath the configured document root. The description contributes zero additional parameter meaning, which lands at the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Add documents" names a verb and resource, so the core action is guessable, but the follow-on "Manage collection management operations" muddies it — it describes collection management rather than document ingestion and does not say what kind of documents or where they land. No sibling distinction is offered, though none of the listed siblings appear to ingest documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus other approaches, no mention of prerequisites (does the collection need to exist first, per vector_create_collection?), and no explanation of when to choose document_paths vs document_contents or when to set overwrite/confirm. The agent is left to infer everything from parameter names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vector_create_collectionCreate CollectionC

Create collection (vector_collection_management). Manage collection management operations.

NameRequiredDescriptionDefault
confirmNoconfirm
db_typeNodb type
overwriteNooverwrite
document_pathsNorelative paths beneath the configured document root
collection_nameNocollection name
document_contentsNodocument contents
include_configured_directoryNoingest the administrator-configured document root

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, and openWorldHint=false, so the safety profile is largely covered by structured fields. The description adds nothing beyond those annotations: it does not explain overwrite behavior, confirmation requirements, document ingestion side effects, or what happens to existing collections.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loads 'Create collection', but the second sentence is redundant with the already-stated category and does not earn its place. It is concise but structurally wasteful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a collection-creation tool with seven optional parameters, document-path ingestion options, an overwrite flag, and a confirmation parameter, the description is far too thin. Even with an output schema and annotations covering safety, an agent needs more behavioral context about what creation entails and how the optional parameters interact.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all seven parameters. The description adds no parameter semantics of its own; given the high schema coverage, a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause names a specific verb and resource ('Create collection'), so the core action is identifiable. However, the parenthetical just repeats a category name and 'Manage collection management operations' is a tautological filler that adds no scope, constraints, or differentiation from siblings like vector_delete_collection or vector_add_documents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool instead of siblings, no prerequisites, and no mention of overwrite/confirm semantics. An agent only knows it is the create variant from its name, not from any stated usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vector_delete_collectionDelete CollectionC
DestructiveIdempotent

Delete collection (vector_collection_management). Manage collection management operations.

NameRequiredDescriptionDefault
confirmNoconfirm
db_typeNodb type
overwriteNooverwrite
document_pathsNorelative paths beneath the configured document root
collection_nameNocollection name
document_contentsNodocument contents
include_configured_directoryNoingest the administrator-configured document root

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is consistent with the annotations (destructiveHint=true, idempotentHint=true, readOnlyHint=false) but only because it simply says 'Delete collection.' It adds no behavioral detail beyond the annotations—nothing about what data is removed, whether deletion is reversible, or how the `confirm`, `overwrite`, and document-related parameters affect behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is short and front-loads the deletion action, but the second sentence ('Manage collection management operations') is filler that does not earn its place. The first sentence mostly repeats the tool name and title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with seven parameters, the description is incomplete: it omits confirmation behavior, deletion scope, and the role of unexpected document-related parameters. Annotations cover the basic safety profile and an output schema exists, but operational context is still missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema is the primary source for parameter documentation and the baseline is 3. The description itself adds no meaning about parameters; notably it does not explain why document ingestion parameters appear on a delete tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose2/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description restates the tool name ('Delete collection') and adds only a vague domain label plus the tautological 'Manage collection management operations.' It does not distinguish this from siblings such as vector_create_collection beyond the obvious verb, and a reader gains no addition over the title.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this tool, when not to, or what alternatives exist. For a destructive collection operation, it also gives no prerequisites or confirmation guidance, leaving all routing and safety reasoning to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vector_list_collectionsList CollectionsC
Read-onlyIdempotent

List collections (vector_collection_management). Manage collection management operations.

NameRequiredDescriptionDefault
confirmNoconfirm
db_typeNodb type
overwriteNooverwrite
document_pathsNorelative paths beneath the configured document root
collection_nameNocollection name
document_contentsNodocument contents
include_configured_directoryNoingest the administrator-configured document root

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that—it does not say what a collection listing contains, whether it is scoped or paginated, or why a read-only listing accepts overwrite/confirm/document_paths parameters; the "Manage collection management operations" phrasing even suggests mutation, which sits awkwardly with readOnlyHint=true.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Only two sentences, but the second ("Manage collection management operations") is pure filler that restates the title and adds ambiguity rather than information. Brevity here comes from under-specification, not efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, and annotations carry the safety profile. However, the description is inadequate for a 7-parameter tool with confusing ingest-shaped parameters on a read-only listing operation—an agent has no way to know which parameters are meaningful or how the results are scoped.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Nominal schema coverage is 100%, but the schema descriptions are vacuous restatements of the field names ("confirm", "db type", "overwrite"), so the coverage metric overstates real semantics. The description contributes zero parameter guidance and does not explain why a list operation exposes ingest-oriented fields like document_paths, document_contents, overwrite and include_configured_directory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first clause names a specific verb and resource ("List collections"), which is enough to identify the operation. But the parenthetical "(vector_collection_management)" and the follow-up "Manage collection management operations" blur the purpose into a generic capability-group label, and nothing distinguishes this from sibling tools like vector_semantic_search or vector_lexical_search that also touch collections.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to call this tool, no preconditions, and no mention of alternatives among the six siblings listed. An agent must infer from the name alone that this is the discovery/introspection call before searching.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv3.3.0
    • Addedvector_add_documents
    • Removedvector_collection_management
    • Addedvector_create_collection
    • Addedvector_delete_collection
    • Addedvector_lexical_search
    • Addedvector_list_collections
    • Changedvector_search10 fields changed
      • removedInput schema / properties / action
        Removed value: -{
        -  "description": "Action to perform. Must be one of: 'semantic_search', 'lexical_search', 'search'",
        -  "type": "string"
        -}
      • removedInput schema / properties / bm25_weight
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "number"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "bm25 weight"
        -}
      • removedInput schema / properties / db_name
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "db name"
        -}
      • removedInput schema / properties / db_path
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "db path"
        -}
      • removedInput schema / properties / host
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "host"
        -}
      • addedInput schema / properties / lexical_weight
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "lexical weight"
        +}
      • removedInput schema / properties / password
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "password"
        -}
      • removedInput schema / properties / port
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "port"
        -}
      • removedInput schema / properties / username
        Removed value: -{
        -  "anyOf": [
        -    {
        -      "type": "string"
        -    },
        -    {
        -      "type": "null"
        -    }
        -  ],
        -  "default": null,
        -  "description": "username"
        -}
      • removedInput schema / required
        Removed value: -[
        -  "action"
        -]
    • Addedvector_semantic_search
  2. 2 tool updatesv1.39.0
    • First observedvector_collection_management
    • First observedvector_search

TDQS

C2.6/5.0

Scored across 7 tools

Disambiguation3/5

The collection-management tools are mostly distinct, but the search tools overlap: vector_semantic_search and vector_lexical_search are clear, while vector_search is a generic search operation whose relationship to the other two is unclear. This could cause an agent to choose the generic search when a semantic or lexical search is required.

Naming Consistency4/5

All tools use a consistent vector_ snake_case prefix, and most follow a readable verb/object pattern. The main minor deviation is vector_search, which is less descriptive than the modifier_search pattern used by the other search tools.

Tool Count5/5

Seven tools is well within the appropriate range for a focused vector database server. The set covers collection lifecycle and search operations without excessive or redundant tooling.

Completeness3/5

The server covers collection creation, deletion, listing, document addition, and multiple search modes. However, document lifecycle is notably incomplete: there is no tool to update, delete, list, or get documents, and collection inspection/update operations are also missing.

Maintenance

ActivityActive
ResponsivenessSlow

Related MCP Connectors

Related MCP Servers

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    A sophisticated MCP server providing advanced memory capabilities with RAG, hallucination detection, and enterprise-grade AI infrastructure for intelligent agent ecosystems.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An enterprise-ready MCP server that exposes a RAG tool for retrieving relevant context and metadata from a Qdrant vector database using natural language queries.
    2
    -