Rename package to mcesptool

- Rename mcp-esptool-server -> mcesptool
- Update all imports and references
- Single entry point: mcesptool command
- New home: git.supported.systems/MCP/mcesptool
This commit is contained in:
Ryan Malloy 2026-02-06 21:08:53 -07:00
parent 57953fc60f
commit d5dc9c99c0
20 changed files with 41 additions and 43 deletions

View File

@ -1,6 +1,6 @@
# MCP ESPTool Server # mcesptool
FastMCP server providing AI-powered ESP32/ESP8266 development workflows through natural language interfaces. FastMCP server for ESP32/ESP8266 development workflows via Model Context Protocol.
## Features ## Features
@ -18,17 +18,17 @@ FastMCP server providing AI-powered ESP32/ESP8266 development workflows through
```bash ```bash
# Install with uvx (recommended) # Install with uvx (recommended)
uvx mcp-esptool-server uvx mcesptool
# Or install in project # Or install in project
uv add mcp-esptool-server uv add mcesptool
``` ```
### Claude Code Integration ### Claude Code Integration
```bash ```bash
# Add to Claude Code # Add to Claude Code
claude mcp add mcp-esptool-server "uvx mcp-esptool-server" claude mcp add mcesptool "uvx mcesptool"
``` ```
### Development Setup ### Development Setup

View File

@ -3,14 +3,14 @@ requires = ["hatchling"]
build-backend = "hatchling.build" build-backend = "hatchling.build"
[project] [project]
name = "mcp-esptool-server" name = "mcesptool"
version = "2025.09.28.1" version = "2025.09.28.1"
description = "FastMCP server for ESP32/ESP8266 development with esptool integration" description = "FastMCP server for ESP32/ESP8266 development with esptool integration"
readme = "README.md" readme = "README.md"
requires-python = ">=3.10" requires-python = ">=3.10"
license = { text = "MIT" } license = { text = "MIT" }
authors = [ authors = [
{ name = "ESP Development Team", email = "dev@example.com" } { name = "Ryan Malloy", email = "ryan@supported.systems" }
] ]
keywords = [ keywords = [
@ -71,17 +71,15 @@ production = [
] ]
[project.scripts] [project.scripts]
mcp-esptool-server = "mcp_esptool_server.server:main" mcesptool = "mcesptool.server:main"
esptool-mcp = "mcp_esptool_server.cli:cli"
[project.urls] [project.urls]
Homepage = "https://github.com/yourusername/mcp-esptool-server" Homepage = "https://git.supported.systems/MCP/mcesptool"
Repository = "https://github.com/yourusername/mcp-esptool-server" Repository = "https://git.supported.systems/MCP/mcesptool"
Issues = "https://github.com/yourusername/mcp-esptool-server/issues" Issues = "https://git.supported.systems/MCP/mcesptool/issues"
Documentation = "https://yourusername.github.io/mcp-esptool-server"
[tool.hatch.build.targets.wheel] [tool.hatch.build.targets.wheel]
packages = ["src/mcp_esptool_server"] packages = ["src/mcesptool"]
[tool.ruff] [tool.ruff]
line-length = 100 line-length = 100
@ -109,7 +107,7 @@ strict_optional = true
testpaths = ["tests"] testpaths = ["tests"]
asyncio_mode = "auto" asyncio_mode = "auto"
addopts = [ addopts = [
"--cov=src/mcp_esptool_server", "--cov=src/mcesptool",
"--cov-report=html", "--cov-report=html",
"--cov-report=term-missing", "--cov-report=term-missing",
"--cov-fail-under=85" "--cov-fail-under=85"
@ -125,4 +123,4 @@ exclude_lines = [
"def __repr__", "def __repr__",
"raise AssertionError", "raise AssertionError",
"raise NotImplementedError", "raise NotImplementedError",
] ]

View File

@ -8,7 +8,7 @@ from pathlib import Path
import pytest import pytest
from mcp_esptool_server.config import ESPToolServerConfig from mcesptool.config import ESPToolServerConfig
def test_config_from_environment(): def test_config_from_environment():

View File

@ -6,7 +6,7 @@ from unittest.mock import AsyncMock
import pytest import pytest
from mcp_esptool_server.middleware import LoggerInterceptor, MiddlewareFactory from mcesptool.middleware import LoggerInterceptor, MiddlewareFactory
class MockContext: class MockContext:

View File

@ -10,13 +10,13 @@ from unittest.mock import AsyncMock, MagicMock
import pytest import pytest
from mcp_esptool_server.components.qemu_manager import ( from mcesptool.components.qemu_manager import (
CHIP_MACHINES, CHIP_MACHINES,
QemuInstance, QemuInstance,
QemuManager, QemuManager,
_create_blank_flash, _create_blank_flash,
) )
from mcp_esptool_server.config import ESPToolServerConfig from mcesptool.config import ESPToolServerConfig
@pytest.fixture @pytest.fixture

46
uv.lock generated
View File

@ -885,29 +885,7 @@ wheels = [
] ]
[[package]] [[package]]
name = "mcp" name = "mcesptool"
version = "1.15.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
{ name = "httpx" },
{ name = "httpx-sse" },
{ name = "jsonschema" },
{ name = "pydantic" },
{ name = "pydantic-settings" },
{ name = "python-multipart" },
{ name = "pywin32", marker = "sys_platform == 'win32'" },
{ name = "sse-starlette" },
{ name = "starlette" },
{ name = "uvicorn", marker = "sys_platform != 'emscripten'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0c/9e/e65114795f359f314d7061f4fcb50dfe60026b01b52ad0b986b4631bf8bb/mcp-1.15.0.tar.gz", hash = "sha256:5bda1f4d383cf539d3c035b3505a3de94b20dbd7e4e8b4bd071e14634eeb2d72", size = 469622, upload-time = "2025-09-25T15:39:51.995Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c9/82/4d0df23d5ff5bb982a59ad597bc7cb9920f2650278ccefb8e0d85c5ce3d4/mcp-1.15.0-py3-none-any.whl", hash = "sha256:314614c8addc67b663d6c3e4054db0a5c3dedc416c24ef8ce954e203fdc2333d", size = 166963, upload-time = "2025-09-25T15:39:50.538Z" },
]
[[package]]
name = "mcp-esptool-server"
version = "2025.9.28.1" version = "2025.9.28.1"
source = { editable = "." } source = { editable = "." }
dependencies = [ dependencies = [
@ -976,6 +954,28 @@ requires-dist = [
] ]
provides-extras = ["dev", "idf", "testing", "production"] provides-extras = ["dev", "idf", "testing", "production"]
[[package]]
name = "mcp"
version = "1.15.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "anyio" },
{ name = "httpx" },
{ name = "httpx-sse" },
{ name = "jsonschema" },
{ name = "pydantic" },
{ name = "pydantic-settings" },
{ name = "python-multipart" },
{ name = "pywin32", marker = "sys_platform == 'win32'" },
{ name = "sse-starlette" },
{ name = "starlette" },
{ name = "uvicorn", marker = "sys_platform != 'emscripten'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/0c/9e/e65114795f359f314d7061f4fcb50dfe60026b01b52ad0b986b4631bf8bb/mcp-1.15.0.tar.gz", hash = "sha256:5bda1f4d383cf539d3c035b3505a3de94b20dbd7e4e8b4bd071e14634eeb2d72", size = 469622, upload-time = "2025-09-25T15:39:51.995Z" }
wheels = [
{ url = "https://files.pythonhosted.org/packages/c9/82/4d0df23d5ff5bb982a59ad597bc7cb9920f2650278ccefb8e0d85c5ce3d4/mcp-1.15.0-py3-none-any.whl", hash = "sha256:314614c8addc67b663d6c3e4054db0a5c3dedc416c24ef8ce954e203fdc2333d", size = 166963, upload-time = "2025-09-25T15:39:50.538Z" },
]
[[package]] [[package]]
name = "mdurl" name = "mdurl"
version = "0.1.2" version = "0.1.2"