Skip to main content
Glama

mcp-server-tree-sitter

by wrale
MIT License
175
  • Apple
  • Linux
project.py3.43 kB
"""Project management tools for MCP server.""" from typing import Any, Dict, List, Optional from ..api import get_language_registry, get_project_registry from ..exceptions import ProjectError def register_project(path: str, name: Optional[str] = None, description: Optional[str] = None) -> Dict[str, Any]: """ Register a project for code analysis. Args: path: Path to the project directory name: Optional name for the project (defaults to directory name) description: Optional description Returns: Project information """ # Get dependencies from API project_registry = get_project_registry() language_registry = get_language_registry() try: # Register project project = project_registry.register_project(name or path, path, description) # Scan for languages project.scan_files(language_registry) project_dict = project.to_dict() # Add type annotations for clarity result: Dict[str, Any] = { "name": project_dict["name"], "root_path": project_dict["root_path"], "description": project_dict["description"], "languages": project_dict["languages"], "last_scan_time": project_dict["last_scan_time"], } return result except Exception as e: raise ProjectError(f"Failed to register project: {e}") from e def get_project(name: str) -> Dict[str, Any]: """ Get project information. Args: name: Project name Returns: Project information """ # Get dependency from API project_registry = get_project_registry() try: project = project_registry.get_project(name) project_dict = project.to_dict() # Add type annotations for clarity result: Dict[str, Any] = { "name": project_dict["name"], "root_path": project_dict["root_path"], "description": project_dict["description"], "languages": project_dict["languages"], "last_scan_time": project_dict["last_scan_time"], } return result except Exception as e: raise ProjectError(f"Failed to get project: {e}") from e def list_projects() -> List[Dict[str, Any]]: """ List all registered projects. Returns: List of project information """ # Get dependency from API project_registry = get_project_registry() projects_list = project_registry.list_projects() # Explicitly create a typed list result: List[Dict[str, Any]] = [] for project in projects_list: result.append( { "name": project["name"], "root_path": project["root_path"], "description": project["description"], "languages": project["languages"], "last_scan_time": project["last_scan_time"], } ) return result def remove_project(name: str) -> Dict[str, str]: """ Remove a project. Args: name: Project name Returns: Success message """ # Get dependency from API project_registry = get_project_registry() try: project_registry.remove_project(name) return {"status": "success", "message": f"Project '{name}' removed"} except Exception as e: raise ProjectError(f"Failed to remove project: {e}") from e

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/wrale/mcp-server-tree-sitter'

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