# Seam

```json
{
  "name": "Seam",
  "slug": "seam",
  "url": "https://composio.dev/toolkits/seam",
  "markdown_url": "https://composio.dev/toolkits/seam.md",
  "logo_url": "https://logos.composio.dev/api/seam",
  "categories": [
    "workflow automation"
  ],
  "is_composio_managed": false,
  "updated_at": "2026-10-04T15:07:59.738Z"
}
```

![Seam logo](https://logos.composio.dev/api/seam)

## Description

Securely connect your AI agents and chatbots (Claude, ChatGPT, Cursor, etc) with Seam MCP or direct API to list devices, unlock doors, create access codes, read sensor state, and adjust thermostats through natural language.

## Summary

Seam is a connected device API for smart locks, access systems, thermostats, sensors, and other workspace devices.
It gives developers one clean interface to manage building access and device state across many hardware brands.

## Categories

- workflow automation

## Toolkit Details

- Tools: 10

## Images

- Logo: https://logos.composio.dev/api/seam

## Authentication

- **Api Key**
  - Type: `api_key`
  - Description: Api Key authentication for Seam.
  - Setup:
    - Configure Api Key credentials for Seam.
    - Use the credentials when creating an auth config in Composio.

## Suggested Prompts

- Unlock front door for guest arrival
- Create temporary access code for cleaners
- Check thermostat and sensor status

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `SEAM_ADD_ACCESS_METHODS_TO_GRANT` | Add Access Methods to Grant | Request additional PIN, card, mobile-key, or cloud-key methods for an existing access grant. |
| `SEAM_CREATE_ACCESS_GRANT` | Create Access Grant | Grant an existing or new user identity access to spaces, devices, or access-control entrances, requesting PIN, card, mobile-key, or cloud-key methods. |
| `SEAM_DELETE_ACCESS_GRANT` | Delete Access Grant | Permanently revoke and delete an access grant by UUID, removing the access it manages. |
| `SEAM_GET_ACCESS_GRANT` | Get Access Grant | Get one access grant by its Seam UUID or unique workspace key. |
| `SEAM_LIST_ACCESS_GRANTS` | List Access Grants | List access grants in the workspace, optionally filtered by space, device, entrance, user identity, reservation, customer, key, or IDs; returns one cursor-controlled page. |
| `SEAM_LIST_ACTION_ATTEMPTS` | List Action Attempts | Inspect asynchronous Seam operation status, errors, and results in bulk by action-attempt IDs or by device, returning one cursor-controlled page. |
| `SEAM_LIST_CONNECTED_ACCOUNTS` | List Connected Accounts | List and search provider accounts connected to the workspace, optionally filtering by space, customer, user, or metadata; returns one cursor-controlled page. |
| `SEAM_LIST_DEVICES` | List Devices | List and search devices in the workspace, optionally filtering by account, space, IDs, type, manufacturer, customer, creation time, or metadata; returns one cursor-controlled page. |
| `SEAM_LIST_SPACES` | List Spaces | List and search spaces in the workspace by name, key, or customer, returning one cursor-controlled page of grantable locations. |
| `SEAM_UPDATE_ACCESS_GRANT` | Update Access Grant | Update an access grant's name or validity window by UUID or unique workspace key. Provide at least one of name, starts_at, or ends_at. |

## Supported Triggers

None listed.

## Installation and MCP Setup

### Path 1: SDK Installation

#### Path 1, Step 1: Install Composio

Install the Composio SDK, the OpenAI provider, and the OpenAI SDK
```python
pip install composio composio_openai openai
```

```typescript
npm install @composio/core @composio/openai openai
```

#### Path 1, Step 2: Create a Composio session

Initialize Composio with the OpenAI Responses provider and create a session scoped to Seam
```python
import json
from openai import OpenAI
from composio import Composio
from composio_openai import OpenAIResponsesProvider

composio = Composio(provider=OpenAIResponsesProvider())
client = OpenAI()

session = composio.create(user_id="your-user-id", toolkits=["seam"])
tools = session.tools()
```

```typescript
import OpenAI from "openai";
import { Composio } from "@composio/core";
import { OpenAIResponsesProvider } from "@composio/openai";

const composio = new Composio({ provider: new OpenAIResponsesProvider() });
const client = new OpenAI();

const session = await composio.create("your-user-id", { toolkits: ["seam"] });
const tools = await session.tools();
```

#### Path 1, Step 3: Run Seam tools with your agent

Send a request, execute the Seam tool calls through the session, and print the final answer
```python
response = client.responses.create(
    model="gpt-5.6-sol",
    tools=tools,
    input=[{"role": "user", "content": "List all smart locks in my Seam workspace"}],
)

while True:
    tool_calls = [o for o in response.output if o.type == "function_call"]
    if not tool_calls:
        break
    results = composio.provider.handle_tool_calls(response=response, session=session)
    response = client.responses.create(
        model="gpt-5.6-sol",
        tools=tools,
        previous_response_id=response.id,
        input=[
            {"type": "function_call_output", "call_id": call.call_id, "output": json.dumps(results[i])}
            for i, call in enumerate(tool_calls)
        ],
    )

print(response.output_text)
```

```typescript
let response = await client.responses.create({
  model: "gpt-5.6-sol",
  tools,
  input: [{ role: "user", content: "List all smart locks in my Seam workspace" }],
});

while (response.output.some((o) => o.type === "function_call")) {
  const outputs = await composio.provider.handleToolCalls(session, response.output);
  response = await client.responses.create({
    model: "gpt-5.6-sol",
    tools,
    previous_response_id: response.id,
    input: outputs,
  });
}

console.log(response.output_text);
```

### Path 2: MCP Server Setup

#### Path 2, Step 1: Install Composio

Install the Composio SDK and your agent framework
```python
pip install composio claude-agent-sdk
```

```typescript
npm install @composio/core ai @ai-sdk/mcp @ai-sdk/openai
```

#### Path 2, Step 2: Create a session with MCP enabled

Create a session scoped to Seam and read its MCP URL and headers
```python
from composio import Composio

composio = Composio()
session = composio.create(user_id="your-user-id", toolkits=["seam"], mcp=True)
```

```typescript
import { Composio } from "@composio/core";

const composio = new Composio();
const { mcp } = await composio.create("your-user-id", {
  toolkits: ["seam"],
  mcp: true,
});
```

#### Path 2, Step 3: Connect your agent to the MCP server

Pass the session's MCP URL and headers to your agent and run a Seam request
```python
import asyncio
from claude_agent_sdk import ClaudeSDKClient, ClaudeAgentOptions, AssistantMessage, TextBlock

options = ClaudeAgentOptions(
    mcp_servers={
        "composio": {
            "type": "http",
            "url": session.mcp.url,
            "headers": session.mcp.headers,
        }
    },
    system_prompt="You are a helpful assistant with access to Seam tools.",
    tools=[],
    allowed_tools=["mcp__composio__*"],
)

async def main():
    async with ClaudeSDKClient(options=options) as client:
        await client.query("List all smart locks in my Seam workspace")
        async for message in client.receive_response():
            if isinstance(message, AssistantMessage):
                for block in message.content:
                    if isinstance(block, TextBlock):
                        print(block.text)

asyncio.run(main())
```

```typescript
import { createMCPClient } from "@ai-sdk/mcp";
import { openai } from "@ai-sdk/openai";
import { generateText, stepCountIs } from "ai";

const client = await createMCPClient({
  transport: { type: "http", url: mcp.url, headers: mcp.headers },
});

const { text } = await generateText({
  model: openai("gpt-5.6-sol"),
  tools: await client.tools(),
  prompt: "List all smart locks in my Seam workspace",
  stopWhen: stepCountIs(10),
});

console.log(text);
await client.close();
```

## Why Use Composio?

### 1. AI Native Seam Integration

- Supports both Seam MCP and direct API based integrations
- Structured, LLM-friendly schemas for reliable smart lock, access code, thermostat, and sensor actions
- Rich coverage for reading, writing, and querying connected devices in your Seam workspace

### 2. Managed Auth

- Seam uses API key authentication, so you bring your own Seam API key
- Composio keeps credentials out of agent prompts, logs, and application code
- Central place to manage, scope, and revoke Seam access across users and environments

### 3. Agent Optimized Design

- Tools are tuned for real agent workflows like listing locks, checking device status, and creating temporary access codes
- Clear execution logs so you can see which Seam action ran, when it ran, and on whose behalf

### 4. Enterprise Grade Security

- Fine-grained RBAC so you control which agents and users can access Seam tools
- Scoped, least privilege access to locks, access systems, thermostats, and sensors
- Full audit trail of agent actions to support review, operations, and compliance

## Use Seam with any AI Agent Framework

Choose a framework you want to connect Seam with:

None listed.

## Related Toolkits

- [0CodeKit](https://composio.dev/toolkits/0codekit) - 0CodeKit is a utility API platform for AI, document, image, and data workflows. Use it to convert, validate, generate, store, and automate data without custom backend code.
- [Airtop](https://composio.dev/toolkits/airtop) - Airtop is a cloud browser platform for AI-powered web automation. Use it to navigate sites, extract data, and run reusable browser workflows.
- [Apify MCP](https://composio.dev/toolkits/apify_mcp) - Apify MCP is the official MCP server for Apify's web scraping and browser automation platform. Use it to run actors, collect structured web data, and automate crawling workflows.
- [Apilio](https://composio.dev/toolkits/apilio) - Apilio is a home automation platform that lets you connect and control smart devices from different brands. It helps you build flexible automations with complex conditions, schedules, and integrations.
- [Basin](https://composio.dev/toolkits/basin) - Basin is a no-code form backend for quickly setting up reliable contact forms. It lets you collect and manage form submissions without writing any server-side code.
- [Bika.ai](https://composio.dev/toolkits/bika) - Bika.ai is an AI automation database platform for managing spaces, teams, records, automations, and outgoing webhooks. It helps teams organize structured data and automate database-driven workflows in one place.
- [Botster](https://composio.dev/toolkits/botster) - Botster is a web automation service for running configurable data collection bots. Use it to collect structured web data without building and maintaining scrapers yourself.
- [Bouncer](https://composio.dev/toolkits/bouncer) - Bouncer is an email validation platform that verifies the authenticity of email addresses in real-time and batch. It helps boost deliverability and reduce bounce rates for your communications.
- [BrowserAct](https://composio.dev/toolkits/browseract) - BrowserAct is a hosted browser-automation service for running web workflows. Use it to execute repeatable browser tasks with templates, proxies, and APIs.
- [Celigo](https://composio.dev/toolkits/celigo) - Celigo is an integration platform as a service for connecting apps, data, and business workflows. It helps teams automate cross-system processes without building every integration from scratch.
- [CheckFlow](https://composio.dev/toolkits/checkflow) - CheckFlow is a workflow and checklist platform for repeatable processes, tasks, templates, teams, data sets, and automation. Use it to standardize operations, track process execution, and keep teams aligned.
- [Conveyor](https://composio.dev/toolkits/conveyor) - Conveyor is a platform that automates security reviews with a Trust Center and AI-driven questionnaire automation. It streamlines compliance and vendor security processes for faster, hassle-free reviews.
- [CrewAI](https://composio.dev/toolkits/crew_ai) - CrewAI is a platform for running deployed automations and managing AMP control-plane resources. Use it to automate workflows and centrally control SaaS automation resources.
- [Cronfree Time Scheduler](https://composio.dev/toolkits/cronfree_time_scheduler) - Cronfree Time Scheduler is an API-based scheduler for recurring webhook calls. Use it to create and remove timezone-aware schedules without running cron.
- [Crowdin](https://composio.dev/toolkits/crowdin) - Crowdin is a localization management platform that streamlines translation workflows and collaboration. It helps teams centralize multilingual content, boost productivity, and automate translation processes.
- [Databox](https://composio.dev/toolkits/databox) - Databox is a business analytics platform that connects your data from any tool and device. It helps you track KPIs, build dashboards, and discover actionable insights.
- [Detrack](https://composio.dev/toolkits/detrack) - Detrack is a delivery management platform for real-time tracking and proof of delivery. It helps businesses automate notifications and keep customers updated every step of the way.
- [Dify](https://composio.dev/toolkits/dify) - Dify is a platform for running and managing published workflow apps via a Service API. Use it to execute workflows and inspect configuration and run history quickly.
- [Digital Humani](https://composio.dev/toolkits/digital_humani) - Digital Humani is a reforestation API for browsing planting projects, submitting tree requests, and tracking planted trees. It helps teams connect climate action directly to products, campaigns, and customer experiences.
- [Dnsfilter](https://composio.dev/toolkits/dnsfilter) - Dnsfilter is a cloud-based DNS security and content filtering solution. It helps organizations block online threats and manage safe internet access with ease.

## Frequently Asked Questions

### Do I need my own developer credentials to use Seam with Composio?

Yes, Seam requires you to configure your own API key. Once set up, Composio handles secure credential storage and API request handling for you.

### Can I use multiple toolkits together?

Yes! Composio's Tool Router enables agents to use multiple toolkits. [Learn more](https://docs.composio.dev/tool-router/overview).

### Is Composio secure?

Composio is SOC 2 and ISO 27001 compliant with all data encrypted in transit and at rest. [Learn more](https://trust.composio.dev).

### What if the API changes?

Composio maintains and updates all toolkit integrations automatically, so your agents always work with the latest API versions.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
