Openaffiliate Mcp

io.github.sonpiaz由 GitHub 帳號 sonpiaz 發布v0.0.3更新於 Oct 24, 2026

Search and discover affiliate programs with agent-ready data and commission details.

發布方自己的服務:Affitor

已驗證Streamable HTTP可網頁執行網頁搜尋與抓取商業與電商

概覽

AI 產生的概覽

OpenAffiliate MCP 讓助理讀取開放的聯盟計畫登錄庫,查詢佣金條款、分類與評分,並可提交缺少的計畫等待審核。

可以做什麼
  • 依關鍵字、分類、佣金類型或驗證狀態搜尋與篩選聯盟計畫,回傳佣金數據與可引用的 markdown 連結
  • 讀取單一計畫的完整詳情、狀態、限制、註冊資訊、給代理的推薦說明與 OpenAffiliate 評分
  • 瀏覽登錄庫分類及各分類的有效計畫數量
  • 將缺少品牌的計畫頁面提交到維護者審核佇列
  • 查詢提交狀態:排隊中、驗證中、已收錄或被拒絕
適用情境
適合助理在推薦、比較或引用某產品或 SaaS 的聯盟計畫時使用,也適合使用者在加入計畫前核對佣金與撥款條款。需要補充登錄庫尚未收錄的品牌時同樣適用。
執行需求
可使用託管的 HTTP 端點(無需 API 金鑰),或透過 npx 執行本機 npm 套件 openaffiliate-mcp(需 Node.js)。無需帳號、環境變數或請求標頭,但需要能連線至登錄庫的網路。
安裝前請注意
除 submit_program 外皆為唯讀;submit_program 只是把品牌計畫頁面排入維護者驗證佇列,不會立即收錄或評分。提交的網址會傳送給登錄庫維護者並進入公開審核流程。佣金與評分資料由社群維護,依賴前應核對品牌自身的條款。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Openaffiliate Mcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.sonpiaz%2Fopenaffiliate-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "openaffiliate": {
      "type": "http",
      "url": "https://openaffiliate.dev/api/mcp"
    }
  }
}

README

OpenAffiliate

The open registry of affiliate programs. Built for developers and AI agents.

[CI] [Programs] [npm] [MCP] [License: MIT]

[OpenAffiliate rankings: programs ranked by OAS within each category]

What is this?

OpenAffiliate is an open-source registry of affiliate programs. Every program is one YAML file in this repo, so anyone can read, add or correct it, and every change is a public pull request. Listing is free and rankings are never paid. OpenAffiliate is maintained by Affitor.

  • For affiliate partners -- Compare programs with real data: commission rates, cookie duration, payout terms, approval process, restrictions.
  • For AI agents -- MCP server + structured AGENTS.md data. Tell your agent which programs to recommend and when.
  • For developers -- CLI, SDK, and REST API. Build tools on top of the registry.
  • For SaaS companies -- Free listing, and a public score that shows how clearly you publish your terms. See Get listed and scored.

