Skip to main content
Glama

search_projects

Search for WeWork projects by name using specified text and retrieve a list of matching projects, limited to a customizable number of results.

Instructions

Tìm kiếm dự án theo tên Args: search_text: Text để tìm kiếm trong tên dự án limit: Số lượng kết quả tối đa (default: 10) Returns: Danh sách các dự án phù hợp

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
search_textYes

Implementation Reference

  • MCP tool handler for 'search_projects'. Calls WeWorkClient.search_projects and formats the response with success status and metadata.
    @mcp.tool() def search_projects(search_text: str, limit: int = 10) -> Dict[str, Any]: """ Tìm kiếm dự án theo tên Args: search_text: Text để tìm kiếm trong tên dự án limit: Số lượng kết quả tối đa (default: 10) Returns: Danh sách các dự án phù hợp """ try: if not wework_client: return {'error': 'WeWork client not initialized'} logger.info(f"Searching projects with text: {search_text}") results = wework_client.search_projects(search_text=search_text, limit=limit) return { 'success': True, 'search_text': search_text, 'results': results, 'count': len(results) } except Exception as e: logger.error(f"Error in search_projects: {e}") return {'error': str(e), 'success': False}
  • Input schema defined by function parameters (search_text: str, limit: int=10) and output as Dict[str, Any]. Docstring provides description.
    def search_projects(search_text: str, limit: int = 10) -> Dict[str, Any]: """ Tìm kiếm dự án theo tên Args: search_text: Text để tìm kiếm trong tên dự án limit: Số lượng kết quả tối đa (default: 10) Returns: Danh sách các dự án phù hợp """
  • Tool registration via @mcp.tool() decorator on the handler function.
    @mcp.tool()
  • Core search logic in WeWorkClient class that fetches projects and matches by name using substring and similarity scoring.
    def search_projects(self, search_text: str, limit: int = 10) -> List[Dict]: """ Tìm kiếm projects theo tên """ projects = self.fetch_projects() if not projects: return [] # Tìm projects phù hợp matches = [] for project in projects: project_name = project['name'].lower() search_lower = search_text.lower() # Exact match hoặc partial match if search_lower in project_name or project_name in search_lower: matches.append({ 'project': project, 'similarity': 1.0 if search_lower == project_name else 0.8 }) else: # Sử dụng find_best_project_match _, similarity = self.find_best_project_match(search_text, [project]) if similarity > 0.3: matches.append({ 'project': project, 'similarity': similarity }) # Sắp xếp theo similarity và giới hạn kết quả matches.sort(key=lambda x: x['similarity'], reverse=True) return [match['project'] for match in matches[:limit]]

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/FOX2920/Aplus-MCP'

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