Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted 2 min ago
teppi

Server definition

Hash
sha256:30e3044c90f66c4aacacac996ee79b9d144e88049bb69da5b91e3845381a5a1e
What it is
What a remote MCP server returned when asked what it offers: 2 tools

The blob, as servednamed by its sha256

{ "instructions": "**0. No authentication:**\n\nThis server is public: no `Authorization` header, no OAuth flow. Every tool is read-only program search; none changes state or returns account data.\n\n**1. Terminology:**\n\nThe words \"campaign\" and \"program\" are interchangeable. This server uses \"program\" throughout.\n\n**2. Pagination:**\n\nSet `limit` to the smallest value covering the request: low `limit` = more calls, small responses; high `limit` = fewer calls, larger token cost per response. To page further, repeat the exact same call; same tool, same arguments; and add the returned `nextCursor` as `cursor` (`limit` is then ignored). A repeat call that adds _only_ `cursor` and drops any other argument returns error code `-32602` instead. Check `_meta.pagination` (`offset`/`limit`/`total`) to know if more pages remain. Treat a missing `nextCursor` as the end of results.\n\n**3. Searching:**\n\nNarrow with a filter rather than paging through everything. Any filter taking ids or codes; `category_id`, `program_id`, `advertiser_id`, `locale_id`, `supply_locale_id`, `currency_code`, `allowed_media_type_id`, `type`; accepts several of them comma-separated and matches programs with at least one. Different filters combine with AND, so a program must satisfy every filter given.\n\n- `search_term`: one phrase, not a list; matches a program name partially, or a program id exactly when the term is only digits\n- `category_id`: ids come from §5; no categories tool exists\n- `locale_id`/`supply_locale_id`: numeric ids, not country codes; common ones in §5\n- `similar_to_id`: `id`(s) of known programs, instead of a category or search term; the inputs are excluded from the answer and the most-similar-first ordering replaces `order_by`\n\nPass a comma-separated subset of the §6 field names as `fields` to return only those; cuts tokens and latency. An unknown name is dropped silently rather than erroring, so match §6 exactly: `id` is the field name, `program_id` the filter name.\n\n**4. Scope of this server:**\n\nProgram data here is the public catalogue. Commissions, subscriptions, transactions, and anything tied to an account are not available on this server; those live on the authenticated publisher and advertiser servers.\n\n**5. Category and locale IDs:**\n\nEvery id `category_id` accepts:\n\n```json\n{\"1\":\"Automotive\",\"3\":\"Travel & Leisure\",\"6\":\"Food & Drinks\",\"7\":\"Living, House & Garden\",\"8\":\"Sports, Beauty & Health\",\"10\":\"Telecom\",\"17\":\"Business-to-Business\",\"18\":\"Consumer Electronics\",\"19\":\"Lotteries & Gambling\",\"23\":\"Books, Literature & Media\",\"24\":\"Finance\",\"25\":\"Work & Education\",\"28\":\"Others\",\"31\":\"Adult\",\"32\":\"Non Profit & Charity\",\"34\":\"Parenting\",\"36\":\"Fashion\",\"38\":\"Dating\",\"42\":\"Energy\",\"43\":\"Daily Deals & Auctions\",\"45\":\"Research panels & Surveys\",\"46\":\"Games & Esports\",\"47\":\"Crypto\",\"48\":\"Sustainable\"}\n```\n\nThe common ids for `locale_id` and `supply_locale_id`. Others exist; read one from a program's `locales`/`supply_locales` field:\n\n```json\n{\"1\":\"nl-NL\",\"2\":\"nl-BE\",\"3\":\"fr-BE\",\"4\":\"de-DE\",\"5\":\"fr-FR\",\"9\":\"en-SE\",\"11\":\"en-DK\",\"13\":\"en-FI\",\"17\":\"en-ES\",\"27\":\"en-GB\",\"30\":\"en-NO\"}\n```\n\n**6. Program fields:**\n\nEach item `getAllPublicPrograms` returns:\n\n- `id`: program id; filter on it with `program_id`\n- `advertiser_id`: the advertiser running this program\n- `name`: program name\n- `currency_code`: the currency of the `commission` fixed and cpc amounts\n- `type`: `affiliatemarketing` or `leadgeneration`\n- `start_date`: program start, `Y-m-d`\n- `categories`: `[{id, name}]`; the id matches §5\n- `locales`: `[{id, code}]`, e.g. `{\"id\": \"1\", \"code\": \"nl-NL\"}`; filter on the id with `locale_id`\n- `supply_locales`: same shape as `locales`; filter on the id with `supply_locale_id`\n- `productfeed`: whether a product feed is available, for building a catalogue or comparison rather than manual links\n- `deep_linking`: whether a link may point at a specific page, not only the homepage\n- `allowed_media_types`: `[{id, name}]`; publisher channel types this program accepts, e.g. `blog`, `cashback`\n- `commission`: `{min_fixed, max_fixed, min_ratio, max_ratio, min_cpc, max_cpc}`, the lowest/highest payout per type; fixed and cpc in `currency_code`, ratio a percentage of the net sales amount eligible for commission\n- `links`: `{public_campaign_showcase, publisher_campaign_signup, publisher_portal_campaign}`; the program's public page, the link a publisher signs up through, and the program inside the publisher portal. `public_campaign_showcase` is absent when the program carries no category\n", "tools": [ { "description": "Get all public programs", "inputSchema": { "properties": { "advertiser_id": { "description": "Filter by advertiser ID(s)", "type": "string" }, "allowed_media_type_id": { "description": "Filter by allowed media type ID(s)", "type": "string" }, "category_id": { "description": "Filter by category ID(s)", "type": "string" }, "commission_cpc": { "description": "Filter on the cost per click a program pays, in the currency defined by currency_code, as an amount or as a range (json: gt, gte, lt, lte, e.g. {\"gte\":0.1,\"lte\":1})", "type": "string" }, "commission_fixed": { "description": "Filter on the fixed commission a program pays, in the currency defined by currency_code, as an amount or as a range (json: gt, gte, lt, lte, e.g. {\"gte\":5,\"lte\":25})", "type": "string" }, "commission_ratio": { "description": "Filter on the commission percentage a program pays, as a percentage or as a range (json: gt, gte, lt, lte, e.g. {\"gte\":5,\"lte\":25})", "type": "string" }, "currency_code": { "description": "Filter by currency code(s)", "type": "string" }, "cursor": { "description": "Pagination cursor from a previous response. Omit to start from the first page.", "type": "string" }, "deeplink": { "description": "Filter by deep linking flag (true/false)", "type": "string" }, "fields": { "description": "Comma-separated list of fields to include in the response. The data of the fields left out is not fetched", "type": "string" }, "id": { "description": "Filter by program ID(s)", "type": "string" }, "limit": { "description": "Maximum results per page (1-1000, default 100). Only used when starting a new list (no cursor supplied) — once a cursor is used, its own limit applies and this is ignored.", "maximum": 1000, "minimum": 1, "type": "integer" }, "locale_id": { "description": "Filter by locale ID(s)", "type": "string" }, "order_by": { "description": "Field to sort by (id, advertiser_id, name, currency_code, start_date)", "type": "string" }, "order_direction": { "description": "Sort direction (ASC or DESC)", "enum": [ "ASC", "DESC" ], "type": "string" }, "productfeed": { "description": "Filter by productfeed flag (true/false)", "type": "string" }, "search_term": { "description": "Search by program name (partial match) or by program ID (exact match on a term of digits only)", "type": "string" }, "similar_to_id": { "description": "Return the campaigns that resemble the given campaign ID(s), most similar first. Resemblance is based on the English campaign descriptions. The campaigns asked about are not part of the answer, and this ordering replaces order_by", "type": "string" }, "start_date": { "description": "Filter on the date a program started, as a date (Y-m-d) or as a range (json: gt, gte, lt, lte, e.g. {\"gte\":\"2024-01-01\",\"lte\":\"2024-12-31\"})", "type": "string" }, "supply_locale_id": { "description": "Filter by supply locale ID(s)", "type": "string" }, "type": { "description": "Filter by advertiser type(s) (affiliatemarketing/leadgeneration)", "type": "string" } }, "type": "object" }, "name": "getAllPublicPrograms", "outputSchema": null }, { "description": "List all available tools grouped by category.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "list", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:30e3044c90f66c4aacacac996ee79b9d144e88049bb69da5b91e3845381a5a1e | sha256sum