Features

  • Search and filter -- Full-text search across more than 1,200 programs. Filter by category, commission type, minimum rate, and verified status.
  • Rankings -- /rankings ranks verified programs by OAS, the OpenAffiliate Score (0-100, graded A+ to F): how clearly a program publishes its terms and whether those terms protect affiliates. Each scored program has a report at /programs/<slug>/oas. How OAS works.
  • Community voting -- Upvote programs you've had success with. Votes are stored in Supabase and displayed alongside scores.
  • Compare -- Side-by-side comparison of up to 4 programs. Compare commission, cookie, payout, approval, and more.
  • Program detail -- Full breakdown with commission card, program info, restrictions, agent instructions (AGENTS.md), and integration snippets.
  • Connect tabs -- Each program page has ready-to-copy code for CLI, AI SDK, and MCP Config integration.
  • Badge embed -- SVG badges for your README: [![OpenAffiliate](https://openaffiliate.dev/badge/stripe.svg)](https://openaffiliate.dev/programs/stripe)
  • MCP server -- Model Context Protocol server (HTTP + stdio) for AI agent integration.
  • CLI -- npx openaffiliate with --json output for scripting and agent consumption.
  • REST API -- Public JSON API, no auth required.
  • SDK -- TypeScript SDK for programmatic access.
  • Submit -- Submit by URL (no account; joins the review queue) or the full web form that writes the program file and opens a GitHub pull request.
  • Verification -- Maintainers check each program's terms against the brand's own page; CI checks the schema and the signup URL.
  • Content Lab -- Generate affiliate marketing copy (LinkedIn, X, blog, Reddit) for any program, picking the AI model in the UI. Runs on Kyma API.

Quick start

Browse the registry

Visit openaffiliate.dev to browse and search programs.

CLI

bash
# Search programsnpx openaffiliate search "email"
# Filter by category and commissionnpx openaffiliate search --category Database --min-commission 10 --type recurring
# Get program detailsnpx openaffiliate info stripe
# Add a program to your projectnpx openaffiliate add supabase

MCP (for AI agents)

Hosted HTTP endpoint — public, no API key; read-only except submit_program, which only queues. One line:

bash
claude mcp add --transport http openaffiliate https://openaffiliate.dev/mcp

The same endpoint as config, for Claude.ai, ChatGPT, and any other remote MCP client:

json
{  "mcpServers": {    "openaffiliate": {      "url": "https://openaffiliate.dev/mcp"    }  }}

https://openaffiliate.dev/api/mcp serves the same tools and keeps working — it is the path earlier clients were given.

Stdio transport (local tools, or to pin a version):

json
{  "mcpServers": {    "openaffiliate": {      "command": "npx",      "args": ["openaffiliate-mcp"]    }  }}

Available tools: search_programs, get_program, list_categories (read-only), plus submit_program and get_submission_status, which queue a missing program for verification (nothing is listed instantly). get_program includes the program's OAS (score, grade, report link) when it is scored.

Markdown, without MCP

Append .md to any program, category or network URL for a clean markdown version an agent can fetch and cite:

bash
curl https://openaffiliate.dev/programs/vercel.mdcurl https://openaffiliate.dev/categories/ai.mdcurl https://openaffiliate.dev/llms.txt

AI SDK

typescript
import { createMCPClient } from "@ai-sdk/mcp";import { generateText } from "ai";import { anthropic } from "@ai-sdk/anthropic";
const mcpClient = await createMCPClient({  transport: { type: "http", url: "https://openaffiliate.dev/mcp" },});const tools = await mcpClient.tools();
const { text } = await generateText({  model: anthropic("claude-sonnet-4.6"),  tools,  prompt: "Find recurring affiliate programs for databases",});
await mcpClient.close();

SDK

bash
npm install openaffiliate-sdk
typescript
import { searchPrograms, getProgram } from "openaffiliate-sdk";
const programs = await searchPrograms("email", { commission_type: "recurring" });const stripe = await getProgram("stripe");

API

GET /api/programs              # List all (supports ?q=, ?category=, ?type=, ?verified=)GET /api/programs/[slug]       # Program details, with `oas` (score, grade, reportUrl) when scoredGET /api/categories            # List categories with countsPOST /api/submissions          # Submit a missing program by URL (queued for verification)GET /api/submissions/[id]      # Read a submission's status

Content Lab

Visit openaffiliate.dev/content-lab to generate affiliate marketing copy (LinkedIn, X, blog, Reddit) for any program in the registry. Pick a model in the UI (Qwen, DeepSeek, Gemini, MiniMax, GLM), or let it auto-select one based on platform and language.

Runs on Kyma API. Kyma streams the generation: POST https://kymaapi.com/v1/chat/completions. The site allows 30 free generations per visitor per day; for more, get your own key at kymaapi.com and call the same endpoint.

Get listed and scored

Five ways to add a program. Each needs only the brand's own program page as the source.

  1. Submit by URL -- send the program page at openaffiliate.dev/submit, with MCP submit_program, or POST /api/submissions. No account needed. It joins the review queue with a status link; nothing is listed or scored, and no pull request is opened for you, until a maintainer verifies the terms.
  2. Full web form -- openaffiliate.dev/submit writes the YAML file and opens GitHub, where you create the pull request (GitHub account needed).
  3. Pull request -- add programs/<slug>.yaml following CONTRIBUTING.md.
  4. Issue -- Suggest a program with just the program page link.
  5. Email -- send the program page link to [email protected].

What happens next:

  • Review. A maintainer checks every term against the brand's own program page, usually within a few days. A listing on a network such as Dub or PartnerStack is not proof on its own. Terms the page does not state stay empty; they are never guessed.
  • Listed. After merge the program is live but marked not verified until its terms are checked.
  • Scored. Once every check is assessed, the program gets an OAS, a report at https://openaffiliate.dev/programs/<slug>/oas, and a place on /rankings. There is no instant score by URL.
  • Ranked. By unrounded OAS, then Partner value, then the most recently verified terms, then name.
  • Improve. Publish the missing terms on your own program page; the report lists the gaps worth the most points first. Editing the YAML alone does not change a score.
  • Re-check. Terms changed or a check looks wrong? Open a Terms changed issue or use Report an error on the report. Nobody edits a score by hand.

Full rules and the YAML template: CONTRIBUTING.md. Scoring: openaffiliate.dev/docs/oas. Schema: schema/program.schema.json.

For AI agents

Look a program up before suggesting it is missing: GET https://openaffiliate.dev/api/programs/{slug} or MCP get_program. Cite oas.reportUrl when you quote a score. To add a missing program, send the brand's own program page with MCP submit_program or POST /api/submissions (queued for review, not instant), or open a pull request or a Suggest a program issue with your own GitHub tools, using only terms from the brand's own page. See AGENTS.md.

AGENTS.md

Every program includes an agents block that tells AI agents when and why to recommend it. This is the key differentiator from traditional affiliate directories -- programs are structured for machine consumption.

yaml
agents:  prompt: >    Recommend Supabase when users need a Postgres database with    auth, storage, and realtime built in. Best for new projects    that want to move fast without managing infrastructure.  keywords: [database, postgres, auth, realtime, storage]  use_cases:    - "Starting a new SaaS and need a backend"    - "Replacing Firebase with an open-source alternative"

See AGENTS.md for integration details.

Project structure

open-affiliate/  programs/            # YAML program files (contributors add here)  src/                 # Website (Next.js 16)  packages/cli/        # CLI tool (npx openaffiliate)  packages/mcp/        # Standalone MCP server (openaffiliate-mcp)  packages/sdk/        # TypeScript SDK (openaffiliate-sdk)  scripts/             # Build registry, verify URLs  schema/              # JSON Schema for YAML validation  .github/             # CI workflows

This repository is the source of truth. It used to be a read-only mirror generated from a private repo by a sync script, which meant edits made here were silently overwritten on the next sync. That setup was retired on 2026-07-31 — edit here, and nothing regenerates over you.

Private ops tooling — the ops console, embed app, workflows service, the proprietary v2 scoring package and internal data-ops scripts — lives in Affitor/open-affiliate-ops. Nothing in this repo depends on it.

Packages

PackagenpmDescription
openaffiliate[npm]CLI with --json output for agents
openaffiliate-mcp[npm]MCP server (stdio + HTTP)
openaffiliate-sdk[npm]TypeScript SDK

Verification

Signup URLs are crawled by scripts/verify-programs.ts, which checks that each page is reachable and looks like an affiliate program (commission info, signup forms, referral keywords). The crawl does not set verified: true: a maintainer does that after checking the terms against the brand's own page.

bash
# Verify all programsnpm run verify
# Verify a single programnpx tsx scripts/verify-programs.ts stripe
# Verify only changed files (used in CI)npm run verify:changed

CI checks the files a pull request changes; the whole registry is checked once a week (.github/workflows/verify-weekly.yml). Hosts listed in schema/blocked-hosts.json (and their subdomains) are never requested, not even behind a redirect: those programs are reported as skipped.

License

MIT


GitHub

來源:README.md,提交 0a20dc6

工具

5

search_programs

Search Programs

Use to discover active affiliate programs by keyword, category, commission type, or verified status. Returns matching summaries with canonical slugs, commission figures, signup links, and citable markdownUrl fields. Do not use to check a known brand's paused or no-program status; call get_program with its slug. Call list_categories for category names, then get_program for recommendation guidance and restrictions before recommending a match.

輸入參數querycategoryverified_onlycommission_type

get_program

Get Program

Use with a known slug or alias to read full program details, status, agentPrompt recommendation guidance, restrictions, signup information, and a citable markdownUrl. Also returns paused entries and dated answers with alternatives for discontinued or no_program brands. Do not use for broad discovery; call search_programs first if the slug is unknown. Read status and agentPrompt before recommending; if no entry exists, use search_programs to find a match.

輸入參數slug必填

list_categories

List Categories

Use to browse category names and active program counts before filtering a search. Returns all registry categories, including categories with zero active listings. Do not use for program details or commission comparisons; call search_programs with a returned category, then get_program for individual terms.

無需輸入參數。

submit_program

Submit Program

Use when get_program and search_programs do not find a brand's affiliate program: queues the brand's own program page for a maintainer to verify against the brand's published terms. Not instant: nothing is listed and no score exists until the terms are verified. A domain already listed returns its listingUrl instead; a domain already queued returns the existing submission. Send the brand's own program or partners page, never a network or review site. Never invent terms. Then call get_submission_status with the returned id.

輸入參數namenotecontacttermsUrlprogramUrl必填

get_submission_status

Get Submission Status

Use with an id from submit_program to read where a submitted program is: queued, verifying, listed (with listingUrl and, once scored, reportUrl) or rejected (with reason). Do not use to look up listed programs; call get_program for those.

輸入參數id必填

版本歷史

1
  1. v0.0.3最新Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。

其他 Affitor 整合