CEDAR MCP Server
OfficialThis server enables interaction with CEDAR metadata and BioPortal ontologies via the Model Context Protocol. Key capabilities:
CEDAR Templates: Fetch templates (
get_cedar_template) and retrieve paginated instances (get_instances_based_on_template).BioPortal Search: Search for terms within a branch (
term_search_from_branch) or across an ontology (term_search_from_ontology).Ontology Navigation: Get child terms of a branch (
get_branch_children) or the class hierarchy tree (get_ontology_class_tree).Cache Management: Remove stale entries (
remove_stale_cache_entries) or clear the entire BioPortal cache (clear_bioportal_cache).Integration: Supports stdio, SSE, and streamable-http transports; can be added to Claude Code or Claude Desktop.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CEDAR MCP ServerSearch for 'melanoma' in the NCIT ontology"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Go to cedar.metadatacenter.org
Create an account or log in
Navigate to: Profile → API Key
Copy your API key
BioPortal API Key
Create an account or log in
Navigate to: Account Settings → API Key
Copy your API key
Related MCP server: Onto MCP Server
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"Option 1: Using UVX (Recommended)
Run directly without installation using uvx:
uvx cedar-mcpOption 2: Using pip
Install from PyPI and run:
pip install cedar-mcp
cedar-mcpNote: The
--cedar-api-keyand--bioportal-api-keyCLI 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 9000Flag | Choices | Default | Description |
|
|
| Transport protocol |
| — |
| Host to bind to (HTTP transports only) |
| — |
| 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-keyUsing with Claude Desktop
To use with Claude Desktop app:
Install the MCP server using one of the methods above
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. Passexpand_branchesto 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 |
|
| Time-to-live for cached BioPortal responses |
| Platform-specific (see below) | Override the cache directory location |
Default cache locations:
macOS:
~/Library/Caches/cedar-mcpLinux:
$XDG_CACHE_HOME/cedar-mcpor~/.cache/cedar-mcpWindows:
%LOCALAPPDATA%/cedar-mcp/cache
Development
Install Development Dependencies
pip install -r requirements-dev.txtRunning 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 --integrationLicense
This project is licensed under the MIT License — see the LICENSE file for details.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables interaction with the CEDAR (Center for Expanded Data Annotation and Retrieval) metadata repository to fetch templates and retrieve template instances. Supports querying structured metadata and biomedical data annotations through the CEDAR platform.2MIT
- Flicense-qualityBmaintenanceEnables interaction with the Onto platform through MCP, providing tools for managing realms, templates, entities, diagrams, and relations.
- Alicense-qualityCmaintenanceMCP server for retrieving clinical standard content from the CDISC Library, supporting controlled terminology, ADaM, SDTM, CDASH, SEND metadata, and search.7MIT
- FlicenseAqualityCmaintenanceEnables interaction with synthetic NIH-style clinical research data through tools for searching publications, querying patient metadata, analyzing AAA measurements, and retrieving protocol guidance.5
Related MCP Connectors
Search and fetch Wikidata entities, execute SPARQL queries, and resolve external identifiers.
Securely access and manage FHIR healthcare data stored in Medplum.
Search, document and execute authenticated API calls across 500+ apps via one MCP server
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/musen-lab/cedar-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server