list_ip_cores
Discover available FPGA IP cores in the registry and filter them by category to find suitable components for hardware design projects.
Instructions
List all available IP cores in the registry. Optionally filter by category.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by category, e.g. 'communication' or 'memory' |
Implementation Reference
- registry/resolver.py:85-101 (handler)The actual handler implementation - the list_cores method in CoreRegistry class that iterates through cached IP cores and returns a summary list with name, version, category, description, tags, language, parameters, and path. Optionally filters by category.
def list_cores(self, category: str | None = None) -> list[dict]: """Return a summary list of all available IP cores, optionally filtered by category.""" results = [] for name, (manifest, core_dir) in self._cache.items(): if category and manifest.category != category: continue results.append({ "name": manifest.name, "version": manifest.version, "category": manifest.category, "description":manifest.description, "tags": manifest.tags, "language": manifest.language, "parameters": list(manifest.parameters.keys()), "path": str(core_dir), }) return results - server.py:157-169 (registration)Tool registration where 'list_ip_cores' is defined as an MCP tool with its input schema specifying an optional 'category' parameter for filtering IP cores.
types.Tool( name="list_ip_cores", description="List all available IP cores in the registry. Optionally filter by category.", inputSchema={ "type": "object", "properties": { "category": { "type": "string", "description": "Filter by category, e.g. 'communication' or 'memory'", }, }, }, ), - server.py:467-470 (handler)Tool dispatch logic that routes 'list_ip_cores' calls to registry.list_cores, passing the optional category argument and running asynchronously via asyncio.to_thread.
case "list_ip_cores": result = await asyncio.to_thread( registry.list_cores, category=arguments.get("category") )