[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "obsidian-mcp-server"
version = "1.0.0"
description = "Servidor MCP para interactuar con tu vault de Obsidian desde Claude"
readme = "README.md"
requires-python = ">=3.11"
keywords = ["obsidian", "mcp", "claude", "knowledge-management", "notes"]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Text Processing :: Markup :: Markdown",
"Topic :: Office/Business :: Groupware"
]
dependencies = [
"aiofiles>=25.1.0",
"fastmcp>=2.9.2",
"pathspec>=0.12.1",
"pydantic>=2.11.7",
"pydantic-settings>=2.7.0",
"python-dotenv>=1.1.1",
"tqdm>=4.66.0",
"youtube-transcript-api>=1.2.3",
"PyYAML>=6.0.0",
]
[project.optional-dependencies]
rag = [
"langchain>=0.3.0",
"langchain-community>=0.3.0",
"langchain-core>=0.3.0",
"langchain-ollama>=0.2.0",
"langchain-chroma>=0.2.0",
"langchain-huggingface>=0.1.0",
"langchain-text-splitters>=0.3.0",
"langchain-classic>=0.1.0",
"langgraph>=0.2.0",
"chromadb>=0.5.0",
"rank-bm25>=0.2.2",
"sentence-transformers>=3.0.0",
"torch>=2.0.0",
"torch>=2.0.0",
]
[project.scripts]
obsidian-mcp-server = "obsidian_mcp.server:main"
[dependency-groups]
dev = [
"pytest>=8.4.1",
"anyio>=4.4.0",
"ruff>=0.14.8",
"pyright>=1.1.372",
"mypy>=1.19.1",
"types-PyYAML>=6.0.0",
"types-aiofiles>=24.1.0",
"matplotlib>=3.10.8",
"numpy>=2.4.1",
]
[tool.hatch.build.targets.wheel]
packages = ["obsidian_mcp"]
[tool.ruff]
line-length = 88
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "B"]
ignore = []
[tool.pytest.ini_options]
testpaths = ["tests"]
python_files = ["test_*.py"]
addopts = "-v"
[[tool.mypy.overrides]]
module = ["chromadb", "langchain", "numpy"]
ignore_missing_imports = true