[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "mcp-markdown-ragdocs"
version = "0.1.0"
description = "A Model Context Protocol (MCP) server for semantic search over Markdown documentation."
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"tree-sitter>=0.23.0",
"tree-sitter-markdown>=0.3.2",
"pyyaml>=6.0.2",
"llama-index-core>=0.12.0",
"llama-index-embeddings-huggingface>=0.4.0",
"llama-index-vector-stores-faiss>=0.3.0",
"faiss-cpu>=1.9.0",
"Whoosh>=2.7.4",
"networkx>=3.0",
"watchdog>=6.0.0",
"fastapi>=0.115.0",
"uvicorn>=0.34.0",
"click>=8.1.0",
"rich>=13.0.0",
"mcp>=1.0.0",
"tomlkit>=0.13.0",
"sentence-transformers>=3.0.0",
"tenacity>=9.0.0",
]
[project.urls]
Homepage = "https://github.com/yourusername/mcp-markdown-ragdocs"
Documentation = "https://github.com/yourusername/mcp-markdown-ragdocs/tree/main/docs"
Repository = "https://github.com/yourusername/mcp-markdown-ragdocs.git"
Issues = "https://github.com/yourusername/mcp-markdown-ragdocs/issues"
[project.scripts]
mcp-markdown-ragdocs = "src.cli:main"
[dependency-groups]
dev = [
"filelock>=3.0.0",
"pyright>=1.1.407",
"pytest>=9.0.2",
"pytest-asyncio>=0.24.0",
"pytest-cov>=6.0.0",
"pytest-xdist>=3.5.0",
"ruff>=0.14.10",
"ty>=0.0.12",
]
[tool.uv]
package = true
[tool.hatch.build.targets.wheel]
packages = ["src"]
[tool.pytest.ini_options]
pythonpath = "."
addopts = "-n 4 --dist worksteal"
markers = [
"serial: marks tests that must run serially (not in parallel)",
"unit: marks unit tests (fast, isolated)",
"integration: marks integration tests (involve multiple components)",
"e2e: marks end-to-end tests (full system tests)",
"slow: marks slow tests (>5s, load models or process large datasets)",
]