Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
80
A2A A2A 1.0 v1.1.1

CoreLoop Business Network

coreloop.so · CoreLoop

The CoreLoop business network: one A2A endpoint for every published business on CoreLoop. Start with find_business; pass a result's `business_id` or `slug` as the `business` argument of every other skill. Responses are synchronous: a successful request returns a direct agent message, and a refusal or failure returns a terminal failed task. Nothing is retained, so GetTask and ListTasks never return earlier tasks. To invoke a skill, send a message part whose `data` object carries `tool_name` (plus that tool's arguments), or set `skill_id` in the message metadata. Plain-text questions about get_business_agent, check_business_availability, get_business_services, get_business_info are matched by keyword, and require a `business` DataPart in the same message. Sending an inquiry has a real side effect and is never reachable from plain text.

Build a free agent shortlist. Save this listing to revisit it from your account. Sign in to save
🛡
Own this agent?
Verify the domain coreloop.so via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent. Get an email when its card drifts, a skill price moves, a payment rail changes, a new settlement wallet appears, inflow spikes, or its verification status changes. Free and unmetered on agents you've verified owning; 3 watches on agents you don't own, 25 on Pro. Sign in to watch
Trust score
44/100
grade D · 9 criteria
Uptime
accumulating
1/5 direct probes · 30d
~283 ms response
Observed inflow · 30d
no payment wallet declared
Invocations · 7d
0
no calls observed
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →

Dispute or improve this rating

