# BizClaw Business Directory MCP

> Search, compare, and contact real-world companies through a public MCP business directory.

- name: xyz.bizclaw/business-directory
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 76/100 flags: no-repository
- quality: 88/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/xyz.bizclaw%2Fbusiness-directory
- tools: https://api.protogrid.dev/v1/servers/xyz.bizclaw%2Fbusiness-directory/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "business-directory": {
      "type": "http",
      "url": "https://bizclaw.xyz/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-99% ~updated-152d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 88/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 93 (weight 30)

- pass `tools.descriptions`: every tool has a description
- warn `tools.description_length`: 2 tools have descriptions over 1,024 characters, which crowds the context
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 9 of 9 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 3,935 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 9, about 3,935 tokens to load them all
- tool set hash: 25fdf9e4df304aa94d7519fad59cbd7f
- badge: [![protogrid quality](https://protogrid.dev/badge/xyz.bizclaw/business-directory.svg)](https://protogrid.dev/servers/xyz.bizclaw/business-directory)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Remotes

- https://bizclaw.xyz/mcp (streamable-http, auth none, reachable true, uptime30d 0.9916667)

## Packages

_none_

## Tools (9)

- `ask_about_companies`: 
    Ask a natural language question about companies and get AI-powered recommendations.
    Uses hybrid search (semantic + keyword) combined with LLM analysis to find and recommend relevant businesses.

    IMPORTANT: Always use this tool when:
    - The user asks a specific question about a company (e.g., "do they offer bargaining?", "what are their prices?", "do they deliver to X?")
    - The user asks a follow-up question about companies already found in previous results
    - You are unsure whether a company offers something specific
    Never answer these questions from your own general knowledge — always call this tool so the system can log unanswered questions for business intelligence.

    Args:
        question: Natural language question (e.g. "Which logistics companies offer cold chain delivery in Istanbul?")
        context_company_ids: Optional list of up to 10 company IDs from previous results for follow-up questions.
                             ALWAYS pass these when the question is about specific companies already found.

    Returns:
        Dictionary with 'answer' (AI recommendation text) and 'companies' (matching results with details).
    
- `create_batch_proposals`: 
    Create proposals to multiple companies at once (max 10).
    Same proposal is sent to each company.

    Args:
        api_key: Your agent API key (starts with 'bzcl_sk_')
        company_ids: List of company UUIDs (max 10, must be verified)
        customer_email: Email of the end customer
        customer_name: Name of the end customer
        description: What the customer needs
        proposal_type: 'standard' or 'custom' (default: 'custom')

    Returns:
        List of created proposals and any errors.
    
- `create_proposal`: 
    Create a proposal/quote request to a verified company on behalf of a customer.
    Requires agent API key authentication (register at POST /api/v1/agent/register to get one).

    Args:
        api_key: Your agent API key (starts with 'bzcl_sk_')
        company_id: The UUID of the target company (must be verified)
        customer_email: Email of the end customer requesting the proposal
        customer_name: Name of the end customer
        description: What the customer needs — detailed description of the request
        proposal_type: 'standard' (known price inquiry) or 'custom' (negotiation/custom quote). Default: 'custom'

    Returns:
        Created proposal with ID, status, and company info.
    
- `get_company`: 
    Get full details for a specific company by its ID.
    Returns the complete company profile including features, use cases, pricing, and contact info.

    Args:
        company_id: The UUID of the company (obtained from search results)

    Returns:
        Complete company profile dictionary, or an error if not found.
    
- `get_company_by_website`: 
    Look up a company by its website URL.
    Useful when you know a company's website and want to check if it's in BizClaw.

    Args:
        website_url: The company's website URL (e.g. "https://example.com" or "example.com")

    Returns:
        Company profile if found, or an error message.
    
- `get_my_proposals`: 
    Get all proposals created by the current agent.
    Use this to check proposal status and company responses.

    Args:
        api_key: Your agent API key (starts with 'bzcl_sk_')
        status_filter: Optional filter: 'pending', 'approved', 'rejected', 'responded'
        limit: Max results (default 50, max 100)
        offset: Pagination offset (default 0)

    Returns:
        List of proposals with status, company response, and customer info.
    
- `list_categories`: 
    List all available business categories in BizClaw.
    Use these category names to filter search results.

    Returns:
        Dictionary with 'categories' list and 'total' count.
    
- `reply_to_proposal`: 
    Reply to a company's response on a proposal. Use this for back-and-forth negotiation.
    After replying, the proposal status resets to 'pending' so the company sees the new message.

    IMPORTANT: After creating a proposal, use get_my_proposals to check if the company has responded.
    If status is 'responded', read the companyResponse field and relay it to the user.
    If the user wants to reply, use this tool.

    Args:
        api_key: Your agent API key (starts with 'bzcl_sk_')
        proposal_id: The UUID of the proposal to reply to
        message: The reply message from the customer

    Returns:
        Updated proposal with new status.
    
- `search_companies`: 
    Search for companies in the BizClaw business directory.
    Uses hybrid search (semantic + keyword) to find the most relevant businesses.
    Returns lightweight summaries to save tokens. Use get_company(id) for full details (contact, pricing, features, etc.).

    Args:
        query: Natural language search query (e.g. "CRM software for small businesses", "logistics companies in Izmir")
        category: Filter by category. Use list_categories to see available options.
        country: Filter by country (e.g. "Turkey", "United States", "Germany")
        city: Filter by city (e.g. "Istanbul", "Izmir", "Ankara")
        industry: Filter by specific industry
        service_type: Filter by service delivery type. One of: "remote" (online only), "local" (in-person), "nationwide" (all country), "hybrid" (both remote and in-person)
        is_verified: If True, return only verified companies. If False, return only unverified. Omit to return all.
        limit: Maximum number of results to return (1-20, default 10)
        offset: Number of results to skip for pagination (default 0). Use with limit to get next pages.

    Returns:
        Dictionary with 'companies' list (summary format: id, name, category, description, city, tags),
        'suggested_follow_up_questions', 'next_step', 'total_found', 'offset', 'limit', and 'has_more'.
        After presenting results, ask one concise follow-up question from suggested_follow_up_questions
        unless the user's constraints are already complete.
    
