Skip to main content
Glama

scan_dependencies

Identify and extract project dependency details from pyproject.toml files. Provides JSON output with specifications and metadata, enabling accurate AI-assisted documentation and coding support.

Instructions

Scan project dependencies from pyproject.toml

Args: project_path: Path to project directory (defaults to current directory)

Returns: JSON with dependency specifications and project metadata

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_pathNo

Implementation Reference

  • The core handler function for the 'scan_dependencies' MCP tool. It validates the project path, parses dependencies using PyProjectParser, handles errors, tracks metrics, and returns formatted results or error responses. Registered via @mcp.tool decorator.
    @mcp.tool async def scan_dependencies(project_path: str | None = None) -> dict[str, Any]: """ Scan project dependencies from pyproject.toml Args: project_path: Path to project directory (defaults to current directory) Returns: JSON with dependency specifications and project metadata """ from .observability import get_metrics_collector, track_request async with track_request("scan_dependencies") as metrics: if parser is None: get_metrics_collector().finish_request( metrics.request_id, success=False, error_type="ServiceNotInitialized", ) return { "success": False, "error": { "message": "Parser not initialized", "suggestion": "Try again or restart the MCP server", "severity": "critical", "code": "service_not_initialized", "recoverable": False, }, } try: # Validate project path if provided if project_path is not None: path = InputValidator.validate_project_path(project_path) else: path = Path.cwd() logger.info("Scanning dependencies", project_path=str(path)) result = await parser.parse_project(path) # Record successful metrics get_metrics_collector().finish_request( metrics.request_id, success=True, dependency_count=result.successful_deps, ) # Use ResponseFormatter for consistent error formatting return ResponseFormatter.format_scan_response(result) except ProjectParsingError as e: formatted_error = ErrorFormatter.format_exception(e) get_metrics_collector().finish_request( metrics.request_id, success=False, error_type="ProjectParsingError", ) return { "success": False, "error": { "message": formatted_error.message, "suggestion": formatted_error.suggestion, "severity": formatted_error.severity.value, "code": formatted_error.error_code, "recoverable": formatted_error.recoverable, }, } except Exception as e: formatted_error = ErrorFormatter.format_exception(e) get_metrics_collector().finish_request( metrics.request_id, success=False, error_type=type(e).__name__, ) return { "success": False, "error": { "message": formatted_error.message, "suggestion": formatted_error.suggestion, "severity": formatted_error.severity.value, "code": formatted_error.error_code, "recoverable": formatted_error.recoverable, }, }
  • The @mcp.tool decorator registers the scan_dependencies function as an MCP tool in the FastMCP server.
    @mcp.tool

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bradleyfay/autodoc-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server