Skip to main content

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

Set your API keys as environment variables:

export CEDAR_API_KEY="your-cedar-key"
export BIOPORTAL_API_KEY="your-bioportal-key"

Run directly without installation using uvx:

uvx cedar-mcp

Option 2: Using pip

Install from PyPI and run:

pip install cedar-mcp
cedar-mcp

Note: The --cedar-api-key and --bioportal-api-key CLI flags are deprecated and will be removed in a future release. Use environment variables instead.

Transport Options

By default, the server uses stdio transport. You can also run it as an HTTP server using SSE or streamable-http transports:

# SSE transport on default host/port (127.0.0.1:8000)
cedar-mcp --transport sse

# Streamable HTTP on custom host/port
cedar-mcp --transport streamable-http --host 0.0.0.0 --port 9000
Flag Choices Default Description
--transport stdio, sse, streamable-http stdio Transport protocol
--host — 127.0.0.1 Host to bind to (HTTP transports only)
--port — 8000 Port to bind to (HTTP transports only)

Using with Claude Code

Add the CEDAR MCP server to Claude Code:

claude mcp add cedar-mcp --uvx -e CEDAR_API_KEY=your-cedar-key -e 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, using CEDAR's compact YAML rendering so it costs fewer tokens to read than the JSON-LD form. Pass expand_branches to list the values allowed by each ontology branch: "labels" for their labels alone, "terms" for labels with their IRIs, or the default "none" to report the branch itself and skip the lookups.
  • 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.

Metadata

Release files for cedar-mcp 1.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cedar-mcp 1.4.0
File Size Uploaded
cedar_mcp-1.4.0.tar.gz 138.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cedar-mcp 1.4.0
File Interpreter ABI Platform
cedar_mcp-1.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 164.8 kB

Release files / cedar_mcp-1.4.0.tar.gz

Download URL cedar_mcp-1.4.0.tar.gz
Size 138.3 kB
Tags Source
SHA-256 checksum
How to use checksums
73c83818ce12986aa1d571c582623549fdf528ca45560ae49257d8b673578e32
BLAKE2b-256 checksum
How to use checksums
552f7196634eac335250187cd3cb968747bd02fb3118584f80446895e218aa32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / cedar_mcp-1.4.0-py3-none-any.whl

Download URL cedar_mcp-1.4.0-py3-none-any.whl
Size 26.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2f6985aefaea186e70c8330c0330c3e40b3d6d10f8534d52bfecc19b87733add
BLAKE2b-256 checksum
How to use checksums
f81e85b9b7033edc73a5366ec3f111f48dcb670e14402c59da5b4be48b324faf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.4.0 This release

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page