AWS IoT Core
What it does
MCP server for AWS IoT Core: device registry, shadows, jobs, rules, messaging.
- Connects パソコンで動く
- Account or key Needs AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN · 1 setting to fill in (AWS_REGION)
- Category 開発者ツール
インストール
使っているAIアプリを選んで、設定をコピーしてください。
チェック 3/3 合格 · あなたのパソコンで動きます · ✓ コマンド確認済み 2026年11月14日
まず:どの AI を使っていますか?
使っているアプリを選ぶと、下に手順が表示されます。
Claude につなげますが、先に準備が必要です
AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
AWS IoT Core に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
設定を 1 項目入力
これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。
AWS_REGIONAWS region -- required, AWS IoT Core is regional
説明は英語の原文のままです。
パソコン版 Claude アプリの設定ファイルを開く
SettingsDeveloperEdit Config
この設定を貼り付けて保存
{ "mcpServers": { "aws-iot-core": { "command": "uvx", "args": [ "aws-iot-core-mcp-server" ], "env": { "AWS_ACCESS_KEY_ID": "your-value", "AWS_SECRET_ACCESS_KEY": "your-value", "AWS_SESSION_TOKEN": "your-value", "AWS_REGION": "your-value" } } } }キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Claude を終了してもう一度開く
試してみる
AWS IoT Core を使って、私に何ができるか教えて、1 つやってみせて✓ Claude が AWS IoT Core を使っていると言うか、回答に AWS IoT Core のツール名が出れば接続成功です
追加の設定 1 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
AWS_PROFILENamed profile from ~/.aws/credentials, as an alternative to explicit keys
説明は英語の原文のままです。
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
ChatGPT はまだ AWS IoT Core につなげません
AWS IoT Core はパソコンに入れて使うものですが、ChatGPT は Web 上で動くサーバーにしかつなげません
代わりにできること
A · AWS IoT Core につなげるアプリを使う
- AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ) · パソコン版 Claude アプリ(Windows または Mac)のみ。Web やスマホでは使えません
- AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
- AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
- AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
B · 開発者ツール の中で ChatGPT につなげる別のサーバー
同じカテゴリでよく使われているものから、キーなしでアドレスだけでつなげるものを選びました
- Sentry✓ ChatGPT
- Compiler Explorer✓ ChatGPT
- GitDiagram✓ ChatGPT
Claude Code につなげますが、先に準備が必要です
AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
AWS IoT Core に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
設定を 1 項目入力
これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。
AWS_REGIONAWS region -- required, AWS IoT Core is regional
説明は英語の原文のままです。
ターミナルを開く
Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く
このコマンドを貼り付けて Enter
claude mcp add --scope user aws-iot-core --env AWS_ACCESS_KEY_ID=your-value --env AWS_SECRET_ACCESS_KEY=your-value --env AWS_SESSION_TOKEN=your-value --env AWS_REGION=your-value -- uvx aws-iot-core-mcp-serverEnter の前に「your-value」を自分のキーに書き換えてください
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Claude Code で /mcp と入力
AWS IoT Core が一覧にあり、接続済みと表示されれば OK です
試してみる
AWS IoT Core を使って、私に何ができるか教えて、1 つやってみせて✓ Claude Code が AWS IoT Core を使っていると言うか、回答に AWS IoT Core のツール名が出れば接続成功です
追加の設定 1 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
AWS_PROFILENamed profile from ~/.aws/credentials, as an alternative to explicit keys
説明は英語の原文のままです。
メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Cursor につなげますが、先に準備が必要です
AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
AWS IoT Core に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
設定を 1 項目入力
これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。
AWS_REGIONAWS region -- required, AWS IoT Core is regional
説明は英語の原文のままです。
キーを入力
AWS IoT Core の設定で AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
Cursor の AI チャットを Agent モードで開く
試してみる
AWS IoT Core を使って、私に何ができるか教えて、1 つやってみせて✓ Cursor が AWS IoT Core を使っていると言うか、回答に AWS IoT Core のツール名が出れば接続成功です
追加の設定 1 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
AWS_PROFILENamed profile from ~/.aws/credentials, as an alternative to explicit keys
説明は英語の原文のままです。
メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
VS Code につなげますが、先に準備が必要です
AWS IoT Core のキーが必要です(提供元のサイトで作成) · 設定を 1 項目入力 (AWS_REGION) · 先にパソコンへ Python (uv) を入れてください(1 回だけ)
AWS IoT Core に登録してキーを作る
提供元のサイトで登録し、次の手順で使う API キーを作ります。料金や無料プランは提供元のサイトで確認してください。
キーの取り方は下の提供元 README にあります
設定を 1 項目入力
これはプログラムの設定でキーではありません。登録は不要で、作者の説明どおりに入力します。
AWS_REGIONAWS region -- required, AWS IoT Core is regional
説明は英語の原文のままです。
キーを入力
AWS IoT Core の設定で AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION が空です。自分のキーを入れて保存します
キーはアプリの入力欄にだけ貼り付け、チャットに貼ったり人に送ったりしないでください
VS Code の AI チャットを Agent モードで開く
試してみる
AWS IoT Core を使って、私に何ができるか教えて、1 つやってみせて✓ VS Code が AWS IoT Core を使っていると言うか、回答に AWS IoT Core のツール名が出れば接続成功です
追加の設定 1 項目(入力しなくても使えます)
上のコマンドはこれらがなくても動きます。変えたいときだけ作者の説明に沿って追加してください。
AWS_PROFILENamed profile from ~/.aws/credentials, as an alternative to explicit keys
説明は英語の原文のままです。
メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります
Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください
JSON 設定は下の「開発者向け」にあります
開発者向け:ターミナルのコマンドと JSON 設定
パソコンにインストール
Claude Code
claude mcp add --scope user aws-iot-core --env AWS_ACCESS_KEY_ID=your-value --env AWS_SECRET_ACCESS_KEY=your-value --env AWS_SESSION_TOKEN=your-value --env AWS_REGION=your-value -- uvx aws-iot-core-mcp-serverClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"aws-iot-core": {
"command": "uvx",
"args": [
"aws-iot-core-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "your-value",
"AWS_SECRET_ACCESS_KEY": "your-value",
"AWS_SESSION_TOKEN": "your-value",
"AWS_REGION": "your-value"
}
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"aws-iot-core": {
"command": "uvx",
"args": [
"aws-iot-core-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "your-value",
"AWS_SECRET_ACCESS_KEY": "your-value",
"AWS_SESSION_TOKEN": "your-value",
"AWS_REGION": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"aws-iot-core": {
"type": "stdio",
"command": "uvx",
"args": [
"aws-iot-core-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "your-value",
"AWS_SECRET_ACCESS_KEY": "your-value",
"AWS_SESSION_TOKEN": "your-value",
"AWS_REGION": "your-value"
}
}
}
}自分で入力する値
AWS_ACCESS_KEY_ID秘密 必須 envAWS access key IDAWS_SECRET_ACCESS_KEY秘密 必須 envAWS secret access keyAWS_SESSION_TOKEN秘密 必須 envAWS session token, for temporary credentialsAWS_PROFILEenvNamed profile from ~/.aws/credentials, as an alternative to explicit keysAWS_REGION必須 envAWS region -- required, AWS IoT Core is regional
説明は英語の原文のままです。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ひと目でわかる
使えるアプリ
このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。
パソコン上で動かせるアプリ
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
できること
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
基本チェックi
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月14日にチェック
- ✓ 合格
作者とリポジトリが一致
レジストリ名は、リポジトリを所有するGitHubアカウント nagarjunr で確認済みです
- ✓ 合格
今もメンテナンスされている
コードの最終更新:14 日前
- ✓ 合格
ライセンスがある
MITを使用
- – 対象外
エンドポイントが応答する
これはパソコンで動くため、インターネット上のエンドポイントはありません
- – 対象外
OAuthでサインイン
パソコンで動き、代わりにローカルの設定を使います
- … 未チェック
ツールの説明に隠れた指示がない
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
話し合い
質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。
ユーザーレビュー
まだレビューはありません
開発者ツールのほかのサーバーとの比較i
- このカテゴリのほかの5872件のうち0%よりスターが多い
- このカテゴリのほかの5872件のうち23%より最近レジストリに公開
- 基本チェックの結果が、このカテゴリのほかの5872件のうち100%と同じかそれ以上
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
よくある質問
AWS IoT Coreは安全ですか?
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
どんなキーやコードが必要ですか?
入力が必要なもの:AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN
パソコンで動きますか、それともクラウドですか?
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
今もメンテナンスされていますか?
GitHubリポジトリの最終更新は14 日前、最新バージョン(0.1.0)がレジストリに届いたのは4 か月前です。
どのアプリで使えますか?
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリのほかの候補
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
Serena MCP: the IDE for your agent
A powerful toolkit for coding, providing semantic retrieval and editing capabilities.
作者のREADME
READMEを開く
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
AWS IoT Core MCP Server
A Model Context Protocol (MCP) server for AWS IoT Core — device registry, device shadows, jobs (fleet management), the rules engine, and messaging.
Scoped deliberately to IoT Core itself: no Greengrass (separate edge-deployment API), no IoT SiteWise (already has an official awslabs MCP server), no Device Defender/Events/TwinMaker — each of those is its own AWS service with its own API and would be its own connector.
Tools
Things (device registry)
| Tool | Description |
|---|---|
list_things(thing_type_name, attribute_name, attribute_value, thing_group_name, max_results) | List things, optionally filtered. |
search_things(query_string, index_name, max_results) | Fleet-indexing search, e.g. attributes.location:"lab-1". Requires indexing to be enabled. |
get_thing(thing_name) | Fetch a thing's attributes and type. |
create_thing(thing_name, thing_type_name, attributes, billing_group_name, overwrite=False) | Register a new thing. |
update_thing(thing_name, attributes, thing_type_name, remove_thing_type, attributes_merge=True) | Update a thing's attributes/type. |
delete_thing(thing_name, confirm=False) | Delete a thing. Irreversible. |
Thing Types & Thing Groups
| Tool | Description |
|---|---|
list_thing_types(thing_type_name) / get_thing_type(thing_type_name) | List/read thing types. |
create_thing_type(thing_type_name, description, searchable_attributes) | Create a thing type. Immutable once created (AWS limitation) — only deprecation is supported after. |
deprecate_thing_type(thing_type_name, undo=False) | Deprecate (or un-deprecate) a thing type. |
list_thing_groups(parent_group, name_prefix_filter) / get_thing_group(thing_group_name) | List/read thing groups. |
create_thing_group(thing_group_name, parent_group_name, attributes, overwrite=False) | Create a thing group. |
delete_thing_group(thing_group_name, confirm=False) | Delete a thing group. Irreversible. |
modify_thing_group_membership(thing_name, thing_group_name, action) | action="add" or "remove" a thing from a group. |
list_things_in_thing_group(thing_group_name) | List members of a group. |
Device Shadows (data plane)
| Tool | Description |
|---|---|
get_thing_shadow(thing_name, shadow_name) | Read a thing's shadow document (desired/reported/delta). Omit shadow_name for the classic (unnamed) shadow. |
update_thing_shadow(thing_name, desired, reported, shadow_name) | Merge-update desired and/or reported state. |
delete_thing_shadow(thing_name, shadow_name, confirm=False) | Delete a shadow document. |
list_named_shadows_for_thing(thing_name) | List named (non-classic) shadows for a thing. |
Messaging
| Tool | Description |
|---|---|
publish_message(topic, payload, qos=0) | Publish an MQTT message to the device fleet via the IoT Data Plane. |
Jobs (fleet management)
| Tool | Description |
|---|---|
list_jobs(status, thing_group_name, max_results) / get_job(job_id) | List/read jobs. |
create_job(job_id, thing_arns, document, description, target_selection="SNAPSHOT") | Create a fleet job (e.g. an OTA update or remote command). |
cancel_job(job_id, confirm=False, comment, force=False) | Cancel a job. |
delete_job(job_id, confirm=False, force=False) | Delete a job. Irreversible. |
list_job_executions_for_job(job_id, status) / list_job_executions_for_thing(thing_name, status) | Track per-device execution status. |
Certificates & Policies (device auth)
| Tool | Description |
|---|---|
create_keys_and_certificate(set_as_active=True) | Generate a new key pair + certificate. The private key is returned only once — capture it immediately. |
get_certificate(certificate_id) / list_certificates(page_size) | Read certificate metadata. |
set_certificate_status(certificate_id, status) | ACTIVE, INACTIVE, or REVOKED. |
delete_certificate(certificate_id, confirm=False, force_delete=False) | Delete a certificate. Irreversible. |
create_policy(policy_name, policy_document, overwrite=False) / get_policy / list_policies | Manage IAM-style IoT policies (JSON documents). |
delete_policy(policy_name, confirm=False) | Delete a policy. Irreversible. |
modify_policy_attachment(policy_name, target, action) | Attach/detach a policy to/from a certificate ARN. |
modify_thing_principal(thing_name, principal, action) | Attach/detach a certificate (principal) to/from a thing. |
list_thing_principals(thing_name) / list_principal_things(principal) | Look up thing↔certificate associations either direction. |
Rules Engine
| Tool | Description |
|---|---|
list_topic_rules(topic) / get_topic_rule(rule_name) | List/read SQL-based message routing rules. |
put_topic_rule(rule_name, sql, actions, description, sql_version, overwrite=False) | Create or replace a rule. actions is a list of raw AWS action objects (e.g. {"lambda": {"functionArn": "..."}}). |
set_topic_rule_enabled(rule_name, enabled) | Enable/disable a rule without deleting it. |
delete_topic_rule(rule_name, confirm=False) | Delete a rule. Irreversible. |
Misc
| Tool | Description |
|---|---|
get_endpoint(endpoint_type) | Look up this account's IoT Core data endpoint (default iot:Data-ATS). |
Safety conventions
Same as the rest of this repo: create_*/put_* default to overwrite=False (best-effort — the AWS IoT API itself has no conditional-write header for most of these operations, so this is a describe-then-create check, not fully race-free like Ditto's If-None-Match). Every delete_*/cancel_* requires confirm=True.
Configuration
Standard AWS SDK credential resolution — no custom env vars for auth. Set whichever of these your setup uses:
| Env var | Description |
|---|---|
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKEN | Explicit credentials. |
AWS_PROFILE | Named profile from ~/.aws/credentials. |
AWS_REGION / AWS_DEFAULT_REGION | Required — AWS IoT Core is regional. |
AWS_ENDPOINT_URL | Override the API endpoint (e.g. for LocalStack). boto3 reads this natively. |
Or an IAM role, if running somewhere with one attached (EC2/ECS/Lambda). See boto3's credential docs.
Running locally
uv sync
export AWS_REGION=us-east-1
plus whichever credential env vars apply to you
uv run awsiotcoremcpserver.py
See mcp.json for ready-to-use client configs (stdio and Docker).
Testing
This repo's design principles call for testing against a real instance rather than mocks. AWS IoT Core has no official local emulator, and LocalStack's IoT support requires a paid plan (no free tier) — so this server is the one exception in this repo: tests run against moto, a mature, free, open-source AWS API emulator (not hand-rolled mocks — it implements real request/response behavior for the actual boto3 calls this server makes).
uv run pytest -v
License notes
No bundled deployment artifacts here (unlike the other servers) since there's no local broker/service to run — AWS IoT Core only exists as an AWS-hosted service.