GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
MCP server for AWS IoT Core: device registry, shadows, jobs, rules, messaging.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_PROFILE, AWS_REGIONค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด 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": "ใส่ค่าของคุณ",
"AWS_SECRET_ACCESS_KEY": "ใส่ค่าของคุณ",
"AWS_SESSION_TOKEN": "ใส่ค่าของคุณ",
"AWS_PROFILE": "ใส่ค่าของคุณ",
"AWS_REGION": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add aws-iot-core --env AWS_ACCESS_KEY_ID='ใส่ค่าของคุณ' --env AWS_SECRET_ACCESS_KEY='ใส่ค่าของคุณ' --env AWS_SESSION_TOKEN='ใส่ค่าของคุณ' --env AWS_PROFILE='ใส่ค่าของคุณ' --env AWS_REGION='ใส่ค่าของคุณ' -- uvx aws-iot-core-mcp-serverเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"aws-iot-core": {
"command": "uvx",
"args": [
"aws-iot-core-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "ใส่ค่าของคุณ",
"AWS_SECRET_ACCESS_KEY": "ใส่ค่าของคุณ",
"AWS_SESSION_TOKEN": "ใส่ค่าของคุณ",
"AWS_PROFILE": "ใส่ค่าของคุณ",
"AWS_REGION": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"aws-iot-core": {
"type": "stdio",
"command": "uvx",
"args": [
"aws-iot-core-mcp-server"
],
"env": {
"AWS_ACCESS_KEY_ID": "ใส่ค่าของคุณ",
"AWS_SECRET_ACCESS_KEY": "ใส่ค่าของคุณ",
"AWS_SESSION_TOKEN": "ใส่ค่าของคุณ",
"AWS_PROFILE": "ใส่ค่าของคุณ",
"AWS_REGION": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
AWS_ACCESS_KEY_ID envAWS_PROFILE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub nagarjunr ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN, AWS_REGION
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.0) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.
| 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. |
| 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. |
| 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. |
| Tool | Description |
|---|---|
publish_message(topic, payload, qos=0) | Publish an MQTT message to the device fleet via the IoT Data Plane. |
| 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. |
| 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. |
| 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. |
| Tool | Description |
|---|---|
get_endpoint(endpoint_type) | Look up this account's IoT Core data endpoint (default iot:Data-ATS). |
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.
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.
uv sync
export AWS_REGION=us-east-1
uv run awsiotcoremcpserver.py
See mcp.json for ready-to-use client configs (stdio and Docker).
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
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.