Skip to main content
Glama

Seam MCP Server

by keithah
README.md6.84 kB
# Seam MCP Server A Model Context Protocol (MCP) server for controlling smart locks via the Seam API. ## Features This MCP server provides comprehensive tools for managing smart locks and access codes: ### Lock Control - `get_status` - **NEW!** Get a comprehensive overview of all locks with battery levels, connectivity, and issues - `list_locks` - List all smart locks connected to your Seam account - `get_lock` - Get detailed information about a specific lock - `lock_door` - Lock a specific door - `unlock_door` - Unlock a specific door - `get_lock_status` - Get the current lock status with battery level and online status ### Access Code Management - `create_access_code` - Create an access code on a single lock with optional time limits - `create_access_code_on_multiple_locks` - Create the same code on multiple locks (with location filtering) - `list_access_codes` - List all access codes, optionally filtered by device - `update_access_code` - Update an existing access code - `delete_access_code` - Delete an access code ## Prerequisites 1. A Seam account - Sign up at [https://console.seam.co/](https://console.seam.co/) 2. A Seam API key - Generate one from your Seam console 3. At least one smart lock connected to your Seam account ## Installation ### Using with Smithery 1. Install via Smithery: ```bash npx @smithery/cli install seam-mcp ``` 2. Configure your Seam API key when prompted ### Manual Installation (for development) 1. Clone this repository: ```bash git clone https://github.com/yourusername/seam-mcp.git cd seam-mcp ``` 2. Install dependencies: ```bash npm install ``` The build will run automatically after installation. ## Usage ### With Claude Desktop Add to your Claude Desktop configuration file: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` If installed via npm: ```json { "mcpServers": { "seam": { "command": "node", "args": ["/path/to/seam-mcp/.smithery/stdio/index.cjs"], "env": { "SEAM_API_KEY": "your-seam-api-key-here" } } } } ``` Or using npx (after publishing): ```json { "mcpServers": { "seam": { "command": "npx", "args": ["-y", "seam-mcp"], "env": { "SEAM_API_KEY": "your-seam-api-key-here" } } } } ``` ### With Smithery After installation via Smithery, configure your API key in the Smithery dashboard. The server will be automatically available to Claude and other MCP clients. ## Development Run the development server with live reload: ```bash npm run dev ``` Build for production: ```bash npm run build ``` Build for both stdio and HTTP transports: ```bash npm run build:all ``` ## Example Usage Once configured, you can ask Claude to: ### Lock Control - "Show me the status of all my locks" (comprehensive overview) - "List all my smart locks" - "Unlock the front door" - "What's the status of my garage lock?" - "Lock the back door" - "Which locks need new batteries?" ### Access Code Management - "Create an access code 1234 named 'Guest Code' on all my locks in Seattle" - "Create a temporary access code for my cleaner from January 1st to January 15th" - "List all access codes on my front door" - "Delete the access code named 'Old Guest Code'" - "Create access code 5678 named 'Airbnb Guest' that works from next Monday at 3pm to next Friday at 11am" ## Configuration The server requires a Seam API key. Get yours from the [Seam Console](https://console.seam.co/). When using with Smithery, the API key is securely stored and managed through the Smithery platform. ## Supported Lock Brands Seam supports 100+ smart lock brands including: - August - Yale - Schlage - Kwikset - Baldwin - Lockly - Tedee - And many more... Check the [Seam Device Catalog](https://www.seam.co/supported-devices) for the complete list. ## API Reference ### Lock Control Tools #### get_status() **NEW!** Get a comprehensive status dashboard of all your locks. Returns: - Lock states summary (how many locked/unlocked, percentage) - Connectivity status (online/offline locks) - Battery level analysis (low/medium battery warnings) - Error and warning detection - Quick visual summary with emojis Perfect for: "Show me the status of all my locks" or "Do I have any issues with my locks?" #### list_locks() Returns all locks in your Seam account with basic information including name, manufacturer, model, lock status, battery level, and online status. #### get_lock(device_id) Gets detailed information about a specific lock including capabilities, errors, warnings, and location. #### lock_door(device_id) Locks the specified door and returns the action attempt details. #### unlock_door(device_id) Unlocks the specified door and returns the action attempt details. #### get_lock_status(device_id) Gets the current lock/unlock status along with battery level and online status. ### Access Code Management Tools #### create_access_code(device_id, name, code?, starts_at?, ends_at?) Creates an access code on a single lock. The `code` parameter is optional (random code generated if not provided). Time limits are optional - omit them for permanent codes. **Example:** ```javascript { device_id: "abc123", name: "Guest Code", code: "1234", starts_at: "2025-01-01T16:00:00Z", ends_at: "2025-01-15T12:00:00Z" } ``` #### create_access_code_on_multiple_locks(device_ids, name, code?, starts_at?, ends_at?, location_filter?) Creates the same access code on multiple locks. Supports location-based filtering to target locks by location name. **Example with location filter:** ```javascript { device_ids: [], // Can be empty when using location_filter name: "Seattle Guest Code", code: "5678", location_filter: "Seattle" // Will find all locks with "Seattle" in their location or name } ``` #### list_access_codes(device_id?) Lists all access codes. Optionally filter by device_id to see codes for a specific lock. #### update_access_code(access_code_id, name?, code?, starts_at?, ends_at?) Updates an existing access code. All parameters except access_code_id are optional. #### delete_access_code(access_code_id) Permanently deletes an access code from the lock. ## License MIT ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## Support For issues related to: - This MCP server: Open an issue on GitHub - Seam API: Visit [Seam Docs](https://docs.seam.co/) or [Seam Support](https://www.seam.co/contact) - MCP protocol: Visit [MCP Documentation](https://modelcontextprotocol.io/) ## Links - [Seam Console](https://console.seam.co/) - [Seam API Documentation](https://docs.seam.co/) - [Seam Supported Devices](https://www.seam.co/supported-devices) - [Model Context Protocol](https://modelcontextprotocol.io/)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/keithah/seam-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server