seenpaid

seenpaid

Enables AI agents to schedule and manage social media posts across 25 platforms via a simple 3-tool MCP interface, including listing connected accounts and recent posts.

Category
访问服务器

README

seenpaid

License: AGPL v3

Ask your AI agent which of your posts made money.

That question is answered by seenpaid.com — the hosted cloud product, which matches your Stripe sales back to the exact post that drove them. This repository is not that. This repository is the open posting layer underneath it: a self-hosted service that connects to 25 social and publishing platforms, queues and retries deliveries, and exposes itself to an AI agent over MCP (Model Context Protocol) so an agent can schedule posts on your behalf. Point an agent at your own instance, or point it at seenpaid.com if you also want the revenue answer — same MCP shape, different depth.

What this is

  • A BullMQ-backed publish pipeline: schedule a post once, it fans out to every connected platform as an independent, retried job.
  • 25 platform adapters behind one interface — OAuth, webhook, API-key, and paste-your-own-credentials flows, whichever each platform actually uses.
  • A REST API and a 3-tool MCP server, so both a script and an AI agent can drive it the same way.
  • Single-operator by design: one API key, no login screen, no multi-tenant concept. Deploy it, set a key, use it.

What this is NOT

  • No revenue attribution. This repo does not track clicks, match sales, or tell you which post earned anything. That's the hard, hosted part — seenpaid.com — and it's deliberately not in here.
  • No multi-user accounts, teams, or roles. One instance, one operator. If you need that, you're looking for the cloud product.
  • No billing, plans, or usage limits. There's nothing to meter — this is software you run, not a subscription.

If what you actually want is "which post made money," this repo alone can't answer that — connect your instance's data to seenpaid.com, or read SELF_HOST.md for the honest tradeoffs before you invest time self-hosting for that reason.

Quickstart

git clone <this-repo>
cd seenpaid
cp .env.example .env
# fill in API_KEY and TOKEN_ENCRYPTION_KEY (openssl rand -hex 32 for each)
docker compose up -d
docker compose exec api npm run db:migrate

The API is now listening on http://localhost:3001. Full walkthrough, including connecting a platform and your agent, in SELF_HOST.md.

The 3 MCP tools

Point an MCP-capable agent at POST /mcp (Bearer API_KEY) and it gets:

Tool What it does
list_accounts Lists connected platform accounts — id, platform, handle, status
list_posts Lists recent posts with status, schedule time, and target platforms
schedule_post Schedules or immediately publishes a post to one, several, or all connected accounts

That's the whole surface. There's no get_analytics or get_top_posts here — those exist only on the hosted seenpaid.com MCP server, because answering them requires the closed-source attribution engine this repo doesn't include.

See mcp-connector/README.md for a copy-pasteable client config.

Supported platforms

Platform Connect method
X (Twitter) Bring-your-own OAuth 1.0a app keys
Bluesky App password
LinkedIn OAuth
Instagram OAuth (Meta)
Facebook OAuth (Meta)
TikTok OAuth
Discord Webhook URL
Telegram Bot token + channel
Mastodon OAuth
Nostr Private key (nsec/hex)
Dev.to API key
Hashnode Personal access token
Medium Integration token
Reddit OAuth
Threads OAuth
Tumblr OAuth
Pinterest OAuth
VK OAuth
Slack Incoming webhook URL
WordPress Application password
Ghost Admin API key
Lemmy Instance login
Generic webhook URL + optional signing secret
Micro.blog App token
Matrix Homeserver + access token + room

Each adapter lives in src/platforms/. Only platforms you configure credentials for are usable — everything else fails cleanly with a clear error rather than blocking the rest of the app. Full env var list per platform in SELF_HOST.md.

Architecture

src/
  platforms/        25 adapters + registry — one publish()/OAuth interface
  domain/features/
    posts/          Create/list/cancel a post; fans out to per-platform jobs
    accounts/        Connect/list/disconnect a platform account
    media/           Presigned upload + optional free AI image generation
  jobs/              BullMQ queue + worker: the actual publish pipeline
  entry-points/
    api/             REST API (Express)
    mcp/             The 3-tool MCP server
  auth/              Single-operator API-key auth (see below)
  data-access/       Drizzle ORM schema, repositories, migrations

Auth model

This is intentionally not the multi-tenant JWT/RBAC system a SaaS product needs. Self-hosting means you're the only user, so auth here is one shared secret: set API_KEY in .env, send it as Authorization: Bearer <key> (or X-Api-Key: <key>) on every request. No signup, no login UI, no sessions, no password hashing. This mirrors how most single-operator self-hosted tools handle auth — one secret, checked on every request, nothing more to reason about.

If you need multiple users or role-based access on one instance (e.g. an agency running this for several clients), that's a deliberate scope cut — see CONTRIBUTING.md for how to propose it.

License

The core (everything except mcp-connector/) is licensed AGPL-3.0 — see LICENSE. The short version: you can self-host, modify, and redistribute freely, but if you run a modified version as a network service for others, you must offer them the modified source too. This exists to keep the project from being cloned into a closed-source competing service without the changes flowing back.

mcp-connector/ (just client-side config for connecting an agent) is MIT — see mcp-connector/LICENSE — so it's freely copyable into agent directories and other tooling without license friction.

Contributing

See CONTRIBUTING.md before opening a PR — it sets expectations on scope and response time.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选