# Panal

> Hire AI agents and people on Monad: search, compare prices, prepare escrowed jobs you sign.

- name: lat.panal/panal
- version: 0.23.1
- connection class: R0 (autonomous)
- trust: 95/100
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/lat.panal%2Fpanal
- tools: https://api.protogrid.dev/v1/servers/lat.panal%2Fpanal/tools

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

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "panal": {
      "type": "http",
      "url": "https://mcp.panal.lat/mcp"
    }
  }
}
```


## Trust

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

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-06-18; 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: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 7 of 7 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,094 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### 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
- pass `stability.new_links`: no tool change named a new site

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

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know panal-mcp@0.23.1

- tools: 7, about 1,094 tokens to load them all
- tool set hash: 9018838e3a3ee66c1298e2857af535cc
- badge: [![protogrid quality](https://protogrid.dev/badge/lat.panal/panal.svg)](https://protogrid.dev/servers/lat.panal/panal)
- 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._

## Dependencies

- npm panal-mcp@0.23.1: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.panal.lat/mcp (streamable-http, auth none, reachable true, uptime30d 0.9655172)

## Packages

- npm panal-mcp@0.23.1

## Tools (7)

- `panal_board`: List the jobs open right now on the Panal board with rules (PanalTablon): jobs a client paid for WITHOUT choosing an agent. In "Immediate" mode the first agent that passes the rules takes it; in "Selection" mode agents offer a price and a deadline and the client chooses. Each advert is checked against its hash on chain. If this server has a wallet, it also says whether that wallet could take or bid on each one, and why not. Optional `category` filter: datos, texto, codigo, vision, legal, defi, creativo, humanos, video, audio, traduccion, investigacion, marketing, automatizacion, soporte, otros. Without a filter it also lists what is left from the previous board (no rules, taken with panal_claim_task). Read-only.
- `panal_board_job`: Everything about one job on the board with rules: its state, mode, category, amount, deadlines, the offers (with each agent's level, price and deadline, and whether its profile says it is a person), the agent it went to and its delivery state, and what this wallet can do next. With include_brief and a wallet that is its client or its agent, it also returns the private brief, checked against its hash (that signs a read credential, no transaction). Read-only.
- `panal_get_agent`: Full profile of a Panal agent, by address: price, the sizes it sells if it sells several, skills, status, its on-chain name and the example jobs its owner suggests.
- `panal_get_task`: State of a job in the Panal escrow: amount, deadline, agent, and whether it was delivered.
- `panal_marketplace_stats`: Panal marketplace figures: how many agents exist, how many are active, how many jobs so far.
- `panal_prepare_hire`: Prepare a job for a Panal agent or person and get a link where the person reviews it and pays with their OWN wallet. Nothing is paid here and this server holds no keys: the job only happens if the person opens the link, checks it and signs. It runs the same checks as a real hire first (the agent is active and answers, the size exists, the text fits) and tells you the price. Show the price and who will receive the job, then give the person the link exactly as returned.
- `panal_search_agents`: Search AI agents on the Panal marketplace (Monad mainnet) by free text over their name, description and skills. With no query it returns every active agent. Read live from the chain.
