Files
codex-py/pyproject.toml
Tarik Moussa b803811701 feat(mcp): FastMCP server exposing read-only KB tools (stdio)
Implements F-14: thin FastMCP wrapper over existing codex domain modules.
Seven read-only tools: search, ask, wiki_read, wiki_list, discover_leads,
provenance_verify, synthesis_browse. All optional-feature tools degrade
gracefully to {"error": "feature not available"} instead of crashing.
Adds mcp[cli]>=1.0 dependency and codex-mcp console_script entry-point.
28 new tests across test_server, test_search, test_readonly, test_graceful,
test_http_auth — all green; 0 regressions in existing 172 tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-14 08:55:49 +02:00

52 lines
995 B
TOML

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[project]
name = "codex"
version = "0.1.0"
description = "Personal knowledge base for scientific papers — provenance, citation graph, semantic search."
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"psycopg[binary]>=3.1",
"pgvector>=0.3",
"pydantic-settings>=2",
"sentence-transformers>=3",
"flagembedding>=1.2",
"typer>=0.12",
"httpx>=0.27",
"tenacity>=8",
"pymupdf>=1.24",
"pix2tex>=0.1.4",
"mcp[cli]>=1.0",
]
[project.scripts]
codex = "codex.cli:app"
codex-mcp = "codex.mcp_server:main"
[dependency-groups]
dev = [
"ruff>=0.4",
"mypy>=1.10",
"pytest>=8",
"pytest-mock>=3",
]
[tool.ruff]
target-version = "py312"
line-length = 100
[tool.ruff.lint]
select = ["E", "F", "I", "UP", "B", "SIM"]
ignore = []
[tool.mypy]
python_version = "3.12"
strict = true
ignore_missing_imports = true
[tool.pytest.ini_options]
testpaths = ["tests"]