View as Markdown

Samsung SmartThings Integration

Manage SmartThings locations, rooms, devices, commands, scenes, and rules

The Samsung SmartThings integration provides access to manage SmartThings locations, rooms, devices, commands, scenes, and rules through the Integrate MCP server.

Installation

The Samsung SmartThings integration is included with the SDK:

import { smartthingsIntegration } from "integrate-sdk/server";

Setup

1. Create a Samsung SmartThings OAuth App

  1. Create an OAuth application for Samsung SmartThings
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Samsung SmartThings integration to your server configuration. The integration automatically reads SMARTTHINGS_CLIENT_ID and SMARTTHINGS_CLIENT_SECRET from your environment variables:

import { createMCPServer, smartthingsIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    smartthingsIntegration({
      scopes: ["r:locations:*", "x:locations:*", "r:devices:*", "x:devices:*", "r:scenes:*", "x:scenes:*", "r:rules:*", "x:rules:*"], // Optional
    }),
  ],
});

You can override the environment variables by passing explicit values:

smartthingsIntegration({
  clientId: process.env.CUSTOM_SMARTTHINGS_ID,
  clientSecret: process.env.CUSTOM_SMARTTHINGS_SECRET,
      scopes: ["r:locations:*", "x:locations:*", "r:devices:*", "x:devices:*", "r:scenes:*", "x:scenes:*", "r:rules:*", "x:rules:*"], // Optional
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("smartthings");
const result = await client.smartthings.listLocations({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, smartthingsIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [smartthingsIntegration()],
});

Configuration Options

export interface SmartThingsIntegrationConfig {
  clientId?: string;

Default Scopes

These defaults are applied unless you override scopes in the integration config:

  • r:locations:*
  • x:locations:*
  • r:devices:*
  • x:devices:*
  • r:scenes:*
  • x:scenes:*
  • r:rules:*
  • x:rules:*

Tools

smartthings_list_locations

List locations

No parameters.

smartthings_get_location

Get location

export interface SmartthingsGetLocationParams { location_id: string }

smartthings_list_rooms

List rooms

export interface SmartthingsListRoomsParams { location_id: string }

smartthings_get_room

Get room

export interface SmartthingsGetRoomParams { location_id: string;

smartthings_list_devices

List devices

export interface SmartthingsListDevicesParams { locationId?: string;

smartthings_get_device

Get device

export interface SmartthingsGetDeviceParams { device_id: string }

smartthings_get_device_status

Get device status

export interface SmartthingsGetDeviceStatusParams { device_id: string }

smartthings_execute_device_command

Execute device command

export interface SmartthingsExecuteDeviceCommandParams { device_id: string;

smartthings_list_scenes

List scenes

export interface SmartthingsListScenesParams { locationId?: string }

smartthings_execute_scene

Execute scene

export interface SmartthingsExecuteSceneParams { scene_id: string }

smartthings_list_rules

List rules

export interface SmartthingsListRulesParams { locationId?: string }

smartthings_get_rule

Get rule

export interface SmartthingsGetRuleParams { rule_id: string;

smartthings_create_rule

Create rule

export interface SmartthingsCreateRuleParams { locationId?: string;

smartthings_update_rule

Update rule

export interface SmartthingsUpdateRuleParams { rule_id: string;

smartthings_delete_rule

Delete rule

export interface SmartthingsDeleteRuleParams { rule_id: string;

Notes

  • Category: Lifestyle
  • Authentication mode: OAuth