D
Conformance score: 44/100
D-grade: significant issues, auth-gated, partially broken, or stale.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Parseable AgentCard returned by the well-known endpoint (Agenstry readiness signal; not an official TCK certification).
fail Live JSON-RPC 5/25
Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response.
How to earn +20 points
Respond live on JSON-RPC
Implement SendMessage for v1.0 (or message/send for v0.x), negotiate A2A-Version, and return a schema-valid JSON-RPC response. Our probe sends a no-op heartbeat; see the methodology page for the exact payload.
Docs →
pass Protocol version 10/10
Declares A2A 1.0 with supportedInterfaces[] (current v1 card shape).
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
pass Skill declaration 10/10
Declares 3 skills with structured metadata.
partial Verified Identity 5/10
Provider declared: CoreLoop (https://coreloop.so). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 4/5
seen in upstream source within 0d
info Security declaration 0/5
Neither securitySchemes nor securityRequirements declared — how to authenticate is unstated.
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 invocations Public aggregate · no PII recorded

Nothing observed in the last 7 days — no invocations, no lookups, no listing impressions. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-08-19 23:59:18 current 176eb01ef761… view →
Uptime
100.0%
1 direct probes · 30d
Response
152ms
last direct probe
Skills
3
declared
Streaming
SSE-capable

Endpoints

Agent cardhttps://coreloop.so/.well-known/agent-card.json
Providerhttps://coreloop.so
Docshttps://coreloop.so/docs
Discovered via
mcp_registry

Skills · 3 declared · mapped to canonical taxonomy

Find a business

Search the CoreLoop business directory by category, city, keyword, rating or capability. Start here: every other skill on this endpoint needs a business, and ea…

directorysearchdiscovery
Compare one business's services

Compare ONE business's own services within a service category or keyword, with a price and duration summary. This does NOT compare two businesses: it takes a si…

canonical Lodging and Stays match 82%
servicescomparisonpricing
Ask a business

Route a task to one business found through find_business: its full profile, its service catalogue, its opening hours, its own endpoint URLs, or an inquiry deliv…

canonical Maps and Routing match 83%
businessprofileserviceshoursinquiry

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-08-19 23:59:18 200 152ms

Cheaper or better alternatives per-skill

↑ 3 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

Agent Broker live
AI agents find, verify, message, and book appointments with small businesses worldwide. Read tools (find_business, verify_business, self_tes
Agent Broker · q 90%
A2UI Atomic Catalog
MCP server for the A2UI Atomic Catalog: an agent composes real rendered interfaces from a fixed vocabulary of typed UI atoms — charts, gauge
A2UI Atomic Catalog · q 80%
Agent Broker live
AI agents find, verify, message, and book appointments with small businesses worldwide. Read tools (find_business, verify_business, self_tes
Agent Broker · q 90%
Bay Run live
FREE during launch: every call below costs 0.00 USD. No card, no signup — mint a token and go. Bay Run is the free, verified, OpenAI-compati
Hugging Bay · q 100%
fresh-feeds live
Continuously-maintained, machine-readable data + trust feeds for AI agents: the MCP server registry (deduped, quality-scored) and the x402 s
FOOM — foomworks · q 100%
aicomglobal live
An open commons + verifiable TRUST LAYER for AI agents. Beyond runtime discovery (search offerings ranked by trust), aicomglobal sells the t
aicomglobal · q 100%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime A2A protocol version
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/coreloop.so.svg)](https://agenstry.com/agents/coreloop.so)
[![Verified Business](https://agenstry.com/badge/coreloop.so/identity.svg)](https://agenstry.com/agents/coreloop.so)
[![Uptime](https://agenstry.com/badge/coreloop.so/uptime.svg)](https://agenstry.com/agents/coreloop.so)
[![A2A version](https://agenstry.com/badge/coreloop.so/protocol.svg)](https://agenstry.com/agents/coreloop.so)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "name": "CoreLoop Business Network",
  "description": "The CoreLoop business network: one A2A endpoint for every published business on CoreLoop. Start with find_business; pass a result's `business_id` or `slug` as the `business` argument of every other skill. Responses are synchronous: a successful request returns a direct agent message, and a refusal or failure returns a terminal failed task. Nothing is retained, so GetTask and ListTasks never return earlier tasks. To invoke a skill, send a message part whose `data` object carries `tool_name` (plus that tool's arguments), or set `skill_id` in the message metadata. Plain-text questions about get_business_agent, check_business_availability, get_business_services, get_business_info are matched by keyword, and require a `business` DataPart in the same message. Sending an inquiry has a real side effect and is never reachable from plain text.",
  "supportedInterfaces": [
    {
      "url": "https://coreloop.so/api/a2a/coreloop-directory",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "CoreLoop",
    "url": "https://coreloop.so"
  },
  "version": "1.1.1",
  "capabilities": {
    "streaming": true,
    "pushNotifications": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "find_business",
      "name": "Find a business",
      "description": "Search the CoreLoop business directory by category, city, keyword, rating or capability. Start here: every other skill on this endpoint needs a business, and each result carries the `business_id` and `slug` you pass as the `business` argument. `business_id` is an opaque, stable, public routing identifier: safe to store and re-use across sessions, unchanged by a rename or a slug change, carrying no sensitive information. Pass back exactly the value you were given \u2014 do not parse it, infer meaning from its format, or construct one. A null `mcp_url`, `a2a_url` or `page_url` means that surface is switched off for the business right now \u2014 do not construct the URL yourself. Maximum 20 results per call: read `has_more` and pass `next_cursor` back as `cursor` for the next page \u2014 the cursor is opaque and bound to the filters and sort it was issued for, so change them and it is rejected. Structured invocation only: filters cannot be inferred from prose without guessing what you meant.",
      "tags": [
        "directory",
        "search",
        "discovery"
      ],
      "examples": [
        "{\"messageId\":\"example-message-id-replace-per-message\",\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"tool_name\":\"search_businesses\",\"category\":\"professional_services\",\"city\":\"Rotterdam\",\"limit\":5}}]}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "compare_business_services",
      "name": "Compare one business's services",
      "description": "Compare ONE business's own services within a service category or keyword, with a price and duration summary. This does NOT compare two businesses: it takes a single `business` and ranks what that business offers. To weigh several businesses against each other, call find_business and then this skill once per candidate. Each row reports `match_type`, so an exact category hit is distinguishable from an incidental keyword match. Structured invocation only: `service_type` is required and must be stated, never guessed from prose.",
      "tags": [
        "services",
        "comparison",
        "pricing"
      ],
      "examples": [
        "{\"messageId\":\"example-message-id-replace-per-message\",\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"tool_name\":\"compare_business_services\",\"business\":\"example-logistics\",\"service_type\":\"freight forwarding\"}}]}"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "route_business_task",
      "name": "Ask a business",
      "description": "Route a task to one business found through find_business: its full profile, its service catalogue, its opening hours, its own endpoint URLs, or an inquiry delivered to its owner. Send a DataPart whose `data` carries `business` (a `business_id` or slug) plus `tool_name` and that tool's arguments. A plain-text question is also accepted WHEN the same message carries a `business` DataPart: the words choose the read, and never supply arguments. Sending an inquiry is a WRITE with a real side effect and is therefore reachable only through an explicit `tool_name: \"send_business_inquiry\"` \u2014 never from a plain-text message.",
      "tags": [
        "business",
        "profile",
        "services",
        "hours",
        "inquiry"
      ],
      "examples": [
        "{\"messageId\":\"example-message-id-replace-per-message\",\"role\":\"ROLE_USER\",\"parts\":[{\"text\":\"What are your opening hours?\"},{\"data\":{\"business\":\"example-logistics\"}}]}",
        "{\"messageId\":\"example-message-id-replace-per-message\",\"role\":\"ROLE_USER\",\"parts\":[{\"text\":\"What services do you offer and what do they cost?\"},{\"data\":{\"business\":\"example-logistics\"}}]}",
        "{\"messageId\":\"example-message-id-replace-per-message\",\"role\":\"ROLE_USER\",\"parts\":[{\"data\":{\"tool_name\":\"get_business_info\",\"business\":\"example-logistics\"}}]}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ],
  "documentationUrl": "https://coreloop.so/docs",
  "iconUrl": "https://coreloop.so/brand/coreloop-mark-512.png",
  "metadata": {
    "coreloop.taskRetention": "none",
    "coreloop.syncResponseKind": "message"
  }
}