A side-by-side look at the Fulcra Context MCP and Inbody API 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, medicine and bioinformatics work as a local process; choose Inbody API MCP for biology, medicine and 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.INBODY_LOGIN_ID, INBODY_LOGIN_PW, INBODY_COUNTRY_CODE.get_profile, get_scan_count, list_scans.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology, Medicine and Bioinformatics | Biology, Medicine and Bioinformatics |
| Quality signal | 63/100 · Good | 49/100 · Fair |
| 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 | INBODY_LOGIN_IDINBODY_LOGIN_PWINBODY_COUNTRY_CODE |
| Verified owner | Community listing | Community listing |
| GitHub stars | 9 | 14 |
| Directory activity | 5 views 0 installs 0 upvotes | 2 views 0 installs 0 upvotes |
| Tools | 25 | 4 |
| Full listing | View Fulcra Context MCP | View Inbody API 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.get_profileUser identity and baseline metrics (height, weight, age, gender)get_scan_countTotal number of scans on the accountlist_scansChronological scan summaries (weight, BMI, % body fat, muscle mass)get_scanFull metric set for one scan (BCA / MFA / IMP blocks)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": {
"inbody-api-mcp": {
"command": "uvx",
"args": [
"inbody-api-mcp"
],
"env": {
"INBODY_LOGIN_ID": "YOUR_INBODY_LOGIN_ID_HERE",
"INBODY_LOGIN_PW": "YOUR_INBODY_LOGIN_PW_HERE",
"INBODY_COUNTRY_CODE": "YOUR_INBODY_COUNTRY_CODE_HERE"
}
}
}
}