原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

AWS IoT Core

作者:nagarjunr版本 0.1.0i★ –i在你的电脑上运行
注册名称io.github.nagarjunr/aws-iot-core

安装

概览

作者提供的说明(英文原文)

MCP server for AWS IoT Core: device registry, shadows, jobs, rules, messaging.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 开发者工具
  • 你需要填写:AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 需要你自己填写: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_PROFILE, AWS_REGION

标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。

你需要

  • PyPI已安装 Python 的 uv(用于 uvx 命令)

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 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_PROFILE": "your-value",
        "AWS_REGION": "your-value"
      }
    }
  }
}

在终端中运行这条命令

claude mcp add 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_PROFILE=your-value --env AWS_REGION=your-value -- uvx aws-iot-core-mcp-server

运行前请先填写空着的值。

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.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_PROFILE": "your-value",
        "AWS_REGION": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/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_PROFILE": "your-value",
        "AWS_REGION": "your-value"
      }
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

需要你填写的值

  • AWS_ACCESS_KEY_ID env
    AWS access key ID
  • AWS_SECRET_ACCESS_KEY 机密 env
    AWS secret access key
  • AWS_SESSION_TOKEN 机密 env
    AWS session token, for temporary credentials
  • AWS_PROFILE env
    Named profile from ~/.aws/credentials, as an alternative to explicit keys
  • AWS_REGION 必填 env
    AWS region -- required, AWS IoT Core is regional

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 nagarjunr 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“开发者工具”中的其他服务器比较i

  • 星标数多于此分类中其他 1393 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 1393 个服务器的 35% 更新
  • 基础检查结果等于或优于此分类中其他 1393 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

AWS IoT Core 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

你需要填写:AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.1.0)于3个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。

有什么可以替代它?

同一分类中有:GitHub, Desktop Commander, Cloudflare MCP

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

GitHub

作者:github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

电脑或云端★ 34,245MIT3天前更新
安装

Desktop Commander

作者:wonderwhy-er

MCP server for terminal commands, file operations, and process management

在你的电脑上运行★ 10,225MIT15天前更新
安装

Cloudflare MCP

作者:cloudflare

Cloudflare MCP servers

在云端运行★ 4,446Apache-2.014个月前更新
安装

作者的 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.

Built with FastMCP and boto3.

Tools

Things (device registry)
ToolDescription
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
ToolDescription
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)
ToolDescription
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
ToolDescription
publish_message(topic, payload, qos=0)Publish an MQTT message to the device fleet via the IoT Data Plane.
Jobs (fleet management)
ToolDescription
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)
ToolDescription
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_policiesManage 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
ToolDescription
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
ToolDescription
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 varDescription
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY / AWS_SESSION_TOKENExplicit credentials.
AWS_PROFILENamed profile from ~/.aws/credentials.
AWS_REGION / AWS_DEFAULT_REGIONRequired — AWS IoT Core is regional.
AWS_ENDPOINT_URLOverride 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.

问 PopNx