内容
<div align="center">
<img alt="AgentCat — see exactly how agents experience your product" src="docs/static/og-image.png" width="80%">
</div>
<h3 align="center">
<a href="#getting-started">快速开始</a>
<span> · </span>
<a href="#why-use-agentcat-">功能特点</a>
<span> · </span>
<a href="https://docs.agentcat.com">文档</a>
<span> · </span>
<a href="https://agentcat.com">官网</a>
<span> · </span>
<a href="#free-for-open-source">开源项目</a>
<span> · </span>
<a href="https://meet.agentcat.com/meet">预约演示</a>
</h3>
<p align="center">
<a href="https://badge.fury.io/py/agentcat"><img src="https://badge.fury.io/py/agentcat.svg" alt="PyPI version"></a>
<a href="https://pypi.org/project/agentcat/"><img src="https://img.shields.io/pypi/dm/agentcat.svg" alt="PyPI downloads"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg" alt="License: MIT"></a>
<a href="https://www.python.org/"><img src="https://img.shields.io/badge/python-3.10+-blue.svg" alt="Python"></a>
<a href="https://github.com/agentcathq/agentcat-python-sdk/issues"><img src="https://img.shields.io/github/issues/agentcathq/agentcat-python-sdk.svg" alt="GitHub issues"></a>
<a href="https://github.com/agentcathq/agentcat-python-sdk/actions"><img src="https://github.com/agentcathq/agentcat-python-sdk/workflows/MCP%20Version%20Compatibility%20Testing/badge.svg" alt="CI"></a>
</p>
> [!IMPORTANT]
> **MCPcat 现已更名为 AgentCat** 🐱 — 相同的团队,相同的产品,全新的名称。此软件包之前以 [`mcpcat`](https://pypi.org/project/mcpcat/) 发布,仍然可以继续使用,但新功能将在这里发布。升级只需几分钟 — 请参阅 [迁移指南](./MIGRATION.md)。
> [!NOTE]
> 寻找 TypeScript SDK?请访问 [agentcat-typescript](https://github.com/agentcathq/agentcat-typescript-sdk)。
AgentCat 是 MCP 服务器所有者的分析平台 🐱。它捕获用户意图和行为模式,帮助您了解 AI 用户真正需要您的工具 — 消除了猜测,加速了产品开发,只需一行代码。
该 SDK 还提供了一种免费且简单的方式,将日志、跟踪和错误等遥测数据转发到任何 Open Telemetry 收集器或 Datadog 和 Sentry 等流行工具。
```bash
# 基本安装(包括官方 MCP SDK)
pip install agentcat
# 支持 Jlowin 的 Prefect 的 FastMCP
pip install "agentcat[community]"
```
要了解更多关于我们的信息,请访问 [这里](https://agentcat.com)
## 为什么使用 AgentCat? 🤔
AgentCat 通过捕获用户分析数据和跟踪工具调用,帮助开发人员和产品所有者构建、改进和监控他们的 MCP 服务器。
使用 AgentCat 进行:
- **用户会话重放** 🎬。跟随您的用户,了解他们为什么使用您的 MCP 服务器,缺少哪些功能,以及他们来自哪些客户端。
- **跟踪调试** 🔍。查看用户遇到困扰的地方,跟踪并查找 LLMs 何时被您的 API 混淆,并跨所有 MCP 服务器部署调试会话。
- **现有平台支持** 📊。为现有的可观察性平台(OpenTelemetry、Datadog、Sentry)开箱即用日志记录和跟踪 — 消除了您自己实施遥测的繁琐工作。
<img alt="AgentCat architecture — the AgentCat SDK inside your MCP server sends analytics to your observability vendors and session replay to the AgentCat dashboard" src="docs/static/architecture.png" />
## 快速开始
要开始使用 AgentCat,首先请在 [agentcat.com](https://agentcat.com) 注册并获取您的项目 ID。有关详细设置说明,请访问我们的 [文档](https://docs.agentcat.com)。
一旦您拥有项目 ID,请将 AgentCat 集成到您的 MCP 服务器中:
```python
import agentcat
from mcp.server import FastMCP
server = FastMCP(name="echo-mcp", version="1.0.0")
agentcat.track(server, "proj_0000000")
```
### 用户识别
您可以通过 AgentCat 公开的简单回调函数 `identify` 来识别用户会话。
```python
from agentcat import AgentCatOptions, UserIdentity
def identify_user(request, extra):
user = myapi.get_user(request.params.arguments.token)
return UserIdentity(
user_id=user.id,
user_name=user.name,
user_data={
"favorite_color": user.favorite_color,
},
)
agentcat.track(server, "proj_0000000", AgentCatOptions(identify=identify_user))
```
### 屏蔽敏感数据
AgentCat 会屏蔽发送到其服务器的所有数据,并在静止状态下加密,但为了额外的安全性,它提供了一个钩子来对返回到其服务器的所有文本数据执行您自己的屏蔽。
```python
from agentcat import AgentCatOptions
# 同步版本
def redact_sync(text):
return custom_redact(text)
agentcat.track(server, "proj_0000000", AgentCatOptions(redact_sensitive_information=redact_sync))
```
### 将数据转发到现有的可观察性平台
AgentCat 与现有的可观察性堆栈无缝集成,提供自动日志记录和跟踪,而无需通常所需的繁琐设置。同时将遥测数据导出到多个平台:
```python
import os
from agentcat import AgentCatOptions
agentcat.track(
server,
"proj_0000000", # 或者,如果您只想使用 SDK 转发遥测数据,则为 None
AgentCatOptions(
exporters={
# OpenTelemetry - 与 Jaeger、Tempo、New Relic 等配合使用
"otlp": {
"type": "otlp",
"endpoint": "http://localhost:4318/v1/traces",
},
# Datadog
"datadog": {
"type": "datadog",
"api_key": os.getenv("DD_API_KEY"),
"site": "datadoghq.com",
"service": "my-mcp-server",
},
# Sentry
"sentry": {
"type": "sentry",
"dsn": os.getenv("SENTRY_DSN"),
"environment": "production",
},
}
)
)
```
了解更多关于我们的免费和开源 [遥测集成](https://docs.agentcat.com/telemetry/integrations)。
### 内部诊断
为了帮助我们捕获和修复安装问题,SDK 在设置或运行时出现错误时会向 AgentCat 发送一个小的匿名信号 — 永远不会发送您的工具调用、响应或有关用户的信息。记录仅包含操作元数据,例如您的项目 ID(或未设置时的匿名安装 ID)。您的本地 `~/agentcat.log` 不会更改。
诊断功能默认启用,可以通过以下方式完全关闭:
- `track(server, project_id, AgentCatOptions(disable_diagnostics=True))`,或
- `DISABLE_DIAGNOSTICS` 环境变量。
## 开源项目免费
AgentCat 对合格的开源项目免费。我们相信支持使 MCP 成为可能的生态系统。如果您维护开源 MCP 服务器,可以免费访问我们的完整分析平台。
**如何申请**:请发送电子邮件至 hi@agentcat.com,并附上您的仓库链接
_已经使用 AgentCat?我们将立即升级您的帐户。_
## 社区猫 🐱
认识 AgentCat 背后的猫!通过在 `docs/cats/` 目录中提交 PR 添加您的猫。
<div align="left">
<img src="docs/cats/bibi.png" alt="bibi" width="80" height="80">
<img src="docs/cats/zelda.jpg" alt="zelda" width="80" height="80">
</div>
_想添加您的猫?创建一个 PR,将您的猫的图片添加到 `docs/cats/` 并更新此部分!_