1
0
forked from rsp2k/mcp-mailu
mcp-mailu/pyproject.toml
Ryan Malloy 3fe5bb02ad 🔄 Refactor API endpoints to use MCP resources vs tools (v0.3.0)
ARCHITECTURAL IMPROVEMENT: Proper separation of concerns in MCP design

📖 RESOURCES (Read-only data retrieval):
- mailu://users - All users
- mailu://domains - All domains
- mailu://aliases - All aliases
- mailu://alternative-domains - All alternative domains
- mailu://relays - All relays
- mailu://user/{email} - Specific user details
- mailu://domain/{domain} - Specific domain details
- mailu://alias/{alias} - Specific alias details
- mailu://alternative-domain/{alt} - Specific alternative domain
- mailu://relay/{name} - Specific relay details
- mailu://domain/{domain}/users - Users in specific domain
- mailu://domain/{domain}/managers - Managers for specific domain
- mailu://domain/{domain}/manager/{email} - Specific manager details
- mailu://alias/destination/{domain} - Aliases by destination domain

 TOOLS (Actions and modifications):
- create_user, update_user, delete_user
- create_domain, update_domain, delete_domain, generate_dkim_keys
- create_domain_manager, delete_domain_manager
- create_alias, update_alias, delete_alias
- create_alternative_domain, delete_alternative_domain
- create_relay, update_relay, delete_relay

 BENEFITS:
- Better UX: Resources are discoverable and browsable
- Cleaner separation: Read vs Write operations
- Structured data: Resources return properly formatted JSON
- URI-based access: RESTful resource addressing
- Improved performance: Resources can be cached by clients

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-16 13:16:44 -06:00

101 lines
2.2 KiB
TOML

[project]
name = "mcp-mailu"
version = "0.3.0"
description = "FastMCP server for Mailu email server API integration"
authors = [
{name = "Ryan Malloy", email = "ryan@supported.systems"}
]
readme = "README.md"
license = {text = "MIT"}
requires-python = ">=3.10"
keywords = [
"mcp",
"fastmcp",
"mailu",
"email",
"mail-server",
"api",
"integration",
"smtp",
"imap"
]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
"Intended Audience :: System Administrators",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Internet :: WWW/HTTP :: HTTP Servers",
"Topic :: Communications :: Email",
"Topic :: System :: Systems Administration",
"Operating System :: OS Independent",
]
dependencies = [
"fastmcp>=0.1.0",
"httpx>=0.25.0",
"pydantic>=2.0.0",
"python-dotenv>=1.0.0",
]
[project.urls]
Homepage = "https://git.supported.systems/MCP/mcp-mailu"
Documentation = "https://git.supported.systems/MCP/mcp-mailu#readme"
Repository = "https://git.supported.systems/MCP/mcp-mailu.git"
Issues = "https://git.supported.systems/MCP/mcp-mailu/issues"
[project.optional-dependencies]
dev = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"black>=23.0.0",
"ruff>=0.1.0",
"mypy>=1.0.0",
"build>=0.10.0",
"twine>=4.0.0",
]
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatchling.build.targets.sdist]
include = [
"/src",
"/tests",
"/examples",
"README.md",
"LICENSE",
"MANIFEST.in",
]
[tool.uv]
dev-dependencies = [
"pytest>=7.0.0",
"pytest-asyncio>=0.21.0",
"black>=23.0.0",
"ruff>=0.1.0",
"mypy>=1.0.0",
"twine>=6.1.0",
]
[tool.black]
line-length = 88
target-version = ['py38']
[tool.ruff]
line-length = 88
target-version = "py38"
[tool.mypy]
python_version = "3.8"
warn_return_any = true
warn_unused_configs = true
disallow_untyped_defs = true
[project.scripts]
mcp-mailu = "mcp_mailu.server:main"