DevelopersDocumentation

FMCPServer User Manual

FMCPServer is an MCP (Model Context Protocol) server that allows AI assistants (e.g. Claude) to control FUG-connected devices via the FUG API.


Adding FMCPServer to an LLM Client

Claude Code (CLI)

Run the following command, replacing <URL> with the server URL for your environment:

claude mcp add --transport http fmcp <URL>

To scope it to a specific project only:

claude mcp add --transport http --scope project fmcp <URL>

Reference: Claude Code MCP documentation


Other MCP-Compatible Clients

FMCPServer uses the streamable-http transport, which is supported by most modern MCP clients. Below are popular options beyond Claude:

Client Type MCP Setup Guide
Cursor AI code editor docs.cursor.com/context/model-context-protocol
Windsurf Agentic IDE docs.windsurf.com
VS Code (GitHub Copilot) Code editor code.visualstudio.com/docs/copilot/customization/mcp-servers
Cline VS Code agent docs.cline.bot/mcp/configuring-mcp-servers
Continue Open-source code assistant docs.continue.dev/customize/deep-dives/mcp
Gemini CLI Google’s terminal agent geminicli.com/docs/tools/mcp-server
Zed High-performance code editor zed.dev/docs/ai/mcp
ChatGPT OpenAI assistant help.openai.com
Replit Cloud IDE agent docs.replit.com/replitai/mcp/overview

For a full list of MCP-compatible clients, see the official MCP clients page.

The general pattern for adding a remote HTTP MCP server is the same across most clients — provide the server URL and select streamable-http (or http) as the transport.


Claude Desktop

  1. Open Claude Desktop → menu bar → SettingsDeveloperEdit Config
  2. The config file is located at:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  3. Add the FMCPServer entry:
{
  "mcpServers": {
    "fmcp": {
      "type": "streamable-http",
      "url": "<URL>"
    }
  }
}
  1. Save the file and restart Claude Desktop. A tools icon will appear in the chat input confirming the server is connected.

Reference: MCP quickstart for users


Environments

The server is available in three environments:

Environment MCP Server
Staging https://fmcp-server-stg.feelme.com/mcp
Production https://fmcp-server-prd.feelme.com/mcp

Authentication

All tools require a Device Connection Key (DCK) passed as the dck parameter. The DCK authenticates requests to the FUG API.


Available Tools

1. hello

Say hello to someone. Useful for verifying the server is reachable.

Parameter Type Required Description
name string Yes Name to greet

Example:

hello(name="Alice")
→ "Hello, Alice!"

2. get_device_status

Get the status of all devices in the group.

Parameter Type Required Description
dck string Yes Device Connection Key

Example:

get_device_status(dck="YOUR_DCK")

3. send_command_to_devices

Send a movement or control command to FUG-connected devices.

Parameter Type Required Description
dck string Yes Device Connection Key
command_type enum Yes One of: MOVEMENT, MOVEMENT_BETWEEN, PAUSE, RAW
arguments object Yes Command parameters (see below)
command_duration_ms integer No Duration in milliseconds; omit to use device defaults

arguments fields by command_type

command_type Field Type Description
MOVEMENT position integer Target position
MOVEMENT speed integer Movement speed
MOVEMENT_BETWEEN min_position integer Minimum position
MOVEMENT_BETWEEN max_position integer Maximum position
MOVEMENT_BETWEEN speed integer Movement speed
PAUSE (none) No arguments needed
RAW raw_data string Raw byte payload e.g. 0x01 0x02 0xFF

Examples:

send_command_to_devices(dck="YOUR_DCK", command_type="PAUSE", arguments={})

send_command_to_devices(dck="YOUR_DCK", command_type="MOVEMENT", arguments={"position": 80, "speed": 10})

send_command_to_devices(dck="YOUR_DCK", command_type="MOVEMENT_BETWEEN", arguments={"min_position": 20, "max_position": 80, "speed": 5})

4. send_setup_to_device

Apply configuration parameters to a FUG-connected device.

Parameter Type Required Description
dck string Yes Device Connection Key
setup_type enum Yes One of: speed_intensity_adjustment, range_intensity_adjustment, status_update_interval
arguments object Yes Configuration parameters (see below)

arguments fields by setup_type

setup_type Field Type Description
speed_intensity_adjustment intensity integer Intensity percentage (0–100)
range_intensity_adjustment intensity integer Intensity percentage (0–100)
status_update_interval interval integer Interval in milliseconds

Examples:

send_setup_to_device(dck="YOUR_DCK", setup_type="speed_intensity_adjustment", arguments={"intensity": 75})

send_setup_to_device(dck="YOUR_DCK", setup_type="status_update_interval", arguments={"interval": 1000})

5. send_reprovision_command_to_device

Send a reprovisioning command to a FUG-connected device. Used for device lifecycle operations.

Parameter Type Required Description
dck string Yes Device Connection Key
reprovision_type enum Yes One of: bt_mode, reset_credentials
arguments object Yes Pass empty {}

reprovision_type values

Value Description
bt_mode Puts the device into Bluetooth pairing/advertising mode
reset_credentials Wipes device credentials and returns to factory state

Examples:

send_reprovision_command_to_device(dck="YOUR_DCK", reprovision_type="bt_mode", arguments={})

send_reprovision_command_to_device(dck="YOUR_DCK", reprovision_type="reset_credentials", arguments={})

Example Prompts

Once FMCPServer is connected, you can use natural language to control devices. Below are example prompts:

Check device status:

“Using DCK YOUR_DCK, get the status of all connected devices.”

Pause all devices:

“Send a pause command to all devices using DCK YOUR_DCK.”

Move a device to a position:

“Move the device to position 80 at speed 10 using DCK YOUR_DCK.”

Oscillate a device between positions:

“Make the device oscillate between position 20 and 80 at speed 5 using DCK YOUR_DCK. Run it for 5 seconds.”

Adjust intensity:

“Set the speed intensity to 60% for device with DCK YOUR_DCK.”

Put device into Bluetooth pairing mode:

“Put the device with DCK YOUR_DCK into Bluetooth pairing mode.”

Factory reset a device:

“Reset the credentials for the device with DCK YOUR_DCK.”