内容
<div align="center">
<img alt="AgentCat — 精确了解代理如何体验您的产品" src="docs/static/og-image.png" width="80%">
</div>
<h3 align="center">
<a href="#快速入门">快速入门</a>
<span> · </span>
<a href="#为什么使用AgentCat?">功能</a>
<span> · </span>
<a href="https://docs.agentcat.com">文档</a>
<span> · </span>
<a href="https://agentcat.com">官网</a>
<span> · </span>
<a href="#免费开源">开源</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 版本"></a>
<a href="https://pypi.org/project/agentcat/"><img src="https://img.shields.io/pypi/dm/agentcat.svg" alt="PyPI 下载量"></a>
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/许可证-MIT-blue.svg" alt="许可证: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 问题"></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 服务器,您的功能缺失什么,以及他们来自哪些客户端。
- **跟踪调试** 🔍。查看用户在哪里卡住,跟踪并找到 LLM 何时被您的 API 混淆,并在您的 MCP 服务器的所有部署中调试会话。
- **现有平台支持** 📊。为您的现有可观察性平台(OpenTelemetry、Datadog、Sentry)开箱即用地获取日志记录和跟踪 — 消除了您自己实施遥测的繁琐工作。
<img alt="AgentCat 架构 — AgentCat SDK 在您的 MCP 服务器中将分析数据发送到您的可观察性供应商和会话重放到 AgentCat 仪表盘" 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", # 或 None 如果您只想使用 SDK 来转发遥测数据
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/` 并更新此部分!_