Data source: Curated dataset
https://context.gnist.ai/mcp/exercise/
AuthenticationAll requests require a Gnist-API-Key header (or api_key query parameter).
Free tier: 100 calls/day. Get your API key.
Tools (7)
get_exercisesearch_exerciseslist_exercises_by_muscle_grouplist_exercises_by_equipmentget_muscle_groupsget_equipment_typesreport_feedback
get_exerciseGet detailed information about an exercise by its ID.
Args:
exercise_id: Exercise slug (e.g. "bench-press", "barbell-squat").
Returns:
Dictionary with exercise details including muscle group, equipment, difficulty, and calories.
| Parameter | Type | Required | Description |
|---|---|---|---|
exercise_id | string | required |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_exercise",
"arguments": {
"exercise_id": "example"
}
}
}search_exercisesSearch exercises by name (case-insensitive partial match).
Args:
query: Search string to match against exercise names.
limit: Maximum number of results to return (default 20).
Returns:
Dictionary with count and list of matching exercises.
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | required | |
limit | integer | optional | (default: 20) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "search_exercises",
"arguments": {
"query": "example"
}
}
}list_exercises_by_muscle_groupList exercises targeting a specific muscle group.
Args:
muscle_group: Muscle group — one of chest, back, shoulders, arms, legs, core, full_body, cardio.
limit: Maximum number of results to return (default 20).
Returns:
Dictionary with muscle group, count, and list of exercises.
| Parameter | Type | Required | Description |
|---|---|---|---|
muscle_group | string | required | |
limit | integer | optional | (default: 20) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "list_exercises_by_muscle_group",
"arguments": {
"muscle_group": "example"
}
}
}list_exercises_by_equipmentList exercises that use a specific type of equipment.
Args:
equipment: Equipment type — one of barbell, dumbbell, bodyweight, machine, cable, kettlebell, resistance_band, none.
limit: Maximum number of results to return (default 20).
Returns:
Dictionary with equipment type, count, and list of exercises.
| Parameter | Type | Required | Description |
|---|---|---|---|
equipment | string | required | |
limit | integer | optional | (default: 20) |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "list_exercises_by_equipment",
"arguments": {
"equipment": "example"
}
}
}get_muscle_groupsGet all available muscle groups in the exercise database.
Returns:
Dictionary with count and list of muscle group names.
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_muscle_groups",
"arguments": {}
}
}get_equipment_typesGet all available equipment types in the exercise database.
Returns:
Dictionary with count and list of equipment type names.
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_equipment_types",
"arguments": {}
}
}report_feedbackReport a bug, feature request, or general feedback for this data source.
Use this when something doesn't work as expected, when you'd like
a new feature, or when you have suggestions for improvement.
Args:
feedback: Describe the issue or suggestion.
feedback_type: One of 'bug', 'feature_request', or 'general'.
| Parameter | Type | Required | Description |
|---|---|---|---|
feedback | string | required | |
feedback_type | string | optional | (default: "general") |
{
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "report_feedback",
"arguments": {
"feedback": "example"
}
}
}Quick Start
curl -X POST "https://context.gnist.ai/mcp/exercise/" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Gnist-API-Key: YOUR_API_KEY" \
-d '{"jsonrpc": "2.0", "method": "tools/call", "id": 1, "params": {"name": "get_exercise", "arguments": {"exercise_id": "example"}}}'
import httpx
resp = httpx.post(
"https://context.gnist.ai/mcp/exercise/",
headers={"Gnist-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"id": 1,
"params": {
"name": "get_exercise",
"arguments": {
"exercise_id": "example"
}
}
},
)
print(resp.json())