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
- Create an OAuth application for Samsung SmartThings
- Configure your redirect URI
- 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