A2A Agent Card · Vortx AI Private Limited

emem

emem is shared memory for AI agents working together in the real world. One agent writes down what it observed. Another agent reads the same bytes, not a summary of them. Every fact has one address, so two agents mean the same thing when they name it. Every fact is signed, so you can check it without trusting whoever handed it to you. Every fact says how it was produced, so you know what it is worth. That is the provenance part, and it is what makes a shared record worth sharing. Reads need no key and no account.

✓ Conformant with A2A 1.0.0. This card passes every structural check in the A2A specification’s AgentCard object — a capabilities object, a declared protocolVersion, and a well-formed skills array.
Provider: Vortx AI Private Limited Conformance: Conformant Protocol: 1.0 Transport: JSONRPC Version: 2.4.0 Host: emem.dev Skills: 113
Discovery

An A2A client finds this agent by fetching the well-known path on the provider's own host. That is what makes an agent card different from every other agent artifact in this catalog: it is provider-published by construction — it cannot be derived, generated, or reconstructed on a provider's behalf.

https://emem.dev/.well-known/agent-card.json
Interfaces
https://emem.dev/a2a/tasks · transport JSONRPC · protocol a2a-message-send
https://emem.dev/v1/a2a/tasks · transport HTTP+JSON · protocol a2a-async-tasks
https://emem.dev/v1/a2a/skills · transport HTTP+JSON · protocol a2a-skill-query
https://emem.dev/openapi.json · transport HTTP+JSON · protocol openapi-3.1
https://emem.dev/openapi.action.json · transport HTTP+JSON · protocol openapi-3.1-action
https://emem.dev/.well-known/emem.json · transport HTTP+JSON · protocol well-known-json
https://emem.dev/v1/agent_card · transport HTTP+JSON · protocol agent-card-v1
https://emem.dev/mcp · transport JSONRPC · protocol mcp-streamable-http
https://emem.dev/a2a/tasks · transport · protocol JSONRPC non-standard supportedInterfaces
Skills (113)

What tools exist here, and when to reach for each emem_tools

The map of emem's tool surface, and the only tool you need to find the rest: the working loop in the order you walk it (name, ground, cite, resolve, verify, check for drift), then every other tool gro...

introspectL0

Resolve place to cell64 + band inventory emem_locate

Mint the canonical, vendor-neutral address (cell64) for a real-world place: the shared spatial identity every agent resolves to identically, so two models refer to the same ground instead of two descr...

readL0

Ask a free-text question about a place emem_ask

Single-shot free-text answer about a real-world location, backed by signed satellite/elevation/water/built-up receipts.

readL0

Hunter mode, find event hotspots over a region emem_hunt

Event-discovery sweep: pick an event keyword (algal_bloom, deforestation, flood_extent, wildfire, urban_heat_island, methane_plume, landslide, drought, soil_salinity, crop_stress, water_turbidity, oil...

readL0

EUDR Due Diligence Statement, polygon-in, signed Annex II envelope out emem_eudr_dds

Produce a Due Diligence Statement per Regulation (EU) 2023/1115 for one or more plots.

readL0

Standardized Precipitation Index (McKee 1993) drought metric emem_spi

Compute the Standardized Precipitation Index (McKee et al.

readL0

Burn severity (dNBR, Key & Benson) from pre/post-fire NBR emem_burn_severity

Compute the differenced Normalized Burn Ratio (dNBR = NBR_pre − NBR_post; Key & Benson 2006) and map it to the USGS burn-severity classes (unburned / low / moderate-low / moderate-high / high).

readL0

Rice-paddy methane (IPCC 2019 Tier 2, Eq 5.1) emem_rice_ch4

Estimate seasonal CH4 emissions from rice cultivation per IPCC 2019 Refinement Eq 5.

readL0

Deforestation alert proxy (NDVI drop + embedding change) emem_deforestation_alert

Composite deforestation-alert score: `alert_score = 0.5·clamp01(ndvi_drop/0.30) + 0.5·clamp01(embedding_change/0.

readL0

Sentinel-1 SAR forest-disturbance scout (cloud-penetrating) emem_sar_forest_disturbance

Cloud- and night-independent Sentinel-1 C-band confirmation of forest disturbance.

readL0

Clay+Prithvi+Tessera change-consensus ensemble emem_triple_consensus

Three-encoder change ensemble: compute the cosine change between the two most-recent DISTINCT vintages for each of the Clay, Prithvi, and Tessera embeddings at the cell, then vote each encoder's chang...

readL0

Change attribution ledger: why did this place's readout move emem_change_attribution

The first runnable surface of the change decomposition Δz = Δ_env + Δ_sensor + Δ_geo + Δ_encoder + ε: a per-term evidence LEDGER for the readout change at a cell, with NO numeric split.

readL0

Band raster: a field as a signed derivation emem_band_raster

Return a native-resolution Sentinel-2 window over a bounding box as a FIELD, not a set of points: the pixels become one content-addressed grid artifact (deterministic f32 encoding; fetch the bytes at...

readL0

Dereference an emem:raster: field token emem_raster_resolve

Resolve emem:raster:::: back to its signed derivation record and the artifact's status.

readL0

Band cube: a field over time, as a signed manifest emem_band_cube

Mint an emem:cube: token: a Sentinel-2 field over an AOI ACROSS TIME.

readL0

Band composite: a signed cloud-masked median over a window emem_band_composite

Mint a signed, cloud-masked median composite over a date window as a raster-shaped field: the clean, gap-filled texture a world model actually drapes, rather than one cloudy scene.

readL0

Dereference an emem:cube: field-over-time token emem_cube_resolve

Resolve emem:cube:::..: back to its signed cube record and the ordered member emem:raster: tokens.

readL0

Raster bundle: bind N field tokens into one citeable manifest emem_raster_bundle

Mint an emem:rasterset: token: a signed manifest binding 2..

readL0

Dereference an emem:rasterset: bundle token emem_raster_bundle_resolve

Resolve emem:rasterset:: back to its signed manifest and verify it.

readL0

Terrain triad, slope + ruggedness + topographic position from DEM emem_terrain

Compute three standard DEM terrain indices from one 3×3 Copernicus-DEM (copdem30m.

readL0

Region similarity, cosine of two regions' mean GeoTessera embeddings emem_region_similarity

Answer 'how alike are these two places?' Mean-pool the 128-D GeoTessera embedding across each region's cells to get a centroid, then return the cosine similarity in [-1,1] (+1 = identical landscape, 0...

readL0

Embedding centroid, mean-pooled GeoTessera vector for a region emem_embedding_centroid

Mean-pool the 128-D GeoTessera embedding over a region's cells: centroid = (1/N) Σ v_i, plus the L2-normalised centroid and a content-addressed centroid_cid.

readL0

Embedding diversity, landscape heterogeneity over a region emem_embedding_diversity

Quantify how varied a region's landscape is: diversity = (1/(N(N-1))) Σ_{i readL0

Neighbourhood consistency / spatial outlier (GeoTessera vs 8 neighbours) emem_neighborhood_consistency

Score how much a cell looks like its surroundings: consistency = (1/8) Σ cosine(centre, neighbour_i) over the 8 immediate cell64 neighbours, plus outlier_score = 1 − consistency.

readL0

Read the place's state vector (single encoder OR full 1792-D cube) emem_state

Get one dense numeric fingerprint that summarises everything known about a place, ready to feed into similarity search, a classifier, or clustering.

readL0

Multi-encoder state at one cell (foundation fan-out) emem_state_multi

Get the place's fingerprint from several AI models at once (`geotessera`, `clay_v1`, `prithvi_eo2`, `galileo`) in one call, returned as a per-model map.

readL0

Between-tslot state vector delta (residual + cosine) emem_state_diff

Vector delta between the same cell at two tslots: returns the per-element residual, its L2 norm (scalar change-magnitude), the cosine between the two source vectors (orientation drift), and both sourc...

readL0

Compose a memory_token citation handle emem_memory_token

Mint a citation handle, `emem:fact::` (or `:`), that any agent or LLM resolves to the byte-identical signed object.

readL0

Find signed facts for a place, as citable sources search

Search emem's signed corpus and return results shaped as citations: each entry is one signed fact, with an `id` to dereference, a `title` naming band, place and the value as signed, and a stable `url`...

readL0

Open one search result and read the signed record fetch

Dereference an id from `search`: the reading in one line, then the signed body it came from, the URL serving those bytes, and metadata naming cell, band, signing time and key.

readL0

Dereference a memory_token in one round-trip emem_memory_token_resolve

Parse a `emem:fact::` citation handle and return the reading it cites.

readL0

Check a value against the fact it cites, before you publish it emem_echo_verify

Grade a value you are about to emit against the signed fact your citation points at. Returns `matches` and, when it does not, the `drift` between what you were about to say and what emem holds.

readL0

Register your own derivation over emem facts emem_derive

Register a value YOU computed from facts this responder holds, and get back a citeable `emem:fact:` token whose lineage terminates in emem-signed measurements.

writeL0

List one attester's registered derivations emem_derive_list

List the derivations registered by one ed25519 key, optionally filtered to a cell (and then a band).

readL0

Compose a signed multi-fact memory bundle emem_memory_bundle

Compose N (cell, band, tslot?) triples into ONE signed envelope.

readL0

Dereference a memory_bundle token emem_memory_bundle_resolve

Parse a `emem:bundle:` token and return the signed bundle envelope: every citation (cell, band, resolved_tslot, fact_cid, memory_token), the receipt, the responder pubkey, and the deduped...

readL0

Mint or get a canonical object identity emem_entity

Give a real-world object (a bridge, a farm plot, a river, a named place) a single, shared, content-addressed identity that any agent resolves the same way.

readL0

Resolve a phrase (or emem:entity: token) to a canonical object emem_entity_resolve

Find the objects agents have bound a phrasing to, ranked by INDEPENDENT corroboration, never arrival order.

readL0

Attest that a phrasing/id denotes an existing object emem_entity_link

Record a signed, ATTRIBUTED claim that a label or external id (GERS / OSM / Wikidata) denotes an existing object, or with `stance: "disputes"` that it does not.

writeL0

memory_view, read file or directory listing emem_memory_view

Read the contents of a memory file at `/memories/` or list a directory when the path ends with `/`. Optional `view_range: [start, end]` slices a 1-indexed inclusive line range out of the file.

readL0

memory_create, write a memory file (overwrite if exists) emem_memory_create

Write a memory file at `/memories/` with the supplied `file_text`. Overwrites if the file exists AND your key owns the path; a write over someone else's file is refused, not merged.

writeL0

memory_str_replace, exact-string replacement in a memory file emem_memory_str_replace

Replace `old_str` with `new_str` in the named memory file. Fails (no partial write) when `old_str` is absent or matches more than once. Writes a new content-addressed `file_cid` and signs the receipt.

writeL0

memory_insert, insert at a given line emem_memory_insert

Insert `new_str` after the given 1-indexed line in the named memory file. `insert_line: 0` inserts at the top. Writes a new `file_cid` and signs the receipt.

writeL0

memory_delete, remove a memory file or directory emem_memory_delete

Delete a memory file at `/memories/`. When the path ends with `/`, every file beneath the directory is removed.

writeL0

memory_supersede, mark your own note replaced by a later one emem_memory_supersede

Point one of your notes at the note that replaces it.

writeL0

memory_rename, move a memory file emem_memory_rename

Move (rename) a memory file from `old_path` to `new_path`. Both paths must stay under `/memories/`; `new_path` must not already exist.

writeL0

memory_list_by_kind, typed enumeration of memory files emem_memory_list_by_kind

List memory files by their typed `kind` (episodic | semantic | procedural | resource). Optional path prefix narrows the scan; results are sorted by signed_at descending.

readL0

emem_memory_search, semantic search over /memories/* files emem_memory_search

Semantic search over /memories/* file contents using BGE-base-en-v1.5 (768-D, L2-normalised) backed by a Lance partition (`memory_text_index_d768.lance`).

readL0

Signed snapshot of corpus liveness emem_corpus_state_stats

Signed snapshot of corpus liveness: distinct_cells, distinct_bands, facts_scanned, top per-band counts, manifest CIDs. Same payload that backs /v1/stream's corpus.state tick (signed).

readL0

Hand-verified eval items for agent grading emem_benchmark

Hand-verified evaluation items for grading an agent against the responder. Returns {items[], grader_url}. Submit answers (cell64 or fact_cid per item) to POST /v1/benchmark/grade for per-item scores.

readL0

Recall facts at a cell (auto-materializes on miss) emem_recall

Read the signed facts at a canonical address (cell64); auto-materializes on a miss for any band with a registered materializer.

readL0

Recall facts across a place's polygon emem_recall_polygon

Recall facts across every cell inside a place's polygon (single signed envelope). Closes the place-name-drift gap for wide features (parks, lakes, regions).

readL0

Per-field agricultural boundaries (Fields of The World) emem_field_boundaries

Per-field agricultural-boundary polygons from the Fields of The World global product (~3.17B fields, 241 countries, 10 m resolution, CC-BY-4.0).

readL0

Aggregate facts over a region emem_query_region

Query facts over a region (single cell or list of cells), optionally aggregated per band.

readL0

Compare two cells (cosine + scalar deltas) emem_compare

Compare two cells: cosine similarity over shared vector bands + per-band scalar deltas.

readL0

Compare two bands at one cell emem_compare_bands

Compare two bands at the same cell. Scalar pair → metric=delta, value=b-a. Vector pair (equal dim) → metric=cosine + per-dim delta. Returns a signed receipt naming both source fact CIDs.

readL0

k-NN over the corpus by embedding emem_find_similar

k-NN over the corpus by cell embedding or inline vector. Returns `neighbours` ordered nearest-first, each with `cell64`, `score` and the `band` scanned, plus a signed receipt over the vectors read.

readL0

Time series for one (cell, band) emem_trajectory

Time series for one (cell, band) over an inclusive [start, end] tslot window. Returns only what's already attested; it does NOT trigger materialization. For historical backfill use `emem_backfill`.

readL0

Signed delta between two tslots emem_diff

Compute a DerivativeFact (delta) between a band's values at two tslots. Memory algebra: the `diff` operation (https://emem.dev/docs/model.html).

readL0

Compare a band at the same day-of-year across years emem_compare_same_doy

Compare a band at the SAME day-of-year across several years, the honest way to measure year-over-year change on a seasonal band.

readL0

Scan for multi-attester disagreement emem_memory_contradictions

Surface where the corpus DISAGREES with itself (algebra: competing evidence).

readL0

Recall temporal knowledge-graph edges emem_edges_recall

Read temporal knowledge-graph edges (subj --pred--> obj, valid over [valid_from, valid_to)), bi-temporally filtered, in EITHER direction.

readL0

Resolve a fact by content-address (CID) emem_fetch

Fetch a fact by its content-address (CID). Returns the full signed Primary or Absence fact, the same body served by REST `/v1/facts/{cid}`.

readL0

Materialize historical facts in a window emem_backfill

Materialize and sign every per-tslot fact for one (cell, band) inside a [start_unix, end_unix] window. Returns a signed list of (tslot, fact_cid, status) for each step.

readL0

2-D heat-equation forecast (urban LST evolution) emem_heat_solve

Forward-step 2-D explicit finite-difference solver for the heat equation ∂u/∂t = α∇²u over a 3×3 cell stencil centred on `cell`. Reads `modis.

readL0

1-D shallow-water swell propagation to coast emem_wave_solve

Forward-step 1-D explicit finite-difference solver for the shallow-water wave equation ∂²u/∂t² = c²∂²u/∂x² with c² = g·h, where depth h comes from `gmrt.

readL0

Constrained JEPA-pattern next-month NDVI predictor emem_jepa_predict

Predict next-month NDVI at a cell using a constrained JEPA-pattern AR(2) seasonal predictor. Reads up to 24 past months of `indices.

readL0

Learned multi-band-scalar dynamics head (jepa_temporal_predictor@2) emem_jepa_predict_v2

Predict the next-step value of 4 environmental scalars at a cell (`indices.ndvi`, `modis.lst_day_8day`, `modis.lst_night_8day`, `cams.pm25`) using a small learned dynamics MLP.

readL0

Verify a structured claim against a cell emem_verify

Verify a structured claim against a cell's facts. Returns verdict + evidence CIDs + signed receipt.

verifyL1

Active band ontology emem_bands

Active band ontology (offsets, dims, tempo, privacy).

introspectL0

Active function registry emem_functions

Active function registry (derivation recipes).

introspectL0

Active source-connector registry emem_sources

Active source-connector registry (URL templates, providers, licenses).

introspectL0

Active CDDL/JSON schema bundle emem_schema

Active CDDL/JSON schema bundle by CID.

introspectL0

Stable error code catalog emem_errors

Stable error code catalog.

introspectL0

Active manifest CIDs emem_manifests

Active manifest CIDs (bands / functions / sources / schema).

introspectL0

Cached upstream capability snapshot emem_capabilities

Live capability snapshot of the responder's GPU sidecar, extensions[] (e.g. gpu, clay-v1.5, prithvi-eo2), cuda_available, models_loaded[], healthy, last_polled_unix_s.

introspectL0

Active grid encoding emem_grid_info

Active grid encoding: cell64 ground resolution, lat/lng axis sizes, DGGS lineage.

introspectL0

Enumerate the cell64s in a bounding box, paged emem_cells_in_bbox

Enumerate every cell64 whose centre falls in a bounding box, paged, in stable row-major order (north row first, then west column first).

introspectL0

Per-band live status & history bounds emem_coverage_matrix

Per-band live status, what data is alive AND auto-materializable, with history bounds, tempo cadence, and the responder pubkey that signs the band.

introspectL0

Auto-fetch registry (per-band materializers) emem_materializers

Auto-fetch registry: which bands the responder will materialize on a recall miss, the upstream provider, license, value shape, and history bounds.

introspectL0

Per-band temporal coverage catalog emem_data_availability

Temporal catalog: for every materializable band the upstream-of-record window the data genuinely covers, the temporal `kind` (static | annual_snapshot | annual_stack | time_series | now_only | per_rel...

introspectL0

Composition recipes (algorithms) emem_algorithms

Content-addressed dictionary of composition recipes, formulas that fuse attested band facts (and embeddings) into derived scores, classifications, and similarity metrics.

introspectL0

One-algorithm drill-down (formula + inputs + citation) emem_explain_algorithm

Per-key drill-down on a single composition recipe, full body (kind, inputs, formula, output, citation, references) for ONE algorithm key. Companion to `emem_algorithms` (which is the catalog).

introspectL0

Topic-grouped band + algorithm registry emem_topics

Topic-grouped registry of every band and algorithm at this responder, plus visual surfaces and the `declared_but_no_materializer_at_this_responder` block (cube slots reserved without a live connector).

introspectL0

Coverage map (SVG image) emem_coverage_map

Live SVG render of the responder's corpus density, returned as a proper MCP EmbeddedResource content block (image/svg+xml), multimodal MCP agents can render it natively.

introspectL0

Sentinel-2 true-colour thumbnail (PNG) emem_cell_scene_rgb

True-colour Sentinel-2 L2A RGB thumbnail centred on a cell. PNG returned as a native MCP ImageContent block (mimeType image/png).

readL0

Cell polygon as GeoJSON emem_cell_geojson

Cell polygon as a native MCP EmbeddedResource (mimeType application/geo+json).

readL0

Bulk recall across up to 256 cells emem_recall_many

Recall facts across a list of up to 256 cell64 strings in one round-trip. Server fans out per-cell recalls in parallel and returns them under `by_cell.`.

readL0

Coherent elevation across Cop-DEM + GMRT + WorldCover emem_elevation

One-shot elevation answer that fuses Cop-DEM 30 m (land), GMRT (ocean topobathy), and ESA WorldCover (water mask) into a single signed scalar at a place or coordinate.

readL0

Satellite / sensor lineage per band emem_fleet

Per-band satellite-and-sensor fleet inventory, names the upstream platform (e.g.

introspectL0

Substrate profile registry emem_substrates

The written admission contract per contributor class (satellite archive, operator constellation, telescope, microscope, CCTV, mobile, drone, robot, industrial machine, fixed sensor): which admission r...

introspectL0

Verify a device's OS execution trace emem_trace_verify

Stateless verification of an emem.os_trace.

verifyL1

Plan a temporal recall recipe for a cell emem_temporal_route

Turn a time-shaped question into a ready-to-run recall plan: it figures out WHICH bands to pull at WHICH past time windows (e.g.

planL0

Server-side ed25519 receipt verifier emem_verify_receipt

Verify a signed receipt envelope server-side: rebuilds the canonical preimage under the rule the receipt's own `preimage_version` names, runs ed25519 over the embedded key and signature, and returns `...

verifyL1

Check whether the citations in a draft actually verify emem_guard_verdict

Run emem-guard's policy pipeline over text you are about to send, against this responder's corpus.

verifyL1

The procedure for running your own verdict server emem_guard_selfhost

Returns the full emem-guard self-host skill as markdown, plus the exact build, test and run commands.

introspectL0

Multi-band snapshot at a place emem_at

One-shot recall of the signed facts at a place's cell64 (or lat/lng); each band carries a citeable fact_cid. Defaults to emem's standard at-a-glance band set; pass `band` / `bands` to override.

readL0

NDVI at a place (one-shot, polygon-aware) emem_ndvi

Recall the signed Sentinel-2 NDVI fact (indices.ndvi, 10 m native) at a place's canonical cell64, attesting it into the shared memory on a miss.

readL0

Air-quality snapshot (CAMS PM2.5 / NO2 / O3) emem_air

Recall the signed Copernicus CAMS air-quality facts (PM2.5 + NO2 + O3) at a place's cell64, attesting on a miss. Composes locate → recall → aggregate; each band carries a citeable fact_cid.

readL0

Land surface temperature (MODIS day + night) emem_lst

Recall the signed MODIS land surface temperature facts (day-8day + night-8day composites, 1 km native) at a place's cell64, attesting on a miss; each carries a citeable fact_cid.

readL0

Soil profile (SoilGrids 0–30 cm: SOC, pH, texture) emem_soil

Recall the signed SoilGrids 250 m profile at a place's cell64 (SOC, pH, clay/sand/silt fractions, bulk density, nitrogen, all at 0–30 cm depth), attesting on a miss; each band carries a citeable fac...

readL0

Surface water (JRC GSW recurrence + S1 backscatter) emem_water

Recall the signed surface-water facts at a place's cell64: JRC Global Surface Water recurrence (1984–2021) + Sentinel-1 SAR backscatter (current), attested on a miss and citeable by fact_cid.

readL0

Forest signals (Hansen GFC + ESA WorldCover) emem_forest

Recall the signed forest facts at a place's cell64: Hansen Global Forest Change (tree cover 2000 baseline + year-of-loss) + ESA WorldCover 2021 land class, attested on a miss; each carries a citeable...

readL0

Current weather snapshot (temperature, cloud, precip, wind) emem_weather

Recall the signed met.no/CAMS weather facts at a place's cell64 (2 m temperature + total cloud cover + precipitation + 10 m wind speed), attesting on a miss; each value carries a citeable fact_cid.

readL0

Intent-routed planner emem_intent

Say what you want in one typed object and get the answer, without choosing a primitive.

planL0

Transparency log signed tree head emem_log_sth

Fetch the responder-signed tree head (STH) over the whole append-only attestation log: {tree_size, root_b32, signed_at, responder_pubkey_b32, signature_b32}.

verifyL1

Transparency log inclusion proof emem_log_inclusion

Return an RFC 6962 inclusion (audit) proof that a log entry is committed under the current signed tree head. Verify offline: the audit path re-derives the STH root from the entry's leaf hash.

verifyL1

Transparency log consistency proof emem_log_consistency

Return an RFC 6962 consistency proof that the tree of size `first` is an append-only prefix of size `second` (defaults to the current size).

verifyL1

Transparency log witness co-signatures emem_log_witnesses

List witness co-signatures recorded for tree heads, independent parties that counter-signed a (tree_size, root) claim under their own ed25519 key.

verifyL1

Compose a prose answer over signed facts (LLM, labelled) emem_reason

The opt-in reasoning tier: grounds your question through emem_ask (deterministic, signed), then has the responder's local model compose a prose answer over that envelope.

planL0

Live street perception at a place perception_at

Counts per object class at a cell right now, from a retained camera clip whose sha256 is committed in a signed receipt. Answers what orbit cannot: a satellite revisits in days.

readrestdirect_sensor

Painted postcard of a place perception_postcard

A place painted from its own camera clip, one motif per object counted, with the cell, the count and the clip hash inside the file. Unobserved and empty are painted differently.

readrestdirect_sensor

Proceed or wait, for something that has to move perception_gonogo

Proceed-or-wait over what a street camera sees, for something that has to move. Returns the clip it reasoned from and its age. Undecidable returns wait. Not a safety system.

readrestmodel_output
Documentation
https://emem.dev/agents.md
Evidence. Fetched 2026-09-19 from https://emem.dev/.well-known/agent-card.json, HTTP 200. The body was saved verbatim and is the sole source for everything on this page — no field is inferred. View the captured card. Providers change what they serve; if this card has moved or changed shape, the provider profile carries the current state as of the last build.

Work with this as data

Every agent card here is available over the APIs.io API and to AI agents over MCP. A2A Agent Cards is not yet its own endpoint on the v1 API. Reach it through catalog search and the tag graph, or the MCP server.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for a2a agent cards

3 MCP tools reach this
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
Search the catalog
curl "https://apis.io/api/v1/search?q=emem-dev&limit=10"
Everything under a tag
curl "https://apis.io/api/v1/tags/emem-dev"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.