Skip to main content
Glama

query_entities

Search and filter entities (classes, functions, modules) in a knowledge graph by type, programming language, or name pattern using customizable parameters for precise results.

Instructions

Query entities in the knowledge graph.

Args: entity_type: Filter by entity type (class, function, module, etc.) language: Filter by programming language name_pattern: Filter by name pattern (regex) limit: Maximum number of results to return

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
entity_typeNo
languageNo
limitNo
name_patternNo

Implementation Reference

  • MCP tool handler for 'query_entities'. This is the main execution function, decorated with @self.mcp.tool() which registers it as an MCP tool. It calls KnowledgeGraph.query_entities and formats the results as a string.
    @self.mcp.tool() def query_entities( entity_type: str | None = None, language: str | None = None, name_pattern: str | None = None, limit: int = 10, ) -> str: """Query entities in the knowledge graph. Args: entity_type: Filter by entity type (class, function, module, etc.) language: Filter by programming language name_pattern: Filter by name pattern (regex) limit: Maximum number of results to return """ entities = self.knowledge.query_entities( entity_type=entity_type, language=language, name_pattern=name_pattern, limit=limit, ) if not entities: return "No entities found matching the query criteria" # Format results output = f"Found {len(entities)} entities:\n\n" for entity in entities: output += f"Name: {entity.name}\n" output += f"Type: {entity.entity_type}\n" if entity.language: output += f"Language: {entity.language}\n" if entity.signature: output += f"Signature: {entity.signature}\n" output += f"Summary: {entity.summary}\n" if entity.observations: output += "Observations:\n" for observation in entity.observations[ :3 ]: # Limit to 3 observations output += f"- {observation}\n" if len(entity.observations) > 3: output += f"... and {len(entity.observations) - 3} more observations\n" output += "\n" return output
  • Core implementation of entity querying in KnowledgeGraph class. Filters entities by type, language, and name pattern using regex, with optional limit.
    def query_entities( self, entity_type: str | None = None, language: str | None = None, name_pattern: str | None = None, limit: int = 100, ) -> list[Entity]: """Query entities based on criteria. Args: entity_type: Filter by entity type language: Filter by programming language name_pattern: Filter by name pattern (regex) limit: Maximum number of results Returns: List of matching entities """ results = [] for entity in self.entities.values(): # Apply filters if entity_type is not None and entity.entity_type != entity_type: continue if language is not None and entity.language != language: continue if name_pattern is not None: if not re.search(name_pattern, entity.name): continue results.append(entity) if len(results) >= limit: break return results

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/sarathsp06/sourcesage'

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