[build-system] requires = ["setuptools>=68"] build-backend = "setuptools.build_meta" [project] name = "jaimenbell-discord-mcp" version = "0.1.1" readme = "README.md" description = "MCP server over the real Discord REST API -- 5 read-only tools always on, plus 6 write tools (create/edit channel, create/edit role, edit guild, delete channel) gated behind DISCORD_MCP_ENABLE_WRITE=1 (default OFF), instead of hand-rolled Discord API calls." requires-python = ">=3.12" dependencies = [ "fastmcp==3.4.2", "httpx==0.28.1", ] [project.optional-dependencies] # anyio pinned explicitly (was only a transitive dep via httpx/fastmcp) -- # the test suite now uses anyio's pytest plugin (`@pytest.mark.anyio`) to # run async tests against client.py's httpx.AsyncClient (post-code-review # finding 2), so it's a real direct test dependency now, not incidental. test = ["pytest==9.0.3", "respx==0.23.1", "anyio==4.14.1"] [project.scripts] discord-mcp = "discord_mcp.__main__:main" [tool.setuptools.packages.find] include = ["discord_mcp*"] [tool.pytest.ini_options] testpaths = ["tests"] addopts = "-q" markers = [ "live: real-network smoke test against the real Discord API, requires DISCORD_MCP_LIVE=1", ]