PHPackages                             artisan-build/hone-server - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. artisan-build/hone-server

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

artisan-build/hone-server
=========================

The receive/store/serve side of Hone: ingest endpoint, Postgres storage, rollups, prune, and the read-only MCP server. Consumed by the Hone app.

v1.2.0(2w ago)02↓50%MITPHPPHP ^8.3

Since Jun 11Pushed 2w agoCompare

[ Source](https://github.com/artisan-build/hone-server)[ Packagist](https://packagist.org/packages/artisan-build/hone-server)[ RSS](/packages/artisan-build-hone-server/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (17)Versions (4)Used By (0)

hone-server
===========

[](#hone-server)

The **receive side** of [Hone](https://github.com/artisan-build/hone). It is consumed by the Hone app and provides everything between the ingest endpoint and the coding agent: receive, store, roll up, prune, and serve over MCP.

> **Read-only mirror.** This repository is a read-only split of the [`artisan-build/hone`](https://github.com/artisan-build/hone) monorepo. Issues and pull requests are disabled here — please open them on the monorepo.

What it provides
----------------

[](#what-it-provides)

- **Ingest endpoint** — validates the per-app `HONE_TOKEN` against the registry, resolves the source app, version-checks the envelope (parse if known, **4xx if newer**), and enqueues raw payloads to Redis. Returns fast; no synchronous DB writes.
- **Capabilities endpoint** — advertises the envelope majors this server supports, so a client's `hone:update` can check compatibility.
- **Worker** — drains Redis and writes raw events to Postgres, tagged by `(app, record_type, deploy, occurred_at)`.
- **App registry** — source apps plus hashed tokens, config-file driven from `.env`. Adding an app is a config entry plus a deploy.
- **Rollups &amp; prune** — scheduled jobs that compute percentiles from raw data (before it is pruned) and persist daily aggregates that survive pruning.
- **MCP server** — a read-only, multi-app-aware surface a coding agent queries.

Storage model
-------------

[](#storage-model)

Telemetry is stored generically rather than as twelve bespoke schemas. Every record type — requests, queries, jobs, exceptions, commands, cache, mail, notifications, outgoing HTTP, scheduled tasks, logs, users — flows through the same three tables. `app` and `deploy` are first-class dimensions on all of them.

TableLifetimeShape`raw_events`short (~72h)`id, app, record_type, deploy, occurred_at, normalized_key, payload (jsonb)``aggregates`long (~90d)`app, record_type, normalized_key, deploy, bucket_date, metric, value, sample_count``samples`short (~7d)a few slowest exemplars per `(app, record_type, normalized_key)` windowThe Nightwatch record bodies are stored **opaquely as `jsonb`** and interpreted only at rollup and query time — so a change in Nightwatch's payload shape degrades to "a rollup misses a field," never an ingest failure.

Rollups &amp; retention
-----------------------

[](#rollups--retention)

- The **rollup job runs before the prune job.** Percentiles (p95/p99) are computed from raw data with Postgres `percentile_cont` within the raw-retention window and persisted to `aggregates`, surviving the prune.
- **Daily bucketing** is the regression unit.
- Retention is configurable per install from `.env`: `raw_events` ~72h · `aggregates` ~90d · `samples` ~7d.

MCP server
----------

[](#mcp-server)

- **Transport:** Streamable HTTP with a per-environment bearer token (for remote agents and CI), plus stdio for local Claude Code.
- **Read-only and multi-app aware:** every tool takes an optional `app` filter and otherwise aggregates across the environment's apps.
- **Tools (v1):** `slow_requests`, `slow_queries`, `slow_jobs`, `slow_outgoing_requests`, `exceptions`, `cache_stats`, `queue_throughput`, `mail_volume`, `notification_volume`, `scheduled_task_health`, `command_stats`, `log_volume_by_level`, `top_users`, `regression_check`, `deploys`, `ingest_freshness`, `query_metric`, `record_types`, `list_apps`.

Output is PII-safe by construction — bindings are never captured and redaction happens upstream — so feeding tool results into an agent context doesn't leak customer data.

Installation
------------

[](#installation)

```
composer require artisan-build/hone-server
```

This package is consumed by the Hone app. See the [Hone app README](https://github.com/artisan-build/hone) for environment setup, the app registry, scheduling the rollup/prune jobs, and running the queue worker.

License
-------

[](#license)

MIT. See [LICENSE](LICENSE).

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance97

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~14 days

Total

3

Last Release

17d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1053395?v=4)[Ed Grosvenor](/maintainers/edgrosvenor)[@edgrosvenor](https://github.com/edgrosvenor)

---

Top Contributors

[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (1 commits)")

---

Tags

laravelmcptelemetryobservabilitynightwatchhone

###  Code Quality

TestsPest

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/artisan-build-hone-server/health.svg)

```
[![Health](https://phpackages.com/badges/artisan-build-hone-server/health.svg)](https://phpackages.com/packages/artisan-build-hone-server)
```

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3345.3M347](/packages/psalm-plugin-laravel)[laravel/ai

The official AI SDK for Laravel.

1.0k3.2M250](/packages/laravel-ai)[api-platform/laravel

API Platform support for Laravel

58174.6k17](/packages/api-platform-laravel)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45444.2k1](/packages/pressbooks-pressbooks)[simplestats-io/laravel-client

Server-side analytics for Laravel that follows the full funnel from visit to registration to payment, attributed to the channel that drove it. Revenue, MRR, churn and ad-spend profit (ROAS/CAC) per channel. GDPR compliant, ad-blocker proof.

5022.6k](/packages/simplestats-io-laravel-client)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
