[build-system] requires = ["setuptools>=77"] build-backend = "setuptools.build_meta" [project] name = "universal-research-mcp" version = "0.10.1" description = "Governed MCP for provenance-first research memory, evidence re-verification, and controlled canonical ingestion." readme = "README.md" requires-python = ">=3.11" license = "MIT" license-files = ["LICENSE"] authors = [{name = "mp-juns"}] keywords = ["codex", "mcp", "research", "provenance", "audit", "reproducibility", "urmcp"] classifiers = [ "Development Status :: 3 - Alpha", "Intended Audience :: Science/Research", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Topic :: Scientific/Engineering :: Information Analysis", ] dependencies = ["mcp>=1.27,<2"] [project.urls] Homepage = "https://github.com/mp-juns/universal-research-mcp" Repository = "https://github.com/mp-juns/universal-research-mcp" Issues = "https://github.com/mp-juns/universal-research-mcp/issues" Documentation = "https://github.com/mp-juns/universal-research-mcp/blob/main/docs/user-guide.md" [project.optional-dependencies] test = [ "jsonschema[format]>=4.25", "numpy>=1.26", "pytest>=8", "watchdog>=4", ] semantic = [ "huggingface-hub>=0.23", "numpy>=1.26", "safetensors>=0.4", "sentence-transformers>=3", "torch>=2.2", "transformers>=4.40", ] [project.scripts] universal-research-mcp = "universal_research_mcp.cli:legacy_main" universal-research-governance = "universal_research_mcp.governance_server:main" universal-research = "universal_research_mcp.cli:main" urmcp = "universal_research_mcp.cli:main" urgov = "universal_research_mcp.governance.cli:main" [tool.setuptools] packages = ["universal_research_mcp", "universal_research_mcp.adapters", "universal_research_mcp.core", "universal_research_mcp.governance", "universal_research_mcp.indexing", "universal_research_mcp.integrations", "universal_research_mcp.integrations.codex", "universal_research_mcp.runtime", "universal_research_mcp.secure_harness", "universal_research_mcp.tools"] [tool.setuptools.package-data] "universal_research_mcp.governance" = ["roles/*/role.yaml", "roles/*/instructions.md", "schemas/*.json"] [tool.ruff] target-version = "py311" src = ["universal_research_mcp"] [tool.ruff.lint] select = ["E4", "E7", "E9", "F"] [tool.mypy] python_version = "3.11" files = ["universal_research_mcp"] ignore_missing_imports = true # Pre-existing gradual-typing categories stay excluded from the release # gate; strict typing is re-enabled per-module below for the core boundaries. disable_error_code = ["arg-type", "assignment", "attr-defined", "call-overload", "dict-item", "misc", "operator", "union-attr"] [[tool.mypy.overrides]] module = [ "universal_research_mcp.core.claim_gate", "universal_research_mcp.core.canonical_io", "universal_research_mcp.core.ingest", "universal_research_mcp.public_demo", "universal_research_mcp.runtime.ingest_approval", "universal_research_mcp.runtime.project_io", "universal_research_mcp.runtime.model_snapshot", ] enable_error_code = ["arg-type", "assignment", "attr-defined", "operator", "union-attr"] [tool.setuptools.data-files] "share/universal-research-mcp/docs" = [ "docs/architecture.md", "docs/failure-policy.md", "docs/host-integration.md", "docs/legacy-retrieval-migration.md", "docs/public-demo.md", "docs/research-operations-specification.md", "docs/secure-harness.md", "docs/semantic-retrieval.md", "docs/security.md", "docs/user-guide.md", ] "share/universal-research-mcp/docs/decisions" = ["docs/decisions/*.md"] "share/universal-research-mcp/schemas" = ["schemas/*.json"] "share/universal-research-mcp/packs/study_type" = ["packs/study_type/*.yaml"] "share/universal-research-mcp/plugin/universal-research-memory" = [ "plugin/universal-research-memory/.mcp.json", ] "share/universal-research-mcp/plugin/universal-research-memory/.codex-plugin" = [ "plugin/universal-research-memory/.codex-plugin/plugin.json", ] "share/universal-research-mcp/plugin/universal-research-memory/hooks" = [ "plugin/universal-research-memory/hooks/hooks.json", "plugin/universal-research-memory/hooks/session-scope.md", ] "share/universal-research-mcp/plugin/universal-research-memory/scripts" = [ "plugin/universal-research-memory/scripts/session_start.py", ] "share/universal-research-mcp/plugin/universal-research-memory/skills/research-workflow" = [ "plugin/universal-research-memory/skills/research-workflow/SKILL.md", ] "share/universal-research-mcp/plugin/universal-research-memory/skills/research-governance" = [ "plugin/universal-research-memory/skills/research-governance/SKILL.md", ] "share/universal-research-mcp/plugin/universal-research-memory/skills/research-governance/agents" = [ "plugin/universal-research-memory/skills/research-governance/agents/openai.yaml", ]