Skip to main content
Glama
FOX2920

WeWork MCP Server

by FOX2920

search_projects

Search WeWork projects by name to find relevant project information. Enter search text to retrieve matching projects with configurable result limits.

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
search_textYes
limitNo

Implementation Reference

  • The primary MCP tool handler for 'search_projects'. Decorated with @mcp.tool(), it implements the core logic: validates client, searches via WeWorkClient.search_projects(), formats results with success/error handling.
    @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}
  • The @mcp.tool() decorator registers the search_projects function as an MCP tool.
    @mcp.tool()
  • Input/output schema defined by type hints (search_text: str, limit: int = 10 -> Dict[str, Any]) and comprehensive docstring describing args and returns.
    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
        """
  • Supporting helper method WeWorkClient.search_projects() that fetches all projects and performs fuzzy/exact matching based on search_text, returning limited list of matching projects.
    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]]

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