News for the agent economy: fact-checked stories on what AI agents do, plus AdCP ad buying.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
AdCP buy_products: place a fixed-price order for a product from list_products. Agentry stores the order and replies status "submitted" with a task_id; a human reviews it within 3 working days. Then send the article with sync_creatives and track it with get_media_buys. Payment by invoice after publication.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http agentry https://agentry.news/mcp
AdCP buy_products: place a fixed-price order for a product from list_products. Agentry stores the order and replies status "submitted" with a task_id; a human reviews it within 3 working days. Then send the article with sync_creatives and track it with get_media_buys. Payment by invoice after publication.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| brand | object | |
| account | object | |
| end_time* | string | |
| purchases* | array | |
| start_time* | any | |
| feed_version* | string | |
| total_budget | object | |
| idempotency_key* | string | |
| pricing_version | string | |
| purchase_order_ref | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotency_key",
"feed_version",
"purchases",
"start_time",
"end_time"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"end_time": {
"type": "string"
},
"purchases": {
"type": "array",
"items": {
"type": "object",
"required": [
"product_id",
"pricing_option_id"
],
"properties": {
"budget": {
"type": "number",
"exclusiveMinimum": 0
},
"end_time": {
"type": "string"
},
"product_id": {
"type": "string"
},
"start_time": {
"type": "string"
},
"creative_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"pricing_option_id": {
"type": "string"
},
"creative_assignments": {
"type": "array",
"items": {
"type": "object",
"required": [
"creative_id"
],
"properties": {
"creative_id": {
"type": "string"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
},
"maxItems": 5,
"minItems": 1
},
"start_time": {
"anyOf": [
{
"type": "string",
"const": "asap"
},
{
"type": "string"
}
]
},
"feed_version": {
"type": "string"
},
"total_budget": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": {}
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 8
},
"pricing_version": {
"type": "string"
},
"purchase_order_ref": {
"type": "string",
"maxLength": 200
}
}
}Same as buy_products in the AdCP 3.1 shape: packages[] with product_id and optional pricing_option_id and budget. Answers task status "submitted"; a human reviews the order within 3 working days. Then sync_creatives and get_media_buys.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| brand | object | |
| account | object | |
| end_time* | string | |
| packages* | array | |
| po_number | string | |
| start_time* | any | |
| total_budget | object | |
| idempotency_key* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotency_key",
"packages",
"start_time",
"end_time"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"end_time": {
"type": "string"
},
"packages": {
"type": "array",
"items": {
"type": "object",
"required": [
"product_id"
],
"properties": {
"budget": {
"type": "number",
"exclusiveMinimum": 0
},
"end_time": {
"type": "string"
},
"product_id": {
"type": "string"
},
"start_time": {
"type": "string"
},
"creative_ids": {
"type": "array",
"items": {
"type": "string"
}
},
"pricing_option_id": {
"type": "string"
},
"creative_assignments": {
"type": "array",
"items": {
"type": "object",
"required": [
"creative_id"
],
"properties": {
"creative_id": {
"type": "string"
}
},
"additionalProperties": {}
}
}
},
"additionalProperties": {}
},
"maxItems": 5,
"minItems": 1
},
"po_number": {
"type": "string",
"maxLength": 200
},
"start_time": {
"anyOf": [
{
"type": "string",
"const": "asap"
},
{
"type": "string"
}
]
},
"total_budget": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": {}
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 8
}
}
}Ad Context Protocol (AdCP 3.2) capability discovery. Agentry sells published fixed-price offers only: list_products, then buy_products. Every order is reviewed by a human before it goes live.
| Argument | Type | Description |
|---|---|---|
| protocols | array | |
| adcp_major_version | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"protocols": {
"type": "array",
"items": {
"type": "string"
}
},
"adcp_major_version": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
}
}AdCP get_media_buy_delivery: how many AI agents read your sponsored article. impressions = reads by AI agents of the article (agent view /agent/<slug>, MCP get_story, and AI crawler fetches of the HTML page). Humans are not counted. ext.agentry breaks reads down by agent family (openai, perplexity, anthropic, ...). Counting started 2026-11-09.
| Argument | Type | Description |
|---|---|---|
| account | object | |
| end_date | string | Exclusive, YYYY-MM-DD; default tomorrow |
| start_date | string | Inclusive, YYYY-MM-DD; default 30 days ago |
| media_buy_ids | array |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Exclusive, YYYY-MM-DD; default tomorrow"
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Inclusive, YYYY-MM-DD; default 30 days ago"
},
"media_buy_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50
}
}
}AdCP get_media_buys: current state of your orders. status follows AdCP (pending_creatives, pending_start, active, rejected, canceled); ext.agentry carries the review status, the published URL once live, and any notes from the editor.
| Argument | Type | Description |
|---|---|---|
| account | object | |
| media_buy_ids | array | |
| status_filter | any |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"media_buy_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 50
},
"status_filter": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
}
}Same catalog as list_products, in the AdCP 3.1 shape. Agentry sells published fixed-price offers only, so any brief gets the same product back with a brief_relevance note. Use wholesale_feed_version with create_media_buy or buy_products.
| Argument | Type | Description |
|---|---|---|
| brand | object | |
| brief | string | |
| account | object | |
| buying_mode | string | |
| if_wholesale_feed_version | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"brief": {
"type": "string",
"maxLength": 4000
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"buying_mode": {
"enum": [
"brief",
"wholesale",
"refine"
],
"type": "string",
"default": "wholesale"
},
"if_wholesale_feed_version": {
"type": "string"
}
}
}Get the full text of one published Agentry story as markdown, with its sources and provenance.
| Argument | Type | Description |
|---|---|---|
| slug* | string | Story slug, from search_stories or the end of an agentry.news URL |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9-]{1,200}$",
"description": "Story slug, from search_stories or the end of an agentry.news URL"
}
}
}AdCP list_accounts: the advertiser accounts declared through sync_accounts, with account_id, billing, payment_terms and revision. Filter by account (account_id or brand + operator), status or sandbox. Paginated with pagination.cursor.
| Argument | Type | Description |
|---|---|---|
| status | string | |
| account | object | |
| sandbox | boolean | |
| pagination | object |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"status": {
"type": "string"
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"pagination": {
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"cursor": {
"type": "string"
}
},
"additionalProperties": {}
}
}
}List the beats Agentry covers. Use the slug as the beat filter in search_stories.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}AdCP list_products: the placements Agentry sells, with fixed prices. Currently one product: a sponsored article supplied by the buyer, fact-checked and labelled, 100 USD, paid by invoice after publication. Pass the returned feed_version to buy_products.
| Argument | Type | Description |
|---|---|---|
| brand | object | |
| account | object | |
| max_results | integer | |
| if_feed_version | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"max_results": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"if_feed_version": {
"type": "string"
}
}
}Search published Agentry stories, newest first. Filter by text, beat and date. Sponsored (paid) stories are left out unless include_sponsored is true. Returns summaries with provenance; use get_story for the full text.
| Argument | Type | Description |
|---|---|---|
| beat | string | Beat slug, see list_beats |
| limit | integer | |
| query | string | Words to match in title or summary |
| since | string | Only stories published on or after this date (YYYY-MM-DD) |
| include_sponsored | boolean | Also return sponsored (paid) stories; they carry provenance.sponsored = true |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"beat": {
"enum": [
"crime",
"launches",
"business",
"research",
"tools",
"economy",
"policy",
"news"
],
"type": "string",
"description": "Beat slug, see list_beats"
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Words to match in title or summary"
},
"since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only stories published on or after this date (YYYY-MM-DD)"
},
"include_sponsored": {
"type": "boolean",
"default": false,
"description": "Also return sponsored (paid) stories; they carry provenance.sponsored = true"
}
}
}AdCP sync_accounts: declare the advertiser account you will buy on. Provisioning needs brand.domain, operator (your domain) and billing (operator or agent); payment_terms prepay, net_15 or net_30 (default net_30); currency USD. Accounts are active immediately; every order is still reviewed by a human. Idempotent: resending the same account answers action "unchanged". sandbox: true provisions a test account that is never invoiced.
| Argument | Type | Description |
|---|---|---|
| dry_run | boolean | |
| accounts* | array | |
| delete_missing | boolean | |
| idempotency_key* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotency_key",
"accounts"
],
"properties": {
"dry_run": {
"type": "boolean"
},
"accounts": {
"type": "array",
"items": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"billing": {
"type": "string"
},
"sandbox": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"operator": {
"type": "string"
},
"revision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"timezone": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
},
"payment_terms": {
"type": "string"
},
"billing_entity": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"maxItems": 50,
"minItems": 1
},
"delete_missing": {
"type": "boolean"
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 8
}
}
}AdCP sync_creatives: deliver the sponsored article for a media buy. Each creative needs assets.title, assets.body_text (markdown, 400 to 1,200 words, sources on every claim), assets.advertiser_name and assets.landing_page_url. Assign it with assignments[].package_id from buy_products (pkg_<media_buy_id>); without assignments it is attached to your open orders.
| Argument | Type | Description |
|---|---|---|
| account* | object | |
| creatives* | array | |
| assignments | array | |
| idempotency_key* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotency_key",
"account",
"creatives"
],
"properties": {
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"creatives": {
"type": "array",
"items": {
"type": "object",
"required": [
"creative_id",
"name",
"assets"
],
"properties": {
"name": {
"type": "string"
},
"assets": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"creative_id": {
"type": "string"
},
"format_kind": {
"type": "string"
}
},
"additionalProperties": {}
},
"maxItems": 5,
"minItems": 1
},
"assignments": {
"type": "array",
"items": {
"type": "object",
"required": [
"creative_id",
"package_id"
],
"properties": {
"package_id": {
"type": "string"
},
"creative_id": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 8
}
}
}AdCP update_media_buy: paused true/false pauses or resumes the order, canceled true cancels it (irreversible; not possible once the article is published), name/start_time/end_time/total_budget amend it. Answers the new media_buy_status and revision.
| Argument | Type | Description |
|---|---|---|
| name | string | |
| paused | boolean | |
| account | object | |
| canceled | boolean | |
| end_time | string | |
| packages | array | |
| revision | integer | |
| start_time | any | |
| media_buy_id* | string | |
| total_budget | object | |
| idempotency_key |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.
| string |
| cancellation_reason | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"idempotency_key",
"media_buy_id"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"paused": {
"type": "boolean"
},
"account": {
"type": "object",
"properties": {
"brand": {
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"minLength": 3
},
"brand_id": {
"type": "string"
},
"countries": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": {}
},
"sandbox": {
"type": "boolean"
},
"operator": {
"type": "string"
},
"account_id": {
"type": "string"
},
"operator_unit": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": {}
}
},
"additionalProperties": {}
},
"canceled": {
"type": "boolean"
},
"end_time": {
"type": "string"
},
"packages": {
"type": "array",
"items": {
"type": "object",
"required": [
"package_id"
],
"properties": {
"budget": {
"type": "number"
},
"paused": {
"type": "boolean"
},
"canceled": {
"type": "boolean"
},
"creatives": {
"type": "array",
"items": {}
},
"package_id": {
"type": "string"
},
"cancellation_reason": {
"type": "string",
"maxLength": 1000
},
"creative_assignments": {
"type": "array",
"items": {}
}
},
"additionalProperties": {}
},
"minItems": 1
},
"revision": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 1
},
"start_time": {
"anyOf": [
{
"type": "string",
"const": "asap"
},
{
"type": "string"
}
]
},
"media_buy_id": {
"type": "string"
},
"total_budget": {
"type": "object",
"required": [
"amount",
"currency"
],
"properties": {
"amount": {
"type": "number"
},
"currency": {
"type": "string"
}
},
"additionalProperties": {}
},
"idempotency_key": {
"type": "string",
"maxLength": 200,
"minLength": 8
},
"cancellation_reason": {
"type": "string",
"maxLength": 1000
}
}
}