Skip to main content
Glama
Tibe31

so101-mcp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SO101_MCP_CONFIGNoAbsolute path to the config.json file containing port, robot_id, limits, poses, etc. If not set, the server looks for config.json in the current working directory.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_robot_stateA

Read calibrated motor positions (no intentional movement).

list_safe_posesA

Show only pre-taught named poses. Never guess an extreme pose.

move_to_poseA

Move slowly to a locally taught and verified safe pose by name. Do not use if work area is obstructed.

move_jointsA

Move one or more joints to absolute positions (degrees; gripper 0-100). Example: {"shoulder_pan": -50, "wrist_roll": 0}. Joints not listed stay in place. Every target must be inside the limits in config.json, otherwise nothing moves. Do not use if work area is obstructed.

move_joint_byA

Rotate a single joint by a relative amount from its current position. Example: joint="shoulder_pan", delta_degrees=-10 (negative pan = left). The final position must be inside the limits in config.json, otherwise nothing moves.

cycle_gripperA

Open then close gripper a specified number of times (1-5), using operator-validated calibrated endpoints.

open_gripperB

Slowly open gripper to the operator-verified safe position.

close_gripperB

Slowly close gripper to the operator-verified safe position.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation4/5

Each tool maps to a distinct action on a distinct target: read state, list named poses, move to a named pose, absolute multi-joint moves, relative single-joint moves, and three gripper operations. The only mild overlap is move_joints vs. move_joint_by, but the descriptions clearly separate absolute/multi-joint from relative/single-joint semantics, and cycle_gripper is distinguished from open/close by its repeat count.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern (get_*, list_*, move_*, cycle_*, open_*, close_*) with predictable, domain-specific nouns. No mixed conventions or vague verbs anywhere in the set.

Tool Count5/5

Eight tools is a well-scoped surface for a robot arm: state read, pose listing, three movement primitives, and three gripper operations. Nothing feels redundant or padded, and no important primitive is obviously duplicated.

Completeness4/5

The surface covers perception (get_robot_state, list_safe_poses), motion (move_to_pose, move_joints, move_joint_by), and end-effector control (open/close/cycle_gripper) with clear lifecycle coverage. Minor gaps exist: no explicit stop/halt or return-to-home primitive and no way to teach/register a new safe pose, though the latter appears intentionally done by an operator outside the toolset.

Maintenance

ActivityMaintained
ResponsivenessNo issues