Hanzo
Cloud MCPworld

put_v1_world_pipeline

Replaces the caller project's news pipeline and returns what was stored.

Replaces the caller project's news pipeline and returns what was stored. It is a WHOLE replacement, not a patch: a field the request leaves out is stored empty, so sending only feeds clears the filters.

Every feed URL is validated HERE, at the write boundary — http(s) only, and the host must be on the server's allowlist — so a stored pipeline can never name a host the fetcher would later refuse, and the allowlist is one decision in one place rather than a check at each fetch.

Toolput_v1_world_pipeline
Doorhttps://api.hanzo.ai/v1/mcp
Methodtools/call (JSON-RPC 2.0)
Arguments2
OperationPUT /v1/world/pipeline
Productworld

Arguments

FieldTypeRequiredDefaultValuesDescription
feedsstring[]Feeds is the RSS/Atom feed URLs to read, at most 64. Each must be an http(s) URL whose host is on the server's allowlist — the SSRF guard is applied here, at the write, so a stored pipeline can never name a host the fetcher would refuse. Blank entries are dropped and duplicates collapse.
filtersFiltersFilters narrows the merged feed. Terms are trimmed, de-duplicated case-insensitively, and capped at 64 per axis.

tools/list declares a type and a description for each field and nothing further. A means neither the door nor that operation constrains the field.

Object types

Filters is an object this tool's fields are made of, declared inside the tool's own schema and enumerated in full below.

Filters

FieldTypeRequiredDefaultValuesDescription
keywordsstring[]Keywords keeps only items whose TITLE contains one of these, case-insensitively. They are also the GDELT queries the feed fans out to, one per keyword of three characters or more — so a keyword both widens what is fetched and narrows what is kept.
regionsstring[]Regions keeps only items whose TITLE contains one of these, matched case-insensitively as a substring. Empty keeps every region.
sourcesstring[]Sources keeps only items whose outlet name contains one of these, case-insensitively. Empty keeps every outlet.

Call it

A tools/call carries every argument in one flat object — nothing binds to a path or a query string. Nothing above is required, so every declared argument is shown rather than a guess at which matter.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "put_v1_world_pipeline",
         "arguments": {
           "feeds": [
             "<feeds>"
           ],
           "filters": {
             "keywords": [
               "<keywords>"
             ],
             "regions": [
               "<regions>"
             ],
             "sources": [
               "<sources>"
             ]
           }
         }
       }
     }'

Values are the operation's own defaults and enumerated values where it declares them, and a <placeholder> where neither source declares one. tools/list needs no credential; tools/call does — called without one the door answers HTTP 200 with a JSON-RPC result whose isError is set and whose text says what was missing. How to get a key →

The operation behind it

OperationRouteProductSummary
put_v1_world_pipelinePUT /v1/world/pipelineworldReplaces the caller project's news pipeline and returns what was stored.

The same capability over plain HTTP is in the world API reference, on https://api.hanzo.ai.


All 755 tools · The door · API reference

Generated from tools/list on https://api.hanzo.ai/v1/mcp — 833 tools captured 2026-08-01, of which 755 are documented here (the operator surface is not published) (this build read the vendored copy; the door was unreachable).

How is this guide?

On this page