Token导航 LogoToken导航

MCP Server · 开发工具

tgmock (Azdaev)

一个用于测试Telegram机器人的模拟API服务器,支持多种框架和语言,无需真实Telegram账户即可进行测试。

stdio官方级别未说明来源级核验工具 10
开发工具PythonClaude自动化测试

快速开始

作者 / 组织
azdaev
提供方
azdaev

工具数量

10

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

4

仓库热度

收录来源

1 个

MCP World

选型结论

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

分类

开发工具

传输方式

stdio

认证方式

访问 Token

部署方式

公开资料未说明

安装与配置

安装命令

pip install tgmock

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

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

tgmock

用于测试机器人的伪造Telegram API服务器-pytest插件+Claude Code MCP服务器。

适用于任何机器人框架(aiogram、python电报机器人、Telegraf、go电报机器人api等)。

太长,读不下去了 --添加市场,安装插件,向您的机器人添加4行,并让Claude进行测试:

/plugin marketplace add azdaev/tgmock
/plugin install tgmock@tgmock

克劳德将指导你完成剩下的工作 /tgmock:setup 和 /tgmock:test.

______________________________________________________________________

安装

Claude Code插件(推荐)

自动安装MCP服务器+技能:

/plugin marketplace add azdaev/tgmock
/plugin install tgmock@tgmock

仅限MCP服务器

不使用插件系统手动注册:

claude mcp add tgmock --transport stdio -- python3 -m tgmock.mcp_server

需要 pip install "tgmock[mcp]" 在Claude Code运行的环境中。

仅限pytest插件

pip install tgmock

pytest插件通过以下方式自动注册 pytest11 入口点。

运作原理

tgmock启动一个模仿Telegram Bot API的本地HTTP服务器。你的机器人与它对话,而不是与真正的Telegram对话。您通过测试工具发送消息并单击按钮;机器人对假服务器做出响应。不需要真正的Telegram帐户。

对于Python机器人,tgmock会自动修补HTTP客户端(aiohttp、httpx),因此您的机器人不需要更改任何代码。只需配置即可。

安装

pip install tgmock          # pytest plugin only
pip install "tgmock[mcp]"   # + MCP server for Claude Code

配置您的项目

添加到您的 .env:

TGMOCK_BOT_COMMAND=python main.py
TGMOCK_READY_LOG=Bot starting

对于编译语言(启动前预构建):

TGMOCK_BUILD_COMMAND=go build -o /tmp/mybot ./cmd/server
TGMOCK_BOT_COMMAND=/tmp/mybot

或在中配置 pyproject.toml:

[tool.tgmock]
bot_command = "python main.py"
ready_log = "Bot starting"
port = 8999
startup_timeout = 15

配置优先级: TGMOCK_* 环境变量> TGMOCK_* 在 .env 文件> [tool.tgmock] 在 pyproject.toml >默认值。

自动补丁(Python机器人——无需更改代码)

对于使用Python的机器人 意图tp (aiogram)或 httpx (python telegram bot v20+),tgmock自动猴子补丁HTTP客户端重定向 api.telegram.org 调用模拟服务器。默认情况下,这是启用的,不需要更改代码。

要禁用:

TGMOCK_AUTO_PATCH=false

手动设置(非Python机器人或auto_patch=false)

对于非Python机器人,或者如果你更喜欢显式控制,请添加 BOT_API_BASE 支持你的bot.tgmock注入 BOT_API_BASE 自动——机器人必须使用它。

图表3.x:

import os
from aiogram.client.session.aiohttp import AiohttpSession
from aiogram.client.telegram import TelegramAPIServer

api_base = os.environ.get("BOT_API_BASE")
if api_base:
    session = AiohttpSession(api=TelegramAPIServer.from_base(api_base))
    bot = Bot(token=config.bot_token, session=session)
else:
    bot = Bot(token=config.bot_token)

python电报机器人:

base_url = os.environ.get("BOT_API_BASE", "https://api.telegram.org/bot")
app = Application.builder().token(TOKEN).base_url(base_url).build()

Telegraf(Node.js):

const bot = new Telegraf(token, {
  telegram: { apiRoot: process.env.BOT_API_BASE || 'https://api.telegram.org' }
})

go电报机器人api:

bot, _ := tgbotapi.NewBotAPIWithAPIEndpoint(token, os.Getenv("BOT_API_BASE")+"/bot%s/%s")

pytest插件

pytest插件在以下情况下自动注册 pip install tgmock.

import pytest

@pytest.fixture(scope="session")
async def bot(tgmock_server, tgmock_bot):
    yield tgmock_bot

async def test_start(bot):
    await bot.send("/start")
    snap = await bot.snapshot()
    assert "Welcome" in snap

看 tests/ 例如。

MCP服务器(克劳德代码)

将tgmock注册为Claude Code MCP服务器:

claude mcp add tgmock --transport stdio -- python3 -m tgmock.mcp_server

或者作为插件安装:

claude plugin install /path/to/tgmock

可用工具

工具说明
tg_start启动模拟服务器+机器人。如果 .env 已配置。
tg_send(text)以测试用户身份发送消息,等待机器人响应。
tg_tap(label)单击内联键盘按钮(部分标签匹配)。
tg_snapshot获取当前对话状态。
tg_logs(tail=50)获取bot stdout/stderr的最后N行。
tg_restart重启bot+重置模拟状态(保持服务器运行)。
tg_reset重置用户状态(清除响应/事件)。
tg_events获取机器人发布的自定义事件
tg_users列出活动测试用户。
tg_stop停止一切。

快速会话

tg_start → tg_send("/start") → tg_snapshot → tg_tap("Button") → tg_stop

调试

当机器人无法启动时,错误包括机器人输出的最后30行。 使用 tg_logs() 随时查看机器人正在打印什么。

自定义事件

你的机器人可以将结构化事件发布到tgmock进行断言,而无需解析文本:

import aiohttp, os

async def post_event(type: str, data: dict):
    base = os.environ.get("BOT_API_BASE", "")
    if base:
        async with aiohttp.ClientSession() as s:
            await s.post(f"{base}/test/event", json={"type": type, **data})

然后断言 tg_events(type="tool_call").

许可证

麻省理工学院

工具与能力

工具数量

10

资源数量

0

提示词数量

0

能力标签

Telegram机器人测试Python本地部署API模拟自动化测试开发工具

支持客户端

Claude

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

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 10 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备访问 Token,没有凭据没法直接试。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。

更适合

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

不太适合

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

同类对比

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

MCP World · 本页

10stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

tgmock (Azdaev) 怎么安装?

公开资料给出的安装命令是 pip install tgmock,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

tgmock (Azdaev) 怎么在 Claude Desktop、Cursor 里配置?

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

tgmock (Azdaev) 收费吗?

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

tgmock (Azdaev) 需要 API Key 吗?

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

tgmock (Azdaev) 支持哪些客户端?

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

来源信息

继续浏览同类 MCP