This repository contains two Python projects and shared repository-level tooling.
| Path | Purpose |
|---|---|
indexer/ |
Source-independent indexing pipeline for canonical documents, with ServiceNow as an example adapter. |
mcp/ |
Python project for the MCP server used for retrieval over Qdrant. |
.pre-commit-config.yaml |
Repository-level pre-commit hook configuration. |
ruff.toml |
Shared Ruff linting and formatting configuration for both Python projects. |
pyproject.toml |
Root uv project for shared development tooling only. It is not an application package. |
Both Python projects keep their standard utility modules for logging, environment variable handling, and version reporting inside their own package:
indexer/src/utils/mcp/src/utils/
Both application projects have their own pyproject.toml and should be treated as separate Python environments. Keep project-specific .env files inside the relevant project directory and use the matching .env.example as the template.
Create or sync the indexer environment:
uv sync --project indexerCreate or sync the MCP environment:
uv sync --project mcpRun the indexer project entry point:
uv run --directory indexer python -m src.mainRun the MCP project entry point:
uv run --project mcp python -m src.mainRepository-level tooling remains at the repository root because it applies to both Python projects.
Sync the root tooling environment:
uv syncInstall pre-commit hooks:
uv run pre-commit installRun pre-commit manually:
uv run pre-commit run --all-filesRun Ruff linting:
uv run ruff check .Run Ruff formatting:
uv run ruff format .