Anomalia

io.github.andreabuttarelli由 GitHub 账号 andreabuttarelli 发布v1.0.0更新于 Oct 24, 2026

AI social autopilot: plan, write, design and publish posts, blog/SEO, news radar and leads.

已验证Streamable HTTP可网页运行效率与工作流商业与电商

概览

AI 生成的概览

Anomalia 是一个远程 MCP 服务器,接入 AI 社交媒体自动驾驶,可规划、撰写、设计并发布帖子、博客与 SEO 审计。

可以做什么
按品牌 slug 规划社交内容、周计划、日历与上市方案,并审批、编辑、重新生成、调整轮播图顺序、把帖子转成视频并发布。管理品牌资产:工作室、语气、人物与产品。执行 SEO、GEO 与关键词审计并生成博客文章。管理广告活动、花费、加推建议,以及重混、复制、暂停、恢复和删除创意。查看仪表盘、状态与分析,或通过自然语言 AI 指令以完整读写权限操作全部功能。
适用场景
当你已在 Anomalia 上运营品牌,希望助手起草、审批并发布社交帖子、博客内容与 SEO 工作,或在聊天客户端中查看和调整广告活动时使用。
运行要求
通过 streamable HTTP 连接 mcp.anomalia.so 远程端点并使用 OAuth 登录;需要 Anomalia 账户,因为每次调用都会经 HTTPS 访问 Anomalia API。远程端点需要 Bearer 访问令牌。另有本地 stdio 方式,但需要 Bun 和仓库源码。
安装前请注意
AI 指令拥有完整读写权限,工具可发布帖子、审批内容,并创建、暂停、复制或删除涉及花费的广告活动。操作会改动线上品牌数据。stdio 方式会在本地保存 OAuth 会话凭据,应视为机密。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Anomalia,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.andreabuttarelli%2Fanomalia/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "anomalia": {
      "type": "http",
      "url": "https://mcp.anomalia.so/mcp"
    }
  }
}

README

Anomalia CLI — Social Media AI Automation CLI, MCP Server & Agent Skill

Automate your social media from the terminal. Anomalia is the social media AI autopilot that plans, writes, designs and publishes posts, blog articles and SEO/GEO audits on autopilot. This repository is its command-line client, MCP server (Model Context Protocol — stdio + HTTP) and agent skill: everything you need to run social media automation, content generation and approval workflows from a terminal or an AI agent.

This repository ships three ways to drive the same product (same OAuth, same API, no static tokens):

WhatWho it’s for
CLIanomalia terminal commandsHumans & scripts
MCPModel Context Protocol server (stdio + HTTP)Cursor, Claude, other MCP hosts
SkillAgent Skill (skills/anomalia/)Coding agents / skills.sh / npx skills

You need an Anomalia account. This is a client, not a standalone tool: every call talks to the Anomalia API over HTTPS. Without an account there is nothing to drive.

With the Anomalia CLI you can automate social media posting, approve AI-generated content in one tap, edit a carousel slide by slide, turn a post into a video, run SEO and GEO audits, and manage your blog — from the terminal or from an AI agent like Cursor or Claude.

text
┌─────────────┐   ┌─────────────┐   ┌──────────────────┐│  anomalia   │   │  MCP host   │   │  Agent + Skill   ││    CLI      │   │ (Cursor…)   │   │  (npx skills)    │└──────┬──────┘   └──────┬──────┘   └────────┬─────────┘       │                 │                   │       │    lib/api.ts + OAuth session       │       └─────────────────┼───────────────────┘                         ▼                 Anomalia /api/v1/*

1. CLI

Install

Pick one:

MethodCommandNotes
npmnpm install -g anomalia-cliNeeds Node.js ≥ 20
Homebrewsee belowmacOS / Linux, standalone binary
Installersee belowcurl script → binary on PATH
From sourcesee belowNeeds Bun

npm

bash
npm install -g anomalia-cli# or:  pnpm add -g anomalia-cli   /   bun add -g anomalia-clianomalia login

Homebrew

bash
brew tap andreabuttarelli/anomalia-cli https://github.com/andreabuttarelli/anomalia-clibrew install anomaliaanomalia login

Installer (standalone binary) — macOS arm64/x64 and Linux arm64/x64, no Node/Bun required:

bash
curl -sSL https://raw.githubusercontent.com/andreabuttarelli/anomalia-cli/main/scripts/install.sh | bashanomalia login

Update later with anomalia update, or npm install -g anomalia-cli@latest / brew upgrade anomalia depending on how you installed. More detail: docs/distribute.md.

Quick start

bash
anomalia brandsanomalia dashboard my-brandanomalia content my-brand --status pending_useranomalia approve my-brand --allanomalia seo my-brandanomalia web my-brand generate --topic "..."anomalia ads my-brand --remixanomalia ai my-brand --message "..." --pipe

Every command takes the brand slug as its first argument. anomalia --help lists them all; anomalia <command> --help details one. Short id prefixes from tables are accepted; ambiguous prefixes error instead of guessing.

AreaCommands
Postscontent, approve, post <id> [show|edit|regenerate|slide|reorder|video|publish]
Planningplan, weekly-plan, calendar, gtm
Brandstudio, voice, people, products
Webseo, geo, keywords, web
Adsads — campaigns, spend, boost proposals, remix, duplicate/delete (--sync, --propose, --remix, --create, --approve, --pause, --resume, --duplicate, --delete, --reject, --ad per singola creatività)
Insightdashboard, status, analytics
AIai --message "..." — natural language, full read/write access

Full command dump: llms.txt · more docs: docs/

From source

Requires Bun.

bash
git clone https://github.com/andreabuttarelli/anomalia-cli.gitcd anomalia-clibun installbun run cli.ts --help

2. MCP server

Same tools and OAuth as the CLI. Docs: docs/mcp.md.

bash
bun run mcp          # stdio (local hosts)bun run mcp:http     # http://localhost:8787/mcp

Remote: https://mcp.anomalia.so/mcp (Bearer JWT required). Health: GET /health.

Cursor — stdio

json
{  "mcpServers": {    "anomalia": {      "command": "bun",      "args": ["run", "/ABS/PATH/to/anomalia-cli/mcp/stdio.ts"]    }  }}

Cursor — HTTP

json
{  "mcpServers": {    "anomalia": { "url": "https://mcp.anomalia.so/mcp" }  }}

If Connect fails with Not an https or loopback URI: cursor://…, your Cursor build is still using the custom-scheme OAuth callback — use stdio above, update Cursor (loopback http://localhost:8787/callback), or see docs/mcp.md.

  • Local stdio: login tool or existing anomalia login → ~/.config/anomalia/session.json
  • Remote HTTP: Authorization: Bearer <access_token> (401 without it is expected)

3. Agent Skill & plugins

Publishable Agent Skill for Cursor, Claude, skills.sh, and friends:

bash
npx skills add andreabuttarelli/anomalia-cli --skill anomalia# orbash scripts/install-skill.sh --project

Package: skills/anomalia/ → plugins/anomalia/skills/anomalia/ (SKILL.md + references/ for MCP setup, tool map, CLI).

When the skill is active, agents prefer MCP tools if connected, otherwise the CLI.

Claude Code / Codex marketplace plugin

Same skill + remote MCP, packaged for plugin install and directory submit:

bash
# Claude Code/plugin marketplace add andreabuttarelli/anomalia-cli/plugin install anomalia@anomalia
# Codexcodex plugin marketplace add andreabuttarelli/anomalia-cli

Submit checklist (Claude community directory + OpenAI Plugins Directory): docs/plugins.md.


Configuration

Zero config by default → https://anomalia.so, with automatic fallback to http://localhost:5173 when a local app is answering.

VariablePurpose
PUBLIC_APP_URLPoint CLI/MCP at another Anomalia instance
SENTRY_DSN(MCP HTTP / Vercel) Errors → Sentry
SUPABASE_SERVICE_ROLE_KEY(MCP HTTP / Vercel) Rows in mcp_logs
MCP_PUBLIC_URLPublic MCP base URL for OAuth metadata

Session: ~/.config/anomalia/session.json. anomalia logout clears it. No secrets are embedded in this repo or the binary.


Architecture

Thin HTTPS client — no DB access, no coupling to the Anomalia server codebase:

CLI  ──┐MCP  ──┼── HTTPS ──►  /api/v1/*  ──►  AnomaliaSkill ─┘   (guides agents to CLI or MCP)
  • CLI commands: commands/ + cli.ts
  • HTTP client: lib/api.ts only
  • MCP: mcp/ (reuses lib/api.ts, registers tools)
  • Skill / plugins: skills/anomalia/ → plugins/anomalia/ (Claude + Codex marketplace manifests)

Development

bash
bun installbun run cli.ts --helpbun run mcpbun run mcp:httpbun run typecheckbun testbun run build             # binary → dist/bun run build:all         # all four targetsbun run vercel-build      # MCP bundles under mcp/api/

Releases: push a v* tag → CI typechecks, tests, cross-compiles binaries + .tar.gz + SHA256SUMS.txt on the GitHub Release, bumps Formula/anomalia.rb, and publishes anomalia-cli to npm when NPM_TOKEN is set. Details: docs/distribute.md.


License

Copyright © 2026 Andrea Buttarelli.

Licensed under the GNU Affero General Public License v3.0 or later. You may use, modify and redistribute it, but derivative works must stay open source under the same license, must keep the copyright notice, and must state their changes — including when offered to users over a network.

来源:README.md,提交 f03c41d

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分