# Tiza Search — Agent Integration Guide

**https://tiza.cc**

Tiza Search is a universal discovery layer for public agents, MCP servers, A2A agents, and callable AI services. Agents can use Tiza Search to find the right tool or agent for any task without knowing what exists in advance.

## How Tiza ensures quality

Every service in the index has been validated before it can appear in search results. Tiza continuously crawls, probes, and monitors every listed service:

- **Protocol testing** — MCP servers go through a real handshake (initialize + tools/list). A2A agents have their agent card fetched and validated. Services that do not respond correctly are not indexed.
- **Connectivity monitoring** — indexed services are re-tested every 24 hours. Services that fail for more than five days are automatically de-indexed.
- **Quality ranking** — results are ranked by semantic relevance to your query (dense retrieval + cross-encoder reranking), live connectivity status, metadata completeness, publisher verification signals, and freshness. Low-quality tail results are filtered out rather than shown.
- **Operability classification** — each result carries a structured readiness assessment: whether an agent can connect immediately, whether a user account is required, whether credentials must be supplied, and more.

You can trust that results marked `ready` have a live, tested endpoint an agent can call right now.

---

## Integration options

- [1. MCP server](#1-mcp-server) — recommended for MCP-capable agents
- [2. A2A protocol](#2-a2a-protocol) — for A2A-capable agents
- [3. REST API](#3-rest-api) — for any HTTP client

---

## 1. MCP server

**Endpoint:** `https://tiza.cc/mcp`  
**Transport:** Streamable HTTP (MCP protocol version 2025-03-26)  
**Auth:** None required

Add to your MCP client configuration:

```json
{
  "mcpServers": {
    "tiza-search": {
      "type": "http",
      "url": "https://tiza.cc/mcp"
    }
  }
}
```

### Tool: `search_agents`

Finds public agents, MCP servers, A2A agents, and callable AI tools that match a natural language description of a task or capability.

**Parameters:**

| Parameter | Type | Required | Description |
|---|---|---|---|
| `query` | string | Yes | Natural language task or tool description. Max 500 characters. |
| `protocols` | array | No | Filter by protocol: `"mcp"`, `"a2a"`, `"openapi"`, `"asyncapi"`, `"graphql"`, `"agntcy"`, `"llms_txt"`, `"legacy_plugin"`, `"unknown"` |
| `limit` | integer | No | Max results (default 10, max 20) |
| `readiness` | array | No | Filter by operability readiness: `"ready"`, `"agent_onboarding"`, `"user_onboarding"`, `"credentials_required"`, `"local_required"`, `"not_usable"`, `"unknown"` |
| `deployment` | array | No | Filter by deployment mode: `"remote"`, `"local_package"`, `"local_container"`, `"local_source"`, `"local_manual"`, `"unknown"` |
| `authentication` | array | No | Filter by auth requirement: `"none"`, `"oauth"`, `"credential"`, `"manual"`, `"unknown"` |
| `connectivity` | array | No | Filter by live probe result: `"live"`, `"metadata_only"`, `"unreachable"`, `"not_tested"` |

**Example — find a ready, no-auth MCP server:**

```
search_agents({
  query: "send messages to a Slack channel",
  protocols: ["mcp"],
  readiness: ["ready"],
  authentication: ["none"],
  limit: 5
})
```

**Example response (abbreviated):**

```json
{
  "total": 3,
  "results": [
    {
      "id": "ent_abc123",
      "name": "Slack MCP Server",
      "type": "mcp_server",
      "description": "Send and read Slack messages via MCP.",
      "protocols": ["mcp"],
      "endpointUrl": "https://slack-mcp.example.com/mcp",
      "operability": {
        "readiness": "ready",
        "dimensions": {
          "protocol": "mcp",
          "security": "secure",
          "authentication": "oauth",
          "onboarding": "user_self_serve",
          "deployment": "remote",
          "connectivity": "live"
        }
      },
      "lastSeenAt": "2026-06-10T00:00:00Z"
    }
  ]
}
```

---

## 2. A2A protocol

**Endpoint:** `https://tiza.cc/a2a/jsonrpc`  
**Transport:** JSON-RPC 2.0 over HTTP POST  
**Version:** 1.0  
**Auth:** None required

Always include the header: `A2A-Version: 1.0`

**Agent Card (auto-discovery):** `https://tiza.cc/.well-known/agent-card.json`

### Supported methods

| Method | Description |
|---|---|
| `SendMessage` | Send a search request and receive results as a completed task |
| `GetTask` | Retrieve a previously completed task by ID |
| `ListTasks` | List recent completed tasks with optional filtering |
| `CancelTask` | Not supported — tasks complete synchronously |
| `GetExtendedAgentCard` | Returns the full agent capability description |

### SendMessage

Tasks complete synchronously. You can send plain text or a structured JSON part.

**Option A — plain text:**

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "SendMessage",
  "params": {
    "message": {
      "messageId": "msg-001",
      "role": "ROLE_USER",
      "parts": [
        { "text": "Find an MCP server that can search GitHub issues" }
      ]
    }
  }
}
```

**Option B — structured JSON part (supports protocol and limit):**

```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "SendMessage",
  "params": {
    "message": {
      "messageId": "msg-002",
      "contextId": "ctx-session-abc",
      "role": "ROLE_USER",
      "parts": [
        {
          "data": {
            "query": "GitHub issues search",
            "protocols": ["mcp"],
            "limit": 5
          },
          "mediaType": "application/json"
        }
      ]
    }
  }
}
```

**Response structure:**

```json
{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "task": {
      "id": "task-uuid",
      "contextId": "ctx-session-abc",
      "status": {
        "state": "TASK_STATE_COMPLETED",
        "timestamp": "2026-06-12T10:00:00.000Z",
        "message": {
          "messageId": "reply-uuid",
          "role": "ROLE_AGENT",
          "parts": [
            { "text": "1. GitHub MCP Server (mcp): ...", "mediaType": "text/plain" }
          ]
        }
      },
      "artifacts": [
        {
          "artifactId": "artifact-uuid",
          "name": "search-results",
          "parts": [
            { "data": { "total": 3, "results": [] }, "mediaType": "application/json" },
            { "text": "1. GitHub MCP Server (mcp): ...", "mediaType": "text/plain" }
          ]
        }
      ]
    }
  }
}
```

### GetTask

```json
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "GetTask",
  "params": { "id": "task-uuid", "historyLength": 2 }
}
```

### ListTasks

```json
{
  "jsonrpc": "2.0",
  "id": 4,
  "method": "ListTasks",
  "params": {
    "contextId": "ctx-session-abc",
    "pageSize": 10,
    "includeArtifacts": false
  }
}
```

### Error codes

| Code | Meaning |
|---|---|
| -32700 | Invalid JSON |
| -32600 | Request payload validation error |
| -32601 | Method not found |
| -32602 | Invalid parameters |
| -32603 | Internal error |
| -32001 | Task not found |
| -32002 | Task not cancelable |
| -32004 | A2A version not supported |

---

## 3. REST API

**Endpoint:** `https://tiza.cc/api/search`  
**Method:** POST  
**Auth:** None required

**Request body:**

```json
{
  "query": "string (required, max 500 chars)",
  "protocols": ["mcp", "a2a", "openapi", ...],
  "filters": {
    "readiness": ["ready", "agent_onboarding", ...],
    "deployment": ["remote", "local_package", ...],
    "authentication": ["none", "oauth", "credential", ...],
    "connectivity": ["live", "metadata_only", ...],
    "verified": true
  },
  "limit": 10,
  "offset": 0
}
```

**Example:**

```bash
curl -X POST https://tiza.cc/api/search \
  -H "Content-Type: application/json" \
  -d '{
    "query": "book a flight or manage travel itineraries",
    "protocols": ["a2a"],
    "filters": { "readiness": ["ready"] },
    "limit": 5
  }'
```

---

## Search result fields

| Field | Description |
|---|---|
| `id` | Stable entity identifier |
| `name` | Display name |
| `type` | `"mcp_server"`, `"a2a_agent"`, `"openapi_service"`, etc. |
| `description` | Short capability description |
| `protocols` | Detected protocols |
| `endpointUrl` | Primary callable endpoint URL |
| `score` | Combined relevance + quality score (0–1) |
| `matchReasons` | Human-readable reasons this result was returned |
| `operability.readiness` | `"ready"`, `"agent_onboarding"`, `"user_onboarding"`, `"credentials_required"`, `"local_required"`, `"not_usable"`, `"unknown"` |
| `verificationStatus` | `"unverified"`, `"verified"`, `"trusted"` |
| `lastSeenAt` | Last time the entity was confirmed live |

---

## About Tiza Search

**Website:** https://tiza.cc  
**A2A Card:** https://tiza.cc/.well-known/agent-card.json  
**MCP Server:** https://tiza.cc/mcp  
**This document:** https://tiza.cc/agent-docs.md
