A side-by-side look at the Fulcra Context MCP and Genomics MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Fulcra Context MCP for biology & bioinformatics work as a local process; choose Genomics MCP for biology & bioinformatics as a local process. You can also run both side by side in one mcpServers block.
FULCRA_ENVIRONMENT.get_workouts, annotations_catalog, create_data_type.list_sources, search_datasets, describe_dataset.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology & Bioinformatics | Biology & Bioinformatics |
| Quality signal | 63/100 · Good | 59/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | OAuth 2.0 | Not declared |
| Pricing | BYOK (pay the provider) | Not declared |
| Required env vars | FULCRA_ENVIRONMENT | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 10 | 3 |
| Directory activity | 6 views 0 installs 0 upvotes | 1 views 0 installs 0 upvotes |
| Tools | 25 | 23 |
| Full listing | View Fulcra Context MCP | View Genomics MCP |
get_workoutsGet details about the workouts that the user has done during a period of time.
Result timestamps will include time zones. Always translate timestamps to the user's local
time zone when this is known.annotations_catalogGet the list of all annotation data types the user has defined.
This does not get the actual values the user has recorded; for that, use the `get_records` tool.
Use this tool to get the IDs and types to pass to `get_records`.create_data_typeCreate a user-defined data type so the user can track something new.
Choose base_type by what gets recorded: "moment" (a point in time),
"duration" (a time range), "boolean" (yes/no), "numeric" (a number,
optionally with a unit), or "scale" (a 1-5 rating with labels).
The new type appears in get_data_catalog, and recorded values are readable
with get_records. Creation is reversible with archive_data_type.archive_data_typeArchive (soft-delete) a user-defined data type.
The type and its recorded data are recoverable with restore_data_type.
Only user-defined types (created via create_data_type or the Context app)
can be archived.restore_data_typeRestore an archived user-defined data type.record_dataRecord a single record for a recordable data type.
Use get_data_catalog to find data types; user-defined ones use the
"<BaseType>/<uuid>" ID form (create new ones with create_data_type).
Recorded data can be read back with get_records.get_data_catalogGet all data types available for this user, grouped by relevant MCP tool.
Includes health and sensor measurements,
location, events, and user-defined annotation types.
Call this before requesting time-series data or raw records, and only use a
data type with the tools named in its group.get_time_seriesGet calculated per-interval time-series values for a single data type.
Only data types that `get_data_catalog` lists as usable with this tool are
supported; other types can be read with `get_records`. Result timestamps
include time zones; translate them to the user's local time zone when known.get_recordsRetrieve the raw records of any data type during a time period.
Works with every type listed by `get_data_catalog`, including user-defined
ones ("<BaseType>/<uuid>" IDs); the correct API endpoint is chosen
automatically. Records that cover a time range are included when any part
of it intersects the requested window. Results are raw samples — they may
come from multiple sources and can overlap; for calculated per-interval
values of numeric data types, prefer `get_time_series`. Result
timestamps include time zones; translate them to the user's local time
zone when known.get_data_updatesSummarize the data that arrived in the user's account during a period of time.
The time range filters on when records were processed/synced into Fulcra,
NOT on the records' own timestamps — e.g. last night's sleep records
typically arrive this morning. Use this to find out what new data exists
since a previous check, then query the changed types with the appropriate
tools.get_sleepReturn the user's sleep data at a chosen level of detail.
Pick the coarsest level that answers the question — results grow with detail:
- "aggregate": stage totals per period (default 1 day), one row per period
per stage. Best for multi-day questions ("how did I sleep this month").
- "cycles": one row per sleep session.
- "stages": every stage interval (the full hypnogram); single-night detail.
Sleep spans midnight (starts day N, ends day N+1) — extend the time range
accordingly. Stage integers: 0=In Bed, 1=Asleep/Unknown, 2=Awake, 3=Light,
4=Deep, 5=REM. Result timestamps include time zones; translate them to the
user's local time zone when known.get_location_at_timeGets the user's location at the given time.
If no sample is available for the exact time, searches for the closest one up to
window_size seconds away.
Result timestamps will include time zones. Always translate timestamps to the user's local
time zone when this is known.list_sourcesList data and reference sources, their state and supported operations.search_datasetsSearch one archive/catalog for studies or datasets by text query.
Available for: ega, ena, encode, geo, ncbi_datasets.describe_datasetDescribe a study/dataset by native accession, with linked entities.
Available for: ega, ena, encode, geo, ncbi_datasets.list_filesList files of a study/dataset with format, size, checksums, index and readiness.
Available for: ega, ena, encode, geo, local, ncbi_datasets, s3.list_samplesList samples of a study/dataset as supplied by the source.
Available for: ega, ena, encode, geo, ncbi_datasets.get_sample_metadataGet one sample's metadata and phenotype values exactly as supplied by the source.
Available for: ega, ena, encode, geo, ncbi_datasets.fetch_fileStart a bounded download of a file (and index) to the local work dir. Returns a transfer job; files above the default limit need budget_bytes.
Available for: default.get_transfer_statusGet progress/result of a transfer started by fetch_file.
Available for: default.cancel_transferCancel a running transfer.
Available for: default.get_readsAlignments overlapping an interval from indexed BAM/CRAM. Flag filters follow samtools -f/-F. CRAM needs a matching reference unless self-contained.
Available for: bam, cram.get_coverageRead depth over an interval from indexed BAM/CRAM (default excludes UNMAP, SECONDARY, QCFAIL, DUP, like samtools depth).
Available for: bam, cram.get_pileupPer-position base counts over an interval from indexed BAM/CRAM.
Available for: bam, cram.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"fulcradynamics-fulcra-context-mcp": {
"command": "uvx",
"args": [
"fulcra-context-mcp@latest"
],
"env": {
"FULCRA_ENVIRONMENT": "YOUR_FULCRA_ENVIRONMENT_HERE"
}
}
}
}
{
"mcpServers": {
"genomics-mcp": {
"command": "uvx",
"args": [
"rewire-genomics-mcp"
]
}
}
}