Skip to main content
Glama

tercet

Книга учёта машинных платежей. Каждая покупка агента фиксируется в момент совершения (запрос → котировка → подписанная авторизация), сверяется с ончейн-расчётом, и каждое расхождение получает имя — «поставлено-без-оплаты», «оплачено-без-поставки», «повтор», «сирота-цепи». tercet никогда не прикасается к ключам, остаткам и платёжному пути: он наблюдает и создаёт доказательства.

Терцет — это строфа из трёх строк, которые принадлежат друг другу; здесь каждая покупка — это один такой терцет: запрос, авторизация, расчёт. Данте связывал свои терцеты так, что ни одной нельзя было вынуть, не разрывая поэму; эта книга учёта связывает свои записи так же.

Python-пакет пока называется mesa (рабочее название); с первым релизом на PyPI он будет переименован в tercet. Документация проекта в docs/ написана на португальском языке — это дневник разработки и дизайн-документы по фазам; код, схемы и этот README — на английском.

Приложение — книга учёта в реальном времени, шесть экранов

uv run mesa-app        # -> http://127.0.0.1:8400

01 реестр (что покупали ваши агенты: порождённое состояние и цепочка событий каждой покупки) · 02 tca (потери, дедупликация между агентами, стоимость одного доставленного результата) · 03 риск (бюджет на каждое дерево задач, ручные согласования, паспорт плательщика) · 04 лаборатория (бэктест политик расходов на определённый момент с честными доверительными интервалами) · 05 книги (трёхсторонняя сверка, закрытые периоды с двумя сторонними метками времени, выписка по каждому контрагенту, налоговое представление для Бразилии) · 06 операции (запуск проверяемых движков с экрана — демо, сборщики, экспорты — только testnet).

Приложение read-only по построению: его сессия Postgres открывается с default_transaction_read_only=on, так что записать в книгу учёта оно не может, даже если бы захотело, — и tests/test_app.py это доказывает. Данные всегда реальные; testnet и синтетические строки помечены прямо на экране. Нажмите на любой бейдж, чтобы увидеть его легенду.

Related MCP server: swarm-at

MCP-сервер — книга учёта как инструменты для агентов

claude mcp add tercet -- uv run mesa-mcp    # then ask: "how much did my agents spend?"

Семь read-инструментов (закрытый список, подтверждённый тестами): status_do_livro, spese, compras (фильтруется), compra (одна покупка + её цепочка событий), vereditos, passaportes, fiscal. Та же гарантия, что и в приложении: сессия структурно read-only — у MCP-сервера нет пути записи; tests/test_mcp_livro.py это доказывает. Транспорт: stdio, локальный.

Экспорты — универсальная бухгалтерия + представление OECD CARF

uv run python scripts/fase13/contabil_build.py   # -> contabil/<yyyy-mm>/  (universal CSV, QuickBooks, Xero + per-tx audit detail)
uv run python scripts/fase13/carf_build.py       # -> fiscal/carf/<year>/  (OECD CARF view, born as OECD11 test data)

Журнал двойной записи за каждый период (доказано: дебет == кредит; честная агрегация микроплатежей с шестиозрядным аудиторским мостом, привязывающим каждый цент к tx-хешу), а также представление CARF — то, что учреждение обязано было бы сообщать о этих сделках по структуре OECD (официальное руководство от июля 2025 года), — размечено как демо, с синтетическими лицами, реальными числами. Подробности и оговорки: docs/fase13-export.md.

С нуля, только с этим README

Предварительные требования: uv, Docker, Python 3.11+`.

# 1. dependencies + database (Postgres 17 on 127.0.0.1:5433 — your machine only)
uv sync
docker run -d --name mesa-pg -e POSTGRES_USER=mesa -e POSTGRES_PASSWORD=mesa `
  -e POSTGRES_DB=mesa -p 127.0.0.1:5433:5432 `
  -v mesa-pgdata:/var/lib/postgresql/data postgres:17
uv run python scripts/check_db.py            # migrations + hash-chain genesis, idempotent

# 2. TEST wallets (written to a local .env; never committed) + faucet USDC
uv run python scripts/setup_wallets.py
#    -> paste the buyer address into https://faucet.circle.com (USDC / Base Sepolia)
uv run python scripts/check_balance.py       # balance read on-chain

# 3. a toy seller + 10 REAL x402 payments on testnet
uv run uvicorn mesa.http.seller:app --port 8402     # terminal 1
uv run python scripts/fase1/buyer.py 10             # terminal 2 (writes the ledger)

# 4. the chain is the source of truth: collect and reconcile
uv run python -m mesa.collector              # matches (authorizer, nonce) with the ledger
uv run python -m mesa.cli                    # the verdict table, orphans in red

# 5. the product
uv run mesa-app                              # -> http://127.0.0.1:8400

Затраты — ноль реальных денег: USDC с крана, а по схеме exact газ оплачивает фасилитатор.

  • Что произошло, что это доказовало и чего ждать дальше: docs/DIARIO.md (поортугальски) — построечный дневник; дизайн-файменты по фазам — в docs/фазеN.md? Wait, need preserve docs/faseN.md verbatim. So "дизайн-документы по фазам находятся в docs/faseN.md".

  • Секреты (приватные ключи, созданные setup_wallets.py) хранятся в локальном .env.gitignore, никогда никаких коммитов). Если нужно хранить их в другом месте, укажите MESA_ENV_FILE на нужный файл — и держите его вне синхронизируемых папок (OneDrive/Dropbox): ключ в автозагрузке — это ключ в облаке.

Карта репозитория

Путь

Что это

src/mesa/config.py

Константы (USDC, сеть, id цепи) + Settings, читаемые из .env

src/mesa/db.py

Доступ к книге учёта — только вставка по построению

src/mesa/reconcile.py

Сердце: трёхсторонняя сверка, чистая функция

src/mesa/collector.py

Ончер-сборщик: Transfer + AuthorizationUsed для каждого txHash; идемпотентные, сохранённый курсор

src/mesa/cli.py

uv run python -m mesa.cli — таблица результатов, незакрытые записи красным

src/mesa/http/

HTTP-рельс: игрушечный продавец (с режимами хаоса) + инструментированного покупателя

src/mesa/mcp/

MCP: рельса оплачиваемых инструментов (продавец/покупатель) + livro.py, продуктовый MCP-сервер только для чтения

src/mesa/app/

Веб-приложение (FastAPI + Jinja2, серверный рендеринг, read-only сессия)

src/mesa/passaporte.py

Паспорт плательщика: переносимая, самописная история расчётов

src/mesa/contabil.py / carf.py / descripto.py

Рендерери экспорта (бухгалтерия / OECD CARF / Бразилия)

migrations/

Нумерованные простые SQL — схема не зависит от рельс и транспорта

scripts/

Утиплиты окружения + faseN/ — исполнительные доказательства каждой фазы

tests/

Тесты как ворота: грязные данные на входе → ожидаемая классификация на выходе

docs/

Дневник разработки + дизайн-документы по фазам (португальский)

timidator/

Автономные проверяющие — сверяют книгу и паспорта, не доверяя этому репозиторио

Окружение

uv sync
docker run -d --name mesa-pg -e POSTGRES_USER=mesa -e POSTGRES_PASSWORD=mesa `
  -e POSTGRES_DB=mesa -p 127.0.0.1:5433:5432 `
  -v mesa-pgdata:/var/lib/postgresql/data postgres:17
# 127.0.0.1 is mandatory: without it the ledger is open to any machine on the same
# Wi-Fi (docs/seguranca.md, hole #1). scripts/saude.py checks this, always.
uv run python scripts/setup_wallets.py   # generates the EOAs -> .env (NEVER committed)
uv run python scripts/check_db.py        # Postgres up + migrations + genesis
uv run python scripts/check_balance.py   # USDC balance read on-chain
uv run python scripts/saude.py           # ONE command: ruff+mypy+pytest+verifier+ports+secret scan
uv run python scripts/backup_db.py       # ledger dump -> backups/ (routine, ~5s)

Кран: https://faucet.circle.com → USDC → Base Sepolia (20 USDC / 2 часа на адрес). Ключ Anthropic (только для демо агента на рёльсе счетом): ANTHROPIC_API_KEY=... в вашем файле с секретами.

Запустить подтверждение каждой фазы

# Phase 1 — the ledger closes on dirty data
uv run uvicorn mesa.http.seller:app --port 8402     # terminal 1: HTTP seller
uv run python scripts/fase1/chaos_run.py            # terminal 2: chaos + reconciliation + asserts

# Phase 2 — x402 over MCP
uv run python -m mesa.mcp.seller                    # terminal 1: MCP seller (port 8403)
uv run python scripts/fase2/mcp_once.py             # terminal 2: 1 paid tool call + ledger

# Phase 10 — the payer passport (emits, verifies, gates a seller)
uv run python scripts/fase10/gate10_demo.py

# Any time: sweep the chain and reconcile
uv run python -m mesa.collector                      # testnet (seller payTo)
uv run python -m mesa.collector --pagador            # mainnet (payer-side)
uv run python -m mesa.cli

Качество («готово» имеет определение)

uv run python scripts/saude.py    # ONE command: ruff+mypy+pytest+verifier+ports+secret scan

Модель угроз и явно исключённые из сферы действия, поименованные отдельно: docs/seguranca.md.

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables agents to search and inspect live service offerings, generate x402 payment snippets, and understand blockchain-only balance policies.
    4
    96
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables agent settlement, trust verification, and ledger operations for multi-agent workflows, with tools for blueprint management, credit tracking, and provenance recording.
    1
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Exposes a ledger system (invoice queue, duplicate control, VAT register, contractor history, decision journal) as MCP tools for AI agents, enabling accurate invoice processing with deterministic validation.
    7

View all related MCP servers

Related MCP Connectors

  • Read-only discovery for exact-commit Agent Skill validation, x402 payment, and signed receipts.

  • Read-only public financial evidence from LiquiLens, Undertow, Seiche and Palimpsest.

  • Immutable event logging and audit trail for agent transactions

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BenyFridY/tercet'

If you have feedback or need assistance with the MCP directory API, please join our Discord server