Token导航 LogoToken导航TokenDH.com
assa (Nearestnabors) logo
AI代理未说明官方级别未说明来源级核验

assa (Nearestnabors)

MCP Server

ASSA是一款社交代理扩展,允许用户通过丰富的UI组件获取时间线摘要并与X(前Twitter)上的人进行对话,适用于Goose和其他MCP兼容的AI代理。

工具数

7

提示词数

0

GitHub Stars

14

资源数

0
对话管理TypeScriptAI代理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

nearestnabors

提供方

nearestnabors

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

ASSA: the antisocial social agent extension

ASSA允许您通过丰富的UI组件获取时间线摘要,并与X(以前的推特)上的人进行对话。专为 以及其他MCP兼容的AI代理。

什么是ASSA?

ASSA通过将您的活动从算法驱动的网站和应用程序转移到您的个人代理中来重新利用您的社交生活,在那里您可以控制流量并决定如何参与。享受:

  • 摘要 在不打开任何社交应用程序的情况下告诉你发生了什么。让您的代理过滤垃圾邮件、广告和仇恨言论!
  • 对话 在您的代理界面中,无需打开X应用程序或网站。

特性

  • 🔐 通过Arcade进行安全授权:通过与代理共享密码(或意外提交密码,哎呀!)来访问您的社交帐户
  • 📊 交互界面:与化身、文本一起显示的提及。马上回答!
  • 🔁 你掌控全局:未经您的明确批准,不得发布任何内容

安装

先决条件

设置

  1. 获取您的Arcade API密钥arcade.dev
  1. 克隆并安装:
   git clone https://github.com/nearestnabors/assa
   cd assa
   bun install
   bun run build
  1. 添加到Goose应用程序(推荐使用——Goose CLI无法显示交互式UI!)
  • 在Goose的侧栏中,转到 扩展
  • 选择“+添加自定义扩展名”
  • 添加命令: node PATH TO ASSA FOLDER/dist/index.js
  • 添加环境变量 ARCADE_USER_ID (您注册Arcade时使用的电子邮件)和 ARCADE_API_KEY (得到你的 [此处为Arcade API密钥]()
  • 选择“添加扩展名”

如何使用

检查X活动

Check my X mentions from the last 24 hours

获取时间线摘要

Show me a digest of my X timeline from the past 24 hours

注: 时间线摘要要求Chrome运行远程调试。看 时间线摘要设置 在......下面

发布推文

Post a tweet: "Just shipped a new feature! 🚀"

回复某人

Reply to @anthropic_devs saying I'll share slides after the talk

时间线摘要设置

时间线摘要功能使用您现有的浏览器会话和Playwright访问您的“关注”时间线。这是免费的(没有API费用),并使用您的登录状态。(API会更健壮,但X只向那些能够支付高昂费用的工业开发人员提供时间线API功能。因此,我们是爱好者。)

先决条件

  1. 谷歌浏览器 安装
  2. 登录到X 在Chrome浏览器中

使用远程调试启动Chrome

在使用时间线摘要之前,请使用远程调试端口启动Chrome:

雨衣:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222

窗户:

"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222

Linux:

google-chrome --remote-debugging-port=9222

然后确保您已在该浏览器窗口中登录到X。(我在启动时保持一个打开并最小化。)

鹅食谱

ASSA包括一个时间表摘要的配方:

配方说明
x-news-digest.yaml以下时间线的每日摘要(需要带远程调试的Chrome)

导入配方

选项1:生成深度链接

goose recipe deeplink recipes/x-news-digest.yaml

这将输出a goose://recipe?config=... URL。将其粘贴到浏览器中以导入Goose Desktop。

选项2:导入Goose桌面

  1. 打开 鹅桌面
  2. 点击 食谱 在侧边栏中
  3. 点击 导入配方 或浏览文件
  4. 选择 recipes/x-news-digest.yaml配方文件 输入框

选项3:通过CLI运行

goose run --recipe recipes/x-news-digest.yaml

安排食谱

进口后,在 食谱 屏幕:

  1. 点击食谱旁边的时钟图标
  2. 在中选择频率和时间 添加日程 模态
  3. 点击 保存

注: 需要运行Chrome --remote-debugging-port=9222.

工具

工具说明
x_auth_status检查身份验证,必要时显示连接按钮
x_conversations将未回复的提及显示为对话收件箱
x_dismiss_conversation取消对话(在新活动中重新出现)
x_draft_tweet创建带有预览的草稿
x_post_tweet批准后的职位
x_timeline_digest提取并总结您的以下时间线(过去24小时)
x_show_tweet将一条推文显示为带有回复选项的富卡

发展

# Run in development mode (auto-reload)
bun dev

# Type check
bun typecheck

# Lint check
bun check

# Run tests
bun test

# Run tests in watch mode
bun test:watch

# Build for production
bun run build

测试

ASSA使用 Bun的内置测试运行器 具有与Jest兼容的语法。

运行测试

# Run all tests
bun test

# Run tests in watch mode (re-runs on file changes)
bun test:watch

# Run a specific test file
bun test src/__tests__/utils/time.test.ts

# Run tests matching a pattern
bun test --grep "snowflake"

测试结构

测试位于 src/__tests__/ 镜像源结构:

src/
├── __tests__/
│   ├── state/
│   │   └── manager.test.ts    # State management tests
│   ├── tools/
│   │   └── dismiss-conversation.test.ts
│   └── utils/
│       └── time.test.ts       # Time utility tests
├── state/
│   └── manager.ts
├── tools/
│   └── ...
└── utils/
    └── time.ts

写作测试

创建 .test.ts 文件在适当的 __tests__ 子目录:

import { describe, expect, test } from "bun:test";
import { myFunction } from "../../utils/my-module.js";

describe("myFunction", () => {
  test("does something expected", () => {
    const result = myFunction("input");
    expect(result).toBe("expected output");
  });
});

嘲讽

使用 mock.module() 模拟Node.js模块:

import { mock } from "bun:test";

// Mock before importing the module that uses it
mock.module("node:os", () => ({
  homedir: () => "/tmp/test-home",
}));

// Now import your module
import { myFunction } from "../../state/manager.js";

测试隔离

在测试有状态模块时,使用唯一的ID并在测试之间进行清理:

import { beforeEach } from "bun:test";

let testCounter = 0;
function uniqueId(prefix: string): string {
  return `${prefix}_${Date.now()}_${++testCounter}`;
}

beforeEach(() => {
  clearState(); // Reset shared state
});

获取Arcade API密钥

  1. 首选 arcade.dev
  2. 创建账户
  3. 导航到API键
  4. 创建新密钥
  5. 将其添加到您的 .env 文件

建筑

Goose (MCP Client)
       │
       │ MCP Protocol
       ▼
ASSA MCP Server
       │
       │ HTTPS
       ▼
  Arcade.dev
       │
       │ OAuth + API
       ▼
      X

路线图

完成

  • \[x\] 迁移到React组件
  • \[x\] 自定义CSS设计系统(9个调色板,语义标记)
  • \[x\] 通过Playwright浏览器自动化实现时间线摘要
  • \[x\] 鹅定期消化的食谱

后续步骤

  • \[\]缩小“回复UI”:

- \[\]在每张卡片的左下角添加小的“取消”和“回复”图标 - \[\]点击“回复”将图标替换为输入区域和回复按钮 - \[\]单击外部关闭UI并带回图标

未来

  • \[\]添加 X.GetMutedUsers 到Arcade过滤对话中的静音帐户
  • \[\]在Arcade中添加媒体扩展,以在推文中显示图像
  • \[\]VIP帐户功能(跟踪特定用户)
  • \[\]如果推文是回复,请在评论上方以风格化的引用显示原始推文
  • \[\]如果某条推文引用了另一条推文,请在评论下方显示引用的推文

已知限制

  • 无DM支持 --Arcade的X集成不包括DM访问
  • 7天限制 --X搜索只能追溯到7天前

学分

专为 MCP连接2026 通过 RL纳伯斯.

使用:

目录标签

目录标签

对话管理TypeScriptAI代理社交代理本地部署时间线摘要X集成

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP