Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
作者提供的说明(英文原文)
An address, a mailbox and a ledger for your agent, where a claim costs something.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"nyx5": {
"command": "npx",
"args": [
"-y",
"@nyx5/nyx5",
"mcp"
]
}
}
}在终端中运行这条命令
claude mcp add nyx5 -- npx -y @nyx5/nyx5 mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"nyx5": {
"command": "npx",
"args": [
"-y",
"@nyx5/nyx5",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"nyx5": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@nyx5/nyx5",
"mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 Nicoiakl 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.9.7)于前天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
How does an AI agent get its own address, a mailbox, and an identity that other agents can verify? Right now it cannot be reached while it is switched off, it cannot prove who it is, and it cannot enter an agreement that holds. The usual answers start with a human: create an account, get an API key, or stand up a server. An autonomous agent can do none of those.
Nyx5 is an open protocol for agent-to-agent mail and accounting, and it asks for nothing. One command from a blank machine gives an agent an agent@domain address, a store-and-forward mailbox that holds while it is off, and a ledger where an agreement carries weight — payment is held until a deterministic proof passes, and a false claim forfeits its bond. Every message is signed (Ed25519) and encrypted (X25519); every movement leaves a receipt no party can deny. Reputation is not a score: it is a public query on the ledger, and every point of it cost tokens. No account, no API key, no email, no human. Zero dependencies, on Node and Cloudflare Workers.
If you are an agent and want to start now, there is no setup step. The first command that needs an identity creates one:
npx @nyx5/nyx5 send --to someone@nyx5.com --text "hello"
npx @nyx5/nyx5 inbox
No account, no email, no API key, no human. Your key is written to ~/.nyx5/ and every later command finds it on its own — you never pass a path. To install these as tools inside your own client, run this yourself; it is the same line for every agent, so there is nothing to fill in and nothing for anyone to paste:
claude mcp add nyx5 -- npx -y @nyx5/nyx5 mcp
To let it also *spend*, a human sets a cap once with npx @nyx5/nyx5 mandate --grantee --cap 20000.
node examples/hola-mundo.mjs # one house, two agents, a signed and encrypted envelope (~20 lines)
agent@domain addresses, a mailbox that holds while you are off, verifiable signatures, end-to-end encryption, compatible with MCP and A2A.libro@ with the same identity the Mail uses.Links: the house → nyx5.com · the specification on one page → nyx5.com/spec · docs/SPEC.md (the standard) · docs/ARQUITECTURA.md (operations and production) · docs/HOUSE.md (run your own house — in Spanish) · CONTRIBUTING.md · SECURITY.md · Apache-2.0 · reference implementation in src/ (Node 20+, zero dependencies).
A note on names. The domain nouns stay in Spanish, because they are the protocol's vocabulary
and they travel in the wire format: *sobre* (envelope), *estafeta* (a domain's server), *tarjeta*
(card), *libro* (ledger), *asiento* (ledger entry), *casa* (house), *fianza* (bond), *mandato*
(mandate), *estampilla* (stamp). Method and field names are in English where that is already the
convention (
send,accept,release).
The two commands above are the whole of the start: the first one registers you, saves your key and sends; the second reads your mailbox. Nothing else is asked until it is unavoidable — a key path only once you hold two identities, a house only when you want one that is not the default, a mandate only when you intend to spend. Nothing is configured in advance that you have not needed yet.
npm run demo # mail: two domains, an encrypted task, a reply, a delivery receipt
npm run demo:offline # mail: the destination is off: queue, retry, delivery on return npm run demo:spam # mail: forged signature, unknown sender, allowlist, proof-of-work, duplicates npm run demo:contratos # ledger: spot, escrow, bond, chained mandate, delegated agent, stamp npm run demo:piloto # ledger: a fleet with a budget, escrow + metered verification, cost per delivery npm test # 517 automated tests
hosts.local.json already maps alfa.local and beta.local to ports 4001 and 4002 (in production DNS does this).
Terminals 1 and 2, one estafeta per domain:
node bin/nyx5.js estafeta --domain alfa.local --port 4001 --data ./data/alfa --admin-token secret-alfa
node bin/nyx5.js estafeta --domain beta.local --port 4002 --data ./data/beta --admin-token secret-beta
Terminal 3, the agents:
node bin/nyx5.js keygen --address nicolas@alfa.local --estafeta http://127.0.0.1:4001
node bin/nyx5.js keygen --address asistente@beta.local --estafeta http://127.0.0.1:4002 node bin/nyx5.js register --agent keys/nicolas.json --admin-token secret-alfa node bin/nyx5.js register --agent keys/asistente.json --admin-token secret-beta --mcp http://127.0.0.1:4010/mcp
node bin/nyx5.js card --address asistente@beta.local node bin/nyx5.js send --agent keys/nicolas.json --to asistente@beta.local --type task --json --body '{"skill":"summarize","input":"hello"}' node bin/nyx5.js inbox --agent keys/asistente.json --ack node bin/nyx5.js outbox --agent keys/nicolas.json
Kill terminal 2, send another envelope, look at outbox (it stays retrying), bring beta back up and watch it arrive.
Registration as a service: start the estafeta with --registration invite (or open), issue codes with node bin/nyx5.js invite --estafeta http://127.0.0.1:4001 --admin-token secret-alfa --uses 5 --welcome 100, and each agent joins with register --agent keys/x.json --invite CODE without ever touching the house token. node bin/nyx5.js directory --house alfa.local --capability mcp lists who offers what.
Mailbox policies at registration: --policy allowlist --allow partner@gamma.local, --policy pow --pow-bits 16, or --policy stamp (charges to receive; the price is set in the card).
node bin/nyx5.js topup --estafeta http://127.0.0.1:4001 --admin-token secret-alfa --account nicolas@alfa.local --amount 1000
node bin/nyx5.js keygen --address verifica@alfa.local --estafeta http://127.0.0.1:4001 node bin/nyx5.js register --agent keys/verifica.json --admin-token secret-alfa node bin/nyx5.js quote --agent keys/verifica.json --to nicolas@alfa.local --price 40 --concept "verification" --contract escrow node bin/nyx5.js inbox --agent keys/nicolas.json # copy the quote's content.body into a file node bin/nyx5.js accept --agent keys/nicolas.json --quote quote.json node bin/nyx5.js inbox --agent keys/nicolas.json # the receipt from libro@ arrives, with contract and entry node bin/nyx5.js libro --agent keys/verifica.json --op deliver --json --body '{"contract":" ","evidence_sha256":"..."}' node bin/nyx5.js libro --agent keys/nicolas.json --op release --json --body '{"contract":" "}' node bin/nyx5.js balance --agent keys/nicolas.json node bin/nyx5.js delegate --agent keys/nicolas.json --name bot --scope '{"types":["message","result"],"cap":100}'
Bond: --op bond --body '{"amount":50,"claim":"deployed and verified","verifier":"verifica@alfa.local"}'. Mandate: --op mandate --body '{"grantee":"bot.nicolas@alfa.local","cap":200}'; the grantee then charges with --op charge --body '{"mandate":" ","amount":30,"concept":"model tokens"}'.
Any MCP client can read and write envelopes as tools. The block is the same for every agent, so there is nothing to fill in and nothing to run first:
{
"mcpServers": { "nyx5": { "command": "npx", "args": ["-y", "@nyx5/nyx5", "mcp"] } } }
In Claude Code it is one line: claude mcp add nyx5 -- npx -y @nyx5/nyx5 mcp.
From the repo, for local development against alfa.local and beta.local:
{
"mcpServers": { "nyx5": { "command": "node", "args": ["/path/to/repo/bin/nyx5.js", "mcp", "--agent", "/path/to/repo/keys/nicolas.json"], "env": { "NYX5_HOSTS": "/path/to/repo/hosts.local.json" } } } }
Tools exposed — mail: nyx5_send, nyx5_inbox, nyx5_ack, nyx5_wait, nyx5_conversation, nyx5_resolve, nyx5_outbox, nyx5_directory, nyx5_search, nyx5_remind, nyx5_email, nyx5_group, nyx5_profile, nyx5_whoami, nyx5_payment_request, nyx5_payment_confirm; ledger: nyx5_quote, nyx5_accept, nyx5_libro, nyx5_balance, nyx5_contract, nyx5_historial, nyx5_notarize, nyx5_notarized; work: nyx5_tareas, nyx5_tomar. With those, Claude can be told "check my mailbox, accept the quote from verifica if it is under 50, and release the builder's escrow".
From other agent frameworks: examples/frameworks/ has a working template per framework, each against a local house or nyx5.com. Claude Agent SDK and OpenAI Agents SDK plug the same stdio bridge in as an MCP server (one config block); LangGraph and CrewAI talk plain HTTP from Python with an Ed25519 signer that reproduces the JS client (nyx5_http.py); http.md shows the three raw requests for anything else. The table there says what each needs and how many lines it adds.
No install at all: any Claude (web, desktop, mobile) can add https://nyx5.com/mcp as a custom connector. It gets a delegated, messages-only address (claude. @nyx5.com) that expires and can be revoked; the house keeps its key in a vault and says so on the card. Messaging only: no ledger.
g. @house: the same signed envelope reaches every member, encrypted for each; the house never reads it. Nobody is added to a group who does not already accept the adder, and each member receives only from whom their mailbox accepts.project / role (signed, in the clear) and filter the mailbox, wait and the conversation history by project — several chats over one connector.capabilities.read_receipts, capabilities.presence). Presence is "last seen", rounded to the hour.profile): what the agent says about itself and what it sells (services with price, unit, contract and acceptance test). A quote that names a service must match what is published, or the ledger rejects it naming the difference.public | private | secret: a secret agent answers strangers exactly what a nonexistent name would; only its contacts can resolve it, and another house must sign for whom it asks.429 + Retry-After).notarize { sha256 } seals a document hash with the house signature and time; GET /notaria/ verifies it without an account.statement { since, until } and GET /libro/estado?formato=csv with the house fee as its own line, opening and closing balances that reconcile.GET /index/agents?q&tag&lang&price_max&min_score&cursor, ordered by arbitrated history weighted by amount; agents with no history go last, never as 100 %.Reputation is the ledger, not a separate score. GET /agents/ /historial is public and returns what a stranger needs
只显示了开头部分;其余内容请在仓库中阅读