Skip to main content

A CEDAR MCP server

Project description

CEDAR MCP Server

A Model Context Protocol (MCP) server for interacting with the CEDAR (Center for Expanded Data Annotation and Retrieval) metadata repository.

Prerequisites

Before using this MCP server, you'll need API keys from:

CEDAR API Key

BioPortal API Key

Running the CEDAR MCP Server

Option 1: Using UVX (Recommended)

Run directly without installation using uvx:

uvx cedar-mcp \
  --cedar-api-key "your-cedar-key" \
  --bioportal-api-key "your-bioportal-key"

Option 2: Using pip

Install from PyPI and run:

pip install cedar-mcp

cedar-mcp \
  --cedar-api-key "your-cedar-key" \
  --bioportal-api-key "your-bioportal-key"

Option 3: Using Environment Variables

Set environment variables instead of command-line arguments:

# Set environment variables
export CEDAR_API_KEY="your-cedar-key"
export BIOPORTAL_API_KEY="your-bioportal-key"

# Run with uvx
uvx cedar-mcp

# Or if installed via pip
cedar-mcp

Using with Claude Code

Add the CEDAR MCP server to Claude Code:

claude mcp add cedar-mcp --uvx \
  --cedar-api-key "your-cedar-key" \
  --bioportal-api-key "your-bioportal-key"

Using with Claude Desktop

To use with Claude Desktop app:

  1. Install the MCP server using one of the methods above
  2. Add to Claude Desktop configuration in your claude_desktop_config.json:
{
  "mcpServers": {
    "cedar-mcp": {
      "command": "uvx",
      "args": [
        "cedar-mcp"
      ],
      "env": {
        "CEDAR_API_KEY": "your-cedar-key",
        "BIOPORTAL_API_KEY": "your-bioportal-key",
        "CEDAR_MCP_CACHE_TTL_SECONDS": "86400",
        "CEDAR_MCP_CACHE_DIR": "/path/to/custom/location"
      }
    }
  }
}

Or if you have it installed locally:

{
  "mcpServers": {
    "cedar-mcp": {
      "command": "cedar-mcp",
      "env": {
        "CEDAR_API_KEY": "your-cedar-key",
        "BIOPORTAL_API_KEY": "your-bioportal-key",
        "CEDAR_MCP_CACHE_TTL_SECONDS": "86400",
        "CEDAR_MCP_CACHE_DIR": "/path/to/custom/location"
      }
    }
  }
}

The CEDAR_MCP_CACHE_TTL_SECONDS and CEDAR_MCP_CACHE_DIR environment variables are optional. When set under the "env" key, Claude Desktop injects them into the server process environment before it starts, so the cache picks them up automatically. If omitted, the defaults apply (24-hour TTL and a platform-specific cache directory — see Cache Configuration).

Available Tools

Here is the list of CEDAR tools with a short description

  • get_cedar_template: Fetches a template from the CEDAR repository.
  • get_instances_based_on_template: Gets template instances that belong to a specific template with pagination support.
  • term_search_from_branch: Searches BioPortal for standardized ontology terms within a specific branch.
  • term_search_from_ontology: Searches BioPortal for standardized ontology terms within an entire ontology.
  • get_branch_children: Fetches all immediate children terms for a given branch in an ontology.
  • get_ontology_class_tree: Fetches the hierarchical tree structure for a given class in an ontology.
  • remove_stale_cache_entries: Removes expired entries from the BioPortal search cache.
  • clear_bioportal_cache: Clears all entries from the BioPortal search cache.

Cache Configuration

BioPortal search results are cached locally using SQLite to reduce latency and API load. The cache persists across server restarts.

Variable Default Description
CEDAR_MCP_CACHE_TTL_SECONDS 86400 (24 hours) Time-to-live for cached BioPortal responses
CEDAR_MCP_CACHE_DIR Platform-specific (see below) Override the cache directory location

Default cache locations:

  • macOS: ~/Library/Caches/cedar-mcp
  • Linux: $XDG_CACHE_HOME/cedar-mcp or ~/.cache/cedar-mcp
  • Windows: %LOCALAPPDATA%/cedar-mcp/cache

Development

Install Development Dependencies

pip install -r requirements-dev.txt

Running Tests

This project includes comprehensive integration tests that validate real API interactions with both CEDAR and BioPortal APIs.

For detailed testing information, see test/README.md.

Contributing

Contributions are welcome! Please ensure all tests pass before submitting a Pull Request:

python run_tests.py --integration

License

This project is licensed under the MIT License — see the LICENSE file for details.

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

cedar_mcp-1.0.0.tar.gz (132.6 kB view details)

Uploaded Source

Built Distribution

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

cedar_mcp-1.0.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file cedar_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: cedar_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 132.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cedar_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9ff3f0333e22aaf39090f0f9907a1fb8410bf01e61c27471fc561633de63d7e5
MD5 6a7d4abb2a2d103dc36b049b47926c12
BLAKE2b-256 e89732d976324d4c4217f55d88c4eccdfa6045e1d4d2f1c79ef872d9a0151d42

See more details on using hashes here.

Provenance

The following attestation bundles were made for cedar_mcp-1.0.0.tar.gz:

Publisher: release.yml on musen-lab/cedar-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 cedar_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: cedar_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for cedar_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 28ab4d0f0ca681233d42acf3d62d99b7bc9c40e10a2ac0e74eb5f21b444f59a1
MD5 b34b30248aa31226b3a730c8fa3eec8d
BLAKE2b-256 ef48aa5c6bb2deafa39255b0779d76cd937f38de3031557d2cda35e58bc63250

See more details on using hashes here.

Provenance

The following attestation bundles were made for cedar_mcp-1.0.0-py3-none-any.whl:

Publisher: release.yml on musen-lab/cedar-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