Token导航 LogoToken导航

MCP Server · AI代理

pheme (Divyekant)

Pheme是一个通用的人工智能代理到人类通知层,通过单一工具调用支持100+通知渠道(如Slack、Telegram、电子邮件、Discord等),适用于自动化审批、错误警报、状态更新等场景。

stdio官方级别未说明来源级核验工具 4
PythonClaude工作流自动化Claude Desktop

快速开始

作者 / 组织
divyekant
提供方
divyekant
运行时
Python

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

pheme (Divyekant) 属于AI代理类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前要先准备 访问 Token。

分类

AI代理

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

python3 -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

菲梅

为什么是菲姆?

人工智能代理自主运行,但仍需要联系人类:批准、错误警报、状态更新、任务完成。如果没有标准的通知层,每个代理都会重新设计渠道集成。Pheme通过提供:

  • 一个接口 --4个MCP工具涵盖所有通知需求
  • 100+频道 --Apprise支持什么,Pheme支持什么
  • 基于紧迫性的路由 --关键警报分散到多个渠道;低优先级更新保持安静
  • 零通道锁定 --通道是通过环境变量而不是代码配置的
  • 内置安全功能 --消息长度上限、秘密检测警告、审计日志记录

快速开始

先决条件

  • Python 3.10+
  • 与Apprise兼容的频道(Slack、Telegram、电子邮件等)

安装

git clone https://github.com/divyekant/pheme.git
cd pheme
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

配置频道

设置一个或多个 PHEME_ 环境变量 识别URL:

# Slack
export PHEME_SLACK="slack://tokenA/tokenB/tokenC/#general"

# Telegram
export PHEME_TELEGRAM="tgram://bot_token/chat_id"

# Email
export PHEME_EMAIL="mailto://user:pass@gmail.com?to=recipient@example.com"

# Discord
export PHEME_DISCORD="discord://webhook_id/webhook_token"

# macOS native notifications
export PHEME_SYSTEM="macosx://"

# Webhooks
export PHEME_WEBHOOK="json://endpoint.example.com/path"

看 学习wiki 查看支持的服务及其URL格式的完整列表。

运行MCP服务器

python -m server

服务器使用MCP协议通过stdio进行通信,准备好连接任何兼容MCP的客户端。

Claude代码集成

Claude Code从读取MCP服务器配置 三个不同的地点 这取决于客户。您必须为您的客户将Pheme添加到正确的文件中:

客户端配置文件
Claude 代码命令行工具 (claude 在终端)~/.claude.json → mcpServers
克劳德桌面版 (macOS应用程序)~/.claude/.mcp.json
项目级别 (每个目录覆盖)`
/.mcp.json`
重要提示: 每个客户端都从自己的文件中读取。服务器在 ~/.claude/.mcp.json 是 不 CLI可见,反之亦然。如果工具没有出现,请检查服务器是否在您使用的客户端的正确文件中注册。
克劳德代码CLI(~/.claude.json)

添加到顶级 mcpServers key(如果缺少则创建):

{
  "mcpServers": {
    "pheme": {
      "type": "stdio",
      "command": "/path/to/pheme/.venv/bin/python",
      "args": ["-m", "server"],
      "cwd": "/path/to/pheme",
      "env": {
        "PHEME_TELEGRAM": "tgram://bot_token/chat_id",
        "PHEME_SYSTEM": "macosx://"
      }
    }
  }
}
克劳德桌面(~/.claude/.mcp.json)
{
  "mcpServers": {
    "pheme": {
      "command": "/path/to/pheme/.venv/bin/python",
      "args": ["-m", "server"],
      "cwd": "/path/to/pheme",
      "env": {
        "PHEME_TELEGRAM": "tgram://bot_token/chat_id",
        "PHEME_SYSTEM": "macosx://"
      }
    }
  }
}
项目级别(`

/.mcp.json`)

格式与Claude Desktop相同。放置在项目根目录中,使Pheme仅在该目录中可用。

技能符号链接

要使代理技能在全球范围内可用:

mkdir -p ~/.claude/skills
ln -s /path/to/pheme/skills/pheme ~/.claude/skills/pheme

配置更改后重新启动Claude Code——MCP服务器在会话开始时连接。

食品法典整合

将Pheme添加到 ~/.codex/config.toml:

[mcp_servers.pheme]
command = "/path/to/pheme/.venv/bin/python"
args = ["-m", "server"]
cwd = "/path/to/pheme"

为了在全球范围内推广Codex的技能:

mkdir -p ~/.agents/skills
ln -s /path/to/pheme/skills/pheme ~/.agents/skills/pheme

在配置更改后重新启动Codex,以便它能够使用MCP服务器和技能。

详细的食品法典说明: /.codex/INSTALL.md

MCP工具

Pheme通过MCP协议公开了4个工具:

send --发送通知

核心工具。按名称或紧急程度向一个或多个频道发送消息。

send(
  message: str,              # Required. The notification content (max 4000 chars).
  channel: str | None,       # Single channel name, e.g. "slack"
  channels: list[str] | None,  # Multiple channels, e.g. ["slack", "telegram"]
  urgency: str | None,       # "low", "normal", "high", "critical"
  title: str | None,         # Optional title/subject line
  format: str = "text"       # "text", "markdown", or "html"
)

路由优先级: channel > channels > urgency >默认值(normal)

答复:

{
  "success": true,
  "delivered": ["slack", "telegram"],
  "failed": []
}

list_channels --显示已配置的频道

返回从中发现的所有频道 PHEME_* 环境变量。

{
  "channels": [
    {"name": "slack", "configured": true},
    {"name": "telegram", "configured": true}
  ]
}

get_routes --显示紧急路线

将当前紧急程度返回给通道映射。

{
  "critical": ["slack", "telegram", "system"],
  "high": ["slack"],
  "normal": ["slack"],
  "low": ["session"]
}

test_channel --验证通道是否正常工作

发送测试通知以确认通道配置正确。

test_channel(channel: str)  # e.g. "slack"

紧急路由

Pheme根据紧急程度将消息路由到通道。代理可以说“这很关键”,并让路由决定它去哪里,而不是硬编码通道名称。

默认路由

紧迫性渠道用例
critical松弛、电报、系统生产中断、安全事件、阻塞问题
high松弛公关审查、构建失败、重要更新
normalslack任务完成、状态更新、信息
low会议背景活动、总结、仅供参考

自定义路线

通过创建YAML文件覆盖路由。Pheme按以下顺序搜索(第一场比赛获胜):

  1. 项目级别: .claude/pheme-routes.yaml (在当前工作目录中)
  2. 项目级别(食品法典委员会): .codex/pheme-routes.yaml
  3. 用户级别: ~/.claude/pheme-routes.yaml
  4. 用户级别(Codex): ~/.codex/pheme-routes.yaml
  5. 违约: config/default-routes.yaml (与Pheme捆绑在一起)
# .claude/pheme-routes.yaml
routes:
  critical:
    - slack
    - telegram
    - email
    - system
  high:
    - slack
    - email
  normal:
    - slack
  low:
    - session

安全

Pheme包括几种在生产代理工作流程中安全使用的强化措施:

消息长度上限

消息的长度限制为4000个字符。较长的消息会被错误拒绝——这可以防止失控的代理将大量有效载荷转储到通知通道中。

秘密侦查

在发送之前,Pheme会扫描消息中看起来像秘密的模式:

  • API密钥和令牌(api_key=, token=等等)
  • JWTs(eyJ...)
  • 条纹风格按键(sk_live_..., pk_test_...)
  • Slack代币(xoxb-...)
  • GitHub PAT(ghp_...)
  • PEM私钥

如果找到匹配项,Pheme会向stderr记录警告,但 不阻塞 消息——代理或用户可能有正当理由包含内容。

审计日志

每个 send 调用被记录到stderr中,并显示:

  • 紧急程度
  • 目标渠道
  • 交付结果(已交付/失败)
  • 消息长度

Claude代码插件

Pheme是一个带有斜线命令和代理技能的Claude Code插件。

斜杠命令

命令描述
/pheme test 发送测试ping以验证通道
/pheme send 向特定频道发送消息
/pheme send --urgency 使用紧急路由发送
/pheme-status显示已配置的通道和路由表

代理技能

捆绑技能 skills/pheme/SKILL.md 教导代理人何时以及如何使用Pheme。它包括:

  • 何时通知(批准、错误、完成)与何时不通知(记录、内部通信)
  • 如何选择正确的紧急程度
  • 如何编写好的通知消息(发生了什么,在哪里,该怎么办)
  • 工具使用示例

建筑

┌─────────────┐     MCP (stdio)     ┌──────────────────┐
│  AI Agent   │ ──────────────────> │   Pheme Server   │
│ (Claude,    │                     │                  │
│  Argos,     │                     │  ┌────────────┐  │
│  etc.)      │                     │  │   Router    │  │
└─────────────┘                     │  │ (urgency → │  │
                                    │  │  channels) │  │
                                    │  └─────┬──────┘  │
                                    │        │         │
                                    │  ┌─────▼──────┐  │
                                    │  │  Apprise   │  │
                                    │  │ (delivery) │  │
                                    │  └─────┬──────┘  │
                                    └────────┼─────────┘
                                             │
                          ┌──────────────────┼──────────────────┐
                          │                  │                  │
                     ┌────▼────┐       ┌─────▼─────┐     ┌─────▼─────┐
                     │  Slack  │       │ Telegram  │     │  Email    │
                     └─────────┘       └───────────┘     └───────────┘

项目结构

pheme/
├── server/
│   ├── __init__.py
│   ├── __main__.py        # Entry point: python -m server
│   ├── config.py          # Channel discovery (env vars) + route loading (YAML)
│   ├── router.py          # Urgency-based channel resolution
│   └── server.py          # MCP server, tools, security checks
├── config/
│   └── default-routes.yaml
├── skills/
│   └── pheme/
│       └── SKILL.md       # Agent skill — when/how to use Pheme
├── commands/
│   ├── pheme.md           # /pheme slash command
│   └── pheme-status.md    # /pheme-status slash command
├── tests/
│   ├── test_config.py     # 7 tests — channel discovery, route loading
│   ├── test_router.py     # 8 tests — urgency resolution, fallbacks
│   ├── test_server.py     # 16 tests — tools, security, edge cases
│   └── test_integration.py # 1 test — full end-to-end flow
├── .claude-plugin/
│   └── plugin.json        # Claude Code plugin manifest
├── pyproject.toml
└── README.md

发展

运行测试

source .venv/bin/activate
pytest -v

所有32项测试均应通过:

tests/test_config.py       — 7 passed
tests/test_router.py       — 8 passed
tests/test_server.py       — 16 passed
tests/test_integration.py  — 1 passed

依赖项

包装用途
mcp[cli] >=1.2.0MCP服务器框架(FastMCP)
apprise >=1.9.0通知传递(100+通道)
pyyaml >=6.0路由配置解析
pytest >=8.0测试(开发)
pytest-asyncio >=0.24异步测试支持(开发)

文档

完整的外部文档可在 docs/generated/external/:

许可证

麻省理工学院

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

通知服务Python本地部署多通道通信AI代理集成自动化工作流跨平台通知

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

多步任务编排

把拆解、检索、执行串成一条链,模型按步骤调用工具。

长期上下文

把会话、笔记和知识放到外部存储,换个会话还能接着做。

接自有流程

把内部系统和模型连起来,让助手调用已有的工作流。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在AI代理场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到访问 Token的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
pheme (Divyekant)

MCP World · 本页

4stdio有1 个2026-05-17
Everything Claude Code

MCP World

0stdio有1 个2026-05-17
Filesystem 560c4363

MCP World

13未说明未标注2 个2026-05-17
Time 7365cb6d

MCP.so

2SSE有2 个2026-05-17
Server Everything (everything)

MCP World

11stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

pheme (Divyekant) 怎么安装?

公开资料给出的安装命令是 python3 -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

pheme (Divyekant) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

pheme (Divyekant) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

pheme (Divyekant) 需要 API Key 吗?

公开资料标注的认证方式是访问 Token,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

pheme (Divyekant) 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP