Skip to main content

CaVa MCP server — read-only agentive access to OMOP vocab, cohorts, and clinical vocabularies.

Project description

cava-mcp

cava-mcp is an atomic, read-only MCP (Model Context Protocol) tool library for navigating the OMOP vocabularies. It exposes OMOP vocabulary lookups, embedding similarity search, cohort concept references, and system status as typed MCP tools that any MCP client can call — including cava-datahub, Claude Code, and autonomous agents.

Read-only. No patient-level data. No write operations.

What it exposes

Group Tools
Concept concept_get, concept_by_code, concept_ancestors, concept_descendants, concept_relationships, concept_equivalency_path, concept_path, concept_map_to_standard, concept_neighbors
Resolver concept_ground (with parent_ids, scoring fields, and grounding_explanation)
Search concept_search_exact, concept_search_fulltext, concept_navigate_to_standard
Embedding embedding_index_status, embedding_neighbours, embedding_search, embedding_encode
Cohort cohort_find_concept_references
System system_status, system_vocabulary_catalogue

Tools are registered conditionally — if an adapter is not configured, its tools are simply not registered. system_status and system_vocabulary_catalogue are always registered so clients can always query adapter availability.

Quick start

uv venv
uv sync --extra dev --extra embedding-tools
uv run cava-mcp --config config/cava-mcp.example.yaml --describe

Start the server:

uv run cava-mcp --config config/cava-mcp.example.yaml

Example config

omop_graph:
  db_url: "postgresql+psycopg://user:pass@localhost:5432/omop"
  vocab_schema: omop_vocab

omop_emb:
  enabled: true
  backend_type: pgvector
  db_url: "postgresql+psycopg://user:pass@localhost:5432/omop"
  default_model_name: qwen3-embedding:0.6b
  api_base: "http://localhost:11434/v1"
  api_key: "ollama"

Install matrix

Use case Extras
Core server only none
Concept tools concept-tools
Cohort tools cohort-tools
Embedding tools (sqlite-vec) embedding-tools
Embedding tools (pgvector) embedding-pgvector
Embedding tools (FAISS sidecar) embedding-faiss
All tool families all-tools
All + pgvector embeddings all-tools-pgvector
All + FAISS embeddings all-tools-faiss
Development dev
Development + all tools dev-all

Layout

src/cava_mcp/
  adapters/          — omop_graph, omop_emb, oa_cohorts adapter classes
  base/              — DataHubServer, errors, results, SQL helpers
  tools/             — MCP tool registrations by domain
  config.py          — Pydantic config models (AppConfig, OmopGraphConfig, etc.)
  server.py          — Server factory and CLI entry point
config/              — Example YAML configs
_design/             — Architecture notes and spec documents
tests/               — Unit and integration tests

Adapter backends

  • omop-graph — concept lookup, hierarchy traversal, full-text search
  • omop-emb — embedding index (sqlite-vec, pgvector, or FAISS sidecar)
  • OpenAnalytics cohorts — cohort concept reference queries (Phase N)

Companion repos

  • cava-datahub — ACP orchestration layer that drives this tool substrate
  • omop-graph — OMOP virtual knowledge graph library
  • omop-emb — OMOP embedding index library

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cava_mcp-0.1.2.tar.gz (31.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cava_mcp-0.1.2-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file cava_mcp-0.1.2.tar.gz.

File metadata

  • Download URL: cava_mcp-0.1.2.tar.gz
  • Upload date:
  • Size: 31.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cava_mcp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 5fa2357ae4225cee24f488e036f97a22ecdcf8e9fcf4990b31ae2f9b323d512d
MD5 39a8bf794c23a8904e2362c7e34072bc
BLAKE2b-256 ceb083856025253de5fe289cd9fc114dda39042b7e8a75da9362e36db03c408a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cava_mcp-0.1.2.tar.gz:

Publisher: pypi.yml on AustralianCancerDataNetwork/cava-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cava_mcp-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: cava_mcp-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for cava_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fc1ca1306f7e680c4e92d40bc232e53bb86932026a31673a6b3ad4a64293142c
MD5 e0b00dc53078897ffea4386a1bfe0c5e
BLAKE2b-256 36ffcf4baf6d95c23afdb8cccc71712b759ab6e166ace7c6a14be52548b8d550

See more details on using hashes here.

Provenance

The following attestation bundles were made for cava_mcp-0.1.2-py3-none-any.whl:

Publisher: pypi.yml on AustralianCancerDataNetwork/cava-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page