Skip to main content
Glama

LoreKeeper MCP

by frap129
pyproject.toml3.32 kB
[project] name = "lorekeeper-mcp" version = "0.1.0" description = "MCP server for D&D 5e information lookup with AI assistants" readme = "README.md" license = { text = "MIT" } requires-python = ">=3.11" authors = [ { name = "Joe Maples <joe@maples.dev>" } ] dependencies = [ "fastmcp>=0.2.0", "httpx>=0.27.0", "pydantic>=2.0.0", "pydantic-settings>=2.0.0", "aiosqlite>=0.19.0", "python-dotenv>=1.0.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0.0", "pytest-asyncio>=0.23.0", "ruff>=0.4.0", "black>=24.0.0", "mypy>=1.8.0", "pre-commit>=3.5.0", "respx>=0.21.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/lorekeeper_mcp"] [tool.ruff] line-length = 100 target-version = "py311" exclude = [ ".bzr", ".direnv", ".eggs", ".git", ".git-rewrite", ".hg", ".mypy_cache", ".nox", ".pants.d", ".pytype", ".ruff_cache", ".svn", ".tox", ".venv", "__pypackages__", "_build", "buck-out", "build", "dist", "node_modules", "venv", ] [tool.ruff.lint] select = [ "E", # pycodestyle errors "W", # pycodestyle warnings "F", # pyflakes "I", # isort "N", # pep8-naming "UP", # pyupgrade "B", # flake8-bugbear "A", # flake8-builtins "C4", # flake8-comprehensions "PIE", # flake8-pie "RET", # flake8-return "SIM", # flake8-simplify "RUF", # Ruff-specific rules "PTH", # flake8-use-pathlib "PERF", # flake8-perf "PGH", # pygrep-hooks "PL", # pylint ] ignore = [ "E501", # line too long, handled by black "PLR0913", # too many arguments "PLR0915", # too many statements "PLR0912", # too many branches "PLR0911", # too many return statements ] [tool.ruff.lint.per-file-ignores] "tests/*" = [ "S101", # use of assert "PLR2004", # magic value comparison "PLR0913", # too many arguments in tests ] [tool.ruff.format] quote-style = "double" indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" [tool.black] line-length = 100 target-version = ["py311"] include = '\.pyi?$' extend-exclude = ''' /( # directories \.eggs | \.git | \.hg | \.mypy_cache | \.tox | \.venv | build | dist )/ ''' [tool.mypy] python_version = "3.11" warn_return_any = true warn_unused_configs = true disallow_untyped_defs = true disallow_incomplete_defs = true check_untyped_defs = true disallow_untyped_decorators = true no_implicit_optional = true warn_redundant_casts = true warn_unused_ignores = true warn_no_return = true warn_unreachable = true strict_equality = true extra_checks = true [[tool.mypy.overrides]] module = [ "fastmcp.*", "aiosqlite.*", ] ignore_missing_imports = true [tool.pytest.ini_options] asyncio_mode = "auto" testpaths = ["tests"] pythonpath = ["src"] markers = [ "live: marks tests as live API tests requiring internet (deselect with '-m \"not live\"')", "slow: marks tests as slow running (>1 second)", ] [dependency-groups] dev = [ "black>=25.9.0", "mypy>=1.18.2", "pre-commit>=4.3.0", "pytest>=8.4.2", "pytest-asyncio>=1.2.0", "ruff>=0.14.3", ]

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/frap129/lorekeeper-mcp'

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