# mcpsignals

Source: https://zentered-studios.com/products/mcpsignals/

mcpsignals is a drop-in library for Node and Python that records how AI agents use your MCP server into a database you already own. No account, no hosted service, no per-session pricing.

- [View on GitHub](https://github.com/zentered-studios/mcpsignals)

## What it records

Every tool call writes one row: timestamp, tool name, duration, success or failure, and request and response size in bytes.

In Node and Python you can also ask for the agent's stated intent. It is off by default, and models sometimes skip the field or make up a reason.

## Nothing leaves your infrastructure

- The library only talks to the sink you configure: Postgres, BigQuery, Cloudflare D1, or your OpenTelemetry collector.
- No network call at import time. Not even an anonymous ping.
- Tool arguments are not recorded unless you opt in. Even then it keeps only key names and value types.
- MIT licensed and free.

## Install

Wrap your existing server in one call. How you register tools does not change.

Node.js 20+:

```sh
npm install mcpsignals
```

Python 3.10+:

```sh
pip install mcpsignals
```

Go 1.25+ (console and custom sinks only):

```sh
go get github.com/zentered-studios/mcpsignals/packages/go/v2
```

- [Quick start on GitHub](https://github.com/zentered-studios/mcpsignals#quick-start)

## Response size costs as much as call count

Roadbook runs mcpsignals on its MCP server. From 2026-09-03 to 2026-10-08 it recorded 23 tool calls, all successful, so an error dashboard would show nothing. The byte counts show the cost: list_journal_entries returns 256 times more bytes than it receives, roughly 7,500 tokens per call at 4 bytes per token. That is the tool to trim first.

## The MCP server audit

mcpsignals is the tooling behind our MCP server audit. We instrument your server, report which tools agents misuse, and ship the rewrites.

- [MCP servers: design, build, audit](https://zentered-studios.com/services/mcp-servers/)
