Skip to content

Releases: hoyt-harness/doxygen-mcp

v4.0.0

Choose a tag to compare

@hoyt-harness hoyt-harness released this 01 Sep 21:05
v4.0.0
cd3ac0e

MCP Python SDK v2 Migration

This release upgrades the server's protocol dependency from the MCP Python SDK v1 to v2 (mcp 1.29.0 → 2.1.1). The external protocol surface — tool names, descriptions, input schemas, and runtime behavior — is unchanged. All existing client configurations work without modification.

Why v4.0.0?

The mcp v2 SDK removed mcp.server.fastmcp entirely. Code importing from that module raises ModuleNotFoundError under mcp 2.x. This is a hard protocol dependency break: environments pinned to mcp<2 cannot install this release alongside other mcp 2.x tools without isolating. The major version reflects that boundary, even though callers see identical behavior from the tools themselves.

What changed

Import updated (server.py): FastMCP is renamed MCPServer in mcp v2 and moved to mcp.server.mcpserver.

# v3.x
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Doxygen")

# v4.0.0
from mcp.server.mcpserver import MCPServer
mcp = MCPServer("Doxygen")

The @mcp.tool() decorator API and mcp.run() call site are unchanged. MCPServer is a drop-in rename with the same high-level interface.

Dependency bump (pyproject.toml): mcp>=1.0.0,<2.0.0mcp>=2.0.0,<3.0.0

Lock file (uv.lock): mcp 1.29.0 → 2.1.1. Transitive changes:

  • Added: httpx2, httpcore2, mcp-types, opentelemetry-api
  • Removed: httpx-sse, pydantic-settings, python-dotenv

Spec: This migration was developed against specs/001-mcp-v2-migration/ (spec.md + plan.md), using the MCP Python SDK v1→v2 Migration Guide as the upstream reference.

What did not change

  • All 7 tool names, descriptions, and input schemas
  • DoxygenConfig Pydantic model and to_doxyfile() logic
  • mcp.run() entry point (stdio transport, no arguments)
  • __main__.py and __init__.py
  • Test suite (14/14 pass, no new skips)

Verification

  • uv run python -c "from doxygen_mcp.server import mcp; print(type(mcp).__name__)"MCPServer
  • uv run pytest → 14 passed, 0 failed
  • uv run ruff check src/ tests/ → 0 errors
  • hooks/ci-check.sh → green

v3.1.0

Choose a tag to compare

@hoyt-harness hoyt-harness released this 16 Aug 19:46
v3.1.0
828e39c

Changes

  • Doxyfile convention update: OUTPUT_DIRECTORY changed from docs to doxygen per PCS v2.12.0 (generated Doxygen output is not tracked in git; users generate as needed). INPUT changed from absolute path to .. PROJECT_NUMBER updated to 3.0.2.
  • docs/html/ removed: 164 generated HTML files removed from tracking.
  • .gitignore: examples/*/docs/examples/*/doxygen/.
  • SPDX rollout: COPYING.md renamed to COPYING; pyproject.toml license.file updated; SPDX-License-Identifier: GPL-3.0-or-later added to 9 source files.
  • Community files: CODE_OF_CONDUCT.md, .github/ISSUE_TEMPLATE/bug_report.md, .github/ISSUE_TEMPLATE/feature_request.md added.
  • mcp-inspector.json added (PCS v2.11.2 template).
  • CRLF fixed: server.py, __init__.py, __main__.py.
  • Line length: 14 violations fixed across calculator.cpp, calculator.h, main.cpp, check_environment.py.
  • Dependencies: 5 packages updated; cryptography at 50.0.0 (resolves Dependabot alert #35).

Known open items

  • mcp 2.0 migration: mcp<2.0.0 upper bound intentional. mcp.server.fastmcp removed in mcp 2.0; migration planned with all three MCP server repos in a dedicated session (July 2027 deadline).

v3.0.2

Choose a tag to compare

@hoyt-harness hoyt-harness released this 07 Aug 13:11
v3.0.2
9f55c5a

Full Changelog: v3.0.1...v3.0.2

v3.0.1

Choose a tag to compare

@hoyt-harness hoyt-harness released this 07 Jul 16:16
v3.0.1
29e9689

Bug Fixes

  • Path validation bypass removed (server.py): create_doxygen_project() and generate_documentation() were skipping their own path validation (must exist, must be within cwd) whenever PYTEST_CURRENT_TEST was set. The bypass was in production code, not test infrastructure, so validation was never exercised during the test suite. Removed; tests updated to use real temp dirs within cwd.

Dependency Updates

  • 27 Python package upgrades including mcp, pydantic, cryptography, anyio, and uvicorn
  • Supply-chain soak window added (uv.toml: exclude-newer = 7 days)

Tooling & Compliance

  • check_environment.py: fixed missing import os (would have raised NameError at runtime in test_manual_doxygen_run())
  • Git hooks, CI workflow, and linter configuration brought up to Positronikal Coding Standards v2.6.2
  • SECURITY.md, CODEOWNERS, and .github/PULL_REQUEST_TEMPLATE.md added

Modernization & uv Migration - v3.0.0

Choose a tag to compare

@hoyt-harness hoyt-harness released this 30 Dec 18:47
v3.0.0
ccd08b3

v3.0.0 - Modernization & uv Migration

This is a major release with breaking changes. The Doxygen MCP server has been modernized with faster dependency management, cleaner documentation, and professional naming conventions.

⚠️ Breaking Changes

Installation & Configuration:

  • New dependency manager: Migrated from pip to uv for faster, more reliable builds
  • New installation command: uv sync (replaces pip install -e .)
  • New entry point: uv run doxygen-mcp (old entry point removed)
  • MCP server name: Now displays as "Doxygen" (was "doxygen-mcp")
  • Python requirement: Now requires Python 3.11+ (was 3.8+)

MCP Client Configuration:

{
  "mcpServers": {
    "doxygen": {
      "command": "uv",
      "args": ["--directory", "/path/to/doxygen-mcp", "run", "doxygen-mcp"]
    }
  }
}

✨ Improvements

  • 📚 Documentation: Consolidated from 9 files to 6 with clearer structure
    • Quick Start guide in README.md
    • Comprehensive developer guide in USING.md
    • Complete troubleshooting in BUGS.md
  • ⚡ Performance: Faster dependency resolution with uv
  • 🔒 Reproducibility: Lock file (uv.lock) ensures consistent builds
  • 📦 Modern Packaging: Follows PEP 517/518 standards
  • 🎨 Professional Naming: Server displays as "Doxygen" in MCP clients

🔄 Migration from v2.0.0

For Existing Users:

  1. Update repository:
   git pull origin master
  1. Remove old virtual environment:
   rm -rf .venv
  1. Install with uv:
   uv sync
  1. Update MCP client configuration (see Breaking Changes above)

  2. Restart your MCP client

See USING.md for complete migration instructions.

📦 Installation (New Users)

Prerequisites:

  • Python 3.11+
  • uv package manager
  • Doxygen

Install:

git clone https://github.com/Positronikal/doxygen-mcp.git
cd doxygen-mcp
uv sync

Configure in Claude Desktop:

{
  "mcpServers": {
    "doxygen": {
      "command": "uv",
      "args": ["--directory", "/full/path/to/doxygen-mcp", "run", "doxygen-mcp"]
    }
  }
}

🛠️ Tools Available

All 7 Doxygen MCP tools remain unchanged:

  • create_doxygen_project - Initialize documentation projects
  • generate_documentation - Generate docs from source code
  • scan_project - Analyze project structure
  • validate_documentation - Check coverage and warnings
  • create_doxyfile - Generate configuration files
  • check_doxygen_install - Verify Doxygen installation
  • suggest_file_patterns - Get file pattern recommendations

📄 License

GNU General Public License v3.0 or later (GPLv3+)


Questions? Open an issue or see BUGS.md for troubleshooting.

Comprehensive Refactor and Modernization

Choose a tag to compare

@hoyt-harness hoyt-harness released this 27 Aug 15:43
v2.0.0
5e8237e

This release represents a major refactoring of the project, introducing a modern and more robust foundation for the Doxygen MCP Server. The changes focus on improving code quality, enhancing security, and standardizing the project's structure to align with best practices in the Python ecosystem.

Key Changes:

  • Project Modernization: The repository has been migrated to use pyproject.toml for dependency management, replacing the legacy requirements.txt file. This provides a more standardized and declarative way to manage the project's build and dependencies.
  • Code Quality & Security: The core server code in server.py was refactored to simplify implementation by utilizing the FastMCP class. Security was enhanced by adding sanitization to subprocess.run calls to mitigate potential command injection vulnerabilities.
  • Standardized Documentation: The project's documentation has been reorganized for improved clarity and consistency. Files like BUGS.md, TROUBLESHOOTING.md, DEVELOPMENT.md, and LICENSE.md were renamed or created to follow standard conventions and provide a centralized location for contributor information.
  • Testing and Environment: Installation and usage instructions were updated to use uv and uvenv, providing a modern and efficient way for users and clients to manage the project environment.