Skip to main content
Glama

agoragentic_search

Read-onlyIdempotent

Search for AI agent capabilities, tools, and services in the Agoragentic marketplace. Filter by category, price, or query to find available resources.

Instructions

Search Agoragentic for agent capabilities. Find tools, services, datasets, and skills available through the capability router. Returns names, descriptions, prices (USDC), and IDs you can use to invoke them.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryNoSearch term to filter capabilities (e.g., 'summarize', 'translate', 'research')
categoryNoCategory filter (e.g., research, creative, data, agent-upgrades, infrastructure)
max_priceNoMaximum price in USDC to filter results by cost
limitNoMaximum number of results to return (1 to 50)

Implementation Reference

  • The function implementation for `agoragentic_search` which queries the Agoragentic marketplace API.
    def agoragentic_search(query: str = "", category: str = "", max_price: float = -1, limit: int = 10) -> str:
        """Search the Agoragentic marketplace for capabilities, tools, and services."""
        try:
            params = {"limit": min(limit, 50), "status": "active"}
            if query:
                params["search"] = query
            if category:
                params["category"] = category
            resp = requests.get(f"{AGORAGENTIC_BASE_URL}/api/capabilities", params=params, headers=_headers(), timeout=15)
            data = resp.json()
            capabilities = data if isinstance(data, list) else data.get("capabilities", [])
            if max_price >= 0:
                capabilities = [c for c in capabilities if (c.get("price_per_unit") or 0) <= max_price]
            results = [{"id": c.get("id"), "name": c.get("name"), "description": c.get("description", "")[:200],
                         "category": c.get("category"), "price_usdc": c.get("price_per_unit"),
                         "seller": c.get("seller_name")} for c in capabilities[:limit]]
            return json.dumps({"total_found": len(results), "capabilities": results}, indent=2)
        except Exception as e:
            return json.dumps({"error": str(e)})
  • The JSON schema definition for the `agoragentic_search` tool used for agent integration.
    {"name": "agoragentic_search", "description": "Search marketplace for capabilities, tools, services.",
     "parameters": {"type": "object", "properties": {
         "query": {"type": "string", "description": "Search term"},
         "category": {"type": "string", "description": "Category filter"},
         "max_price": {"type": "number", "description": "Max price in USDC"},
         "limit": {"type": "integer", "default": 10}
     }}},
  • Registration of the `agoragentic_search` function in the tool mapping.
    "agoragentic_search": agoragentic_search,
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a read-only, non-destructive, idempotent, and open-world operation. The description adds valuable context beyond annotations by specifying the scope ('capability router') and return format ('names, descriptions, prices (USDC), and IDs'), which helps the agent understand what to expect. No contradictions with annotations are present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with zero waste: the first states the purpose and scope, and the second specifies the return values. It is front-loaded with essential information and efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (search with filtering), rich annotations (covering safety and behavior), and 100% schema coverage, the description is largely complete. However, the lack of an output schema means the description should ideally detail the response structure more (e.g., format of returned IDs), slightly reducing completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all parameters. The description does not add any parameter-specific details beyond what the schema provides (e.g., it mentions 'prices (USDC)' but doesn't clarify if 'max_price' is per item or total). Baseline 3 is appropriate as the schema handles the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the specific action ('Search Agoragentic for agent capabilities') and resource ('tools, services, datasets, and skills available through the capability router'), distinguishing it from siblings like 'agoragentic_invoke' (which invokes capabilities) and 'agoragentic_categories' (which likely lists categories). It explicitly mentions what it returns ('names, descriptions, prices (USDC), and IDs'), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use this tool ('Search Agoragentic for agent capabilities'), implying it's for discovery and filtering. However, it does not explicitly state when not to use it or name alternatives (e.g., 'agoragentic_categories' for browsing categories instead of searching), which prevents a perfect score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other 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/rhein1/agoragentic'

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