Skip to main content
Glama
amanasmuei

NodeMCU MCP Service

by amanasmuei

NodeMCU MCP(모델 컨텍스트 프로토콜) 서비스

GitHub 라이센스 npm 버전 대장간 배지

NodeMCU 장치를 관리하기 위한 모델 컨텍스트 프로토콜(MCP) 서비스입니다. 이 서비스는 표준 RESTful API/WebSocket 인터페이스를 제공하고 Claude Desktop과 같은 AI 도구와의 통합을 위해 모델 컨텍스트 프로토콜을 구현합니다.

개요

NodeMCU MCP는 다음과 같은 주요 기능을 갖춘 ESP8266/NodeMCU IoT 장치를 위한 관리 솔루션을 제공합니다.

  • 장치 상태 및 원격 측정 모니터링

  • 원격으로 장치에 명령 보내기

  • 장치 구성 업데이트

  • MCP 프로토콜을 통한 AI 어시스턴트와의 통합

Related MCP server: MCP Personal Assistant Agent

시각화

특징

  • 🔌 장치 관리 : NodeMCU 장치를 등록, 모니터링 및 제어합니다.

  • 📊 실시간 통신 : 실시간 업데이트를 위한 WebSocket 인터페이스

  • ⚙️ 구성 관리 : 원격으로 장치 설정 업데이트

  • 🔄 명령 실행 : 재시작, 업데이트, 상태 명령을 원격으로 전송합니다.

  • 📡 원격 측정 수집 : 센서 데이터 및 장치 메트릭 수집

  • 🔐 인증 : JWT 인증을 통한 안전한 API 접근

  • 🧠 AI 통합 : Claude Desktop 및 기타 MCP 호환 AI 도구와 함께 작동

빠른 시작

필수 조건

  • Node.js 16.x 이상

  • npm 또는 yarn

  • NodeMCU 클라이언트의 경우: ESP8266을 지원하는 Arduino IDE

설치

Smithery를 통해 설치

Smithery 를 통해 Claude Desktop용 NodeMCU Manager를 자동으로 설치하려면:

지엑스피1

npm에서 (게시 후)

# Global installation (recommended for MCP integration)
npm install -g nodemcu-mcp

# Local installation
npm install nodemcu-mcp

출처에서

# Clone the repository
git clone https://github.com/amanasmuei/nodemcu-mcp.git
cd nodemcu-mcp

# Install dependencies
npm install

# Optional: Install globally for MCP integration
npm install -g .

구성

  1. 다음 예를 기반으로 .env 파일을 만듭니다.

    cp .env.example .env
  2. .env 파일을 설정으로 업데이트하세요.

    # Server Configuration
    PORT=3000
    HOST=localhost
    
    # Security
    JWT_SECRET=your_strong_random_secret_key
    
    # Log Level (error, warn, info, debug)
    LOG_LEVEL=info

용법

API 서버로 실행

자동 재시작 기능이 있는 개발 모드:

npm run dev

생산 모드:

npm start

MCP 서버로 실행

Claude Desktop 또는 다른 MCP 클라이언트와 통합하려면:

npm run mcp

전역적으로 설치된 경우:

nodemcu-mcp --mode=mcp

명령줄 옵션

Usage: nodemcu-mcp [options]

Options:
  -m, --mode   Run mode (mcp, api, both)  [string] [default: "both"]
  -p, --port   Port for API server        [number] [default: 3000]
  -h, --help   Show help                  [boolean]
  --version    Show version number        [boolean]

MCP 통합

이 프로젝트는 이제 Claude for Desktop 및 기타 MCP 클라이언트와의 통합을 제공하기 위해 공식 Model Context Protocol(MCP) TypeScript SDK를 사용합니다.

MCP 도구

다음 도구는 MCP 인터페이스를 통해 사용할 수 있습니다.

  • list-devices : 등록된 모든 NodeMCU 장치와 해당 상태를 나열합니다.

  • get-device : 특정 NodeMCU 장치에 대한 자세한 정보를 가져옵니다.

  • send-command : NodeMCU 장치에 명령을 보냅니다.

  • update-config : NodeMCU 장치의 구성을 업데이트합니다.

Claude와 함께 데스크톱 사용

Claude for Desktop과 함께 이 서버를 사용하려면:

  1. https://claude.ai/desktop 에서 Claude for Desktop을 설치하세요.

  2. ~/Library/Application Support/Claude/claude_desktop_config.json 편집하여 데스크톱용 Claude를 구성합니다.

{
  "mcpServers": {
    "nodemcu": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/YOUR/PROJECT/mcp_server_sdk.js"
      ]
    }
  }
}
  1. 데스크톱용 Claude를 다시 시작하세요

  2. 이제 Claude for Desktop 인터페이스에서 NodeMCU 도구를 볼 수 있습니다.

MCP 서버 독립 실행형 실행

MCP 서버를 직접 실행하려면:

npm run mcp

또는 CLI를 사용합니다.

./bin/cli.js --mode=mcp

API 문서

입증

  • POST /api/auth/login - 로그인하고 JWT 토큰을 받으세요

    {
      "username": "admin",
      "password": "admin123"
    }

    응답:

    {
      "message": "Login successful",
      "token": "your.jwt.token",
      "user": {
        "id": 1,
        "username": "admin",
        "role": "admin"
      }
    }
  • POST /api/auth/validate - JWT 토큰 검증

    {
      "token": "your.jwt.token"
    }

장치 API

모든 장치 엔드포인트에는 JWT 토큰을 통한 인증이 필요합니다.

Authorization: Bearer your.jwt.token

장치 목록

GET /api/devices

응답:

{
  "count": 1,
  "devices": [
    {
      "id": "nodemcu-001",
      "name": "Living Room Sensor",
      "type": "ESP8266",
      "status": "online",
      "ip": "192.168.1.100",
      "firmware": "1.0.0",
      "lastSeen": "2023-05-15T14:30:45.123Z"
    }
  ]
}

기기 세부 정보 가져오기

GET /api/devices/:id

응답:

{
  "id": "nodemcu-001",
  "name": "Living Room Sensor",
  "type": "ESP8266",
  "status": "online",
  "ip": "192.168.1.100",
  "firmware": "1.0.0",
  "lastSeen": "2023-05-15T14:30:45.123Z",
  "config": {
    "reportInterval": 30,
    "debugMode": false,
    "ledEnabled": true
  },
  "lastTelemetry": {
    "temperature": 23.5,
    "humidity": 48.2,
    "uptime": 3600,
    "heap": 35280,
    "rssi": -68
  }
}

장치에 명령 보내기

POST /api/devices/:id/command

요구:

{
  "command": "restart",
  "params": {}
}

응답:

{
  "message": "Command sent to device",
  "command": "restart",
  "params": {},
  "response": {
    "success": true,
    "message": "Device restarting"
  }
}

웹소켓 프로토콜

WebSocket 서버는 루트 경로 ws://your-server:3000/ 에서 사용할 수 있습니다.

WebSocket 프로토콜 메시지에 대한 자세한 내용은 코드나 예제 디렉토리를 참조하세요.

NodeMCU 클라이언트 설정

완전한 클라이언트 구현을 보려면 examples 디렉토리의 Arduino 스케치를 참조하세요.

주요 단계

  1. Arduino IDE에 필요한 라이브러리를 설치하세요:

    • ESP8266WiFi

    • 웹소켓클라이언트

    • 아두이노Json

  2. WiFi 및 서버 설정으로 스케치를 구성하세요.

    // WiFi credentials
    const char* ssid = "YOUR_WIFI_SSID";
    const char* password = "YOUR_WIFI_PASSWORD";
    
    // MCP Server settings
    const char* mcpHost = "your-server-ip";
    const int mcpPort = 3000;
  3. NodeMCU 장치에 스케치를 업로드하세요

개발

프로젝트 구조

nodemcu-mcp/
├── assets/             # Logo and other static assets
├── bin/                # CLI scripts
├── examples/           # Example client code
├── middleware/         # Express middleware
├── routes/             # API routes
├── services/           # Business logic
├── .env.example        # Environment variables example
├── index.js            # API server entry point
├── mcp_server.js       # MCP protocol implementation
├── mcp-manifest.json   # MCP manifest
└── package.json        # Project configuration

기여하다

기여를 환영합니다! 풀 리퀘스트를 제출해 주세요.

  1. 저장소를 포크하세요

  2. 기능 브랜치를 생성합니다( git checkout -b feature/amazing-feature )

  3. 변경 사항을 커밋하세요( git commit -m 'Add some amazing feature' )

  4. 브랜치에 푸시( git push origin feature/amazing-feature )

  5. 풀 리퀘스트 열기

특허

이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.

MIT 라이선스는 다음 작업을 허용하는 허용적 라이선스입니다.

  • 소프트웨어를 상업적으로 사용하세요

  • 소프트웨어 수정

  • 소프트웨어 배포

  • 소프트웨어를 개인적으로 사용하고 수정합니다.

유일한 요구 사항은 소프트웨어에 라이센스와 저작권 고지가 포함되어야 한다는 것입니다.

감사의 말

Available Tools

4 tools
get-deviceD
ParametersJSON Schema
NameRequiredDescriptionDefault
deviceIdYesThe ID of the device to get information about

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list-devicesD
ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send-commandD
ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe command to send (restart, update, status, etc.)
deviceIdYesThe ID of the device to send the command to
paramsNoOptional parameters for the command

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update-configD
ParametersJSON Schema
NameRequiredDescriptionDefault
configYesConfiguration parameters to update
deviceIdYesThe ID of the device to update configuration for

TDQS

D1/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Tool has no description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness1/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Tool has no description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Tool has no description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose1/5

Does the description clearly state what the tool does and how it differs from similar tools?

Tool has no description.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines1/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Tool has no description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv1.0.0
    • First observedget-device
    • First observedlist-devices
    • First observedsend-command
    • First observedupdate-config

TDQS

C2.1/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: get-device retrieves a single device, list-devices lists multiple devices, send-command sends commands to devices, and update-config updates device configurations. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb-noun pattern with hyphen separation (e.g., get-device, list-devices, send-command, update-config). The naming is uniform and predictable across all tools.

Tool Count5/5

With 4 tools, this server is well-scoped for managing NodeMCU devices. Each tool serves a distinct and essential function, and the count is appropriate for the apparent scope of device management.

Completeness4/5

The tools cover core CRUD-like operations for device management: listing, retrieving, commanding, and configuring. A minor gap might be the absence of a delete-device or create-device tool, but the existing set supports most common workflows.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/amanasmuei/mcp-server-nodemcu'

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