Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Pay x402 APIs in USDG on Robinhood Chain, borrow and repay a Priors credit line, check records.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
PRIORS_KEY, PRIORS_KEY_FILE, PRIORS_AGENT_ID, PRIORS_MAX_PRICE_USD, PRIORS_MAX_SPEND_USD, PRIORS_MAX_BORROW_USD, PRIORS_MAX_SPEND_DAY_USD, PRIORS_MAX_BORROW_DAY_USD, PRIORS_PAY_HOSTS标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"priors": {
"command": "npx",
"args": [
"-y",
"@priors/mcp"
],
"env": {
"PRIORS_KEY": "your-value",
"PRIORS_KEY_FILE": "your-value",
"PRIORS_AGENT_ID": "your-value",
"PRIORS_MAX_PRICE_USD": "your-value",
"PRIORS_MAX_SPEND_USD": "your-value",
"PRIORS_MAX_BORROW_USD": "your-value",
"PRIORS_MAX_SPEND_DAY_USD": "your-value",
"PRIORS_MAX_BORROW_DAY_USD": "your-value",
"PRIORS_PAY_HOSTS": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add priors --env PRIORS_KEY=your-value --env PRIORS_KEY_FILE=your-value --env PRIORS_AGENT_ID=your-value --env PRIORS_MAX_PRICE_USD=your-value --env PRIORS_MAX_SPEND_USD=your-value --env PRIORS_MAX_BORROW_USD=your-value --env PRIORS_MAX_SPEND_DAY_USD=your-value --env PRIORS_MAX_BORROW_DAY_USD=your-value --env PRIORS_PAY_HOSTS=your-value -- npx -y @priors/mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"priors": {
"command": "npx",
"args": [
"-y",
"@priors/mcp"
],
"env": {
"PRIORS_KEY": "your-value",
"PRIORS_KEY_FILE": "your-value",
"PRIORS_AGENT_ID": "your-value",
"PRIORS_MAX_PRICE_USD": "your-value",
"PRIORS_MAX_SPEND_USD": "your-value",
"PRIORS_MAX_BORROW_USD": "your-value",
"PRIORS_MAX_SPEND_DAY_USD": "your-value",
"PRIORS_MAX_BORROW_DAY_USD": "your-value",
"PRIORS_PAY_HOSTS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"priors": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@priors/mcp"
],
"env": {
"PRIORS_KEY": "your-value",
"PRIORS_KEY_FILE": "your-value",
"PRIORS_AGENT_ID": "your-value",
"PRIORS_MAX_PRICE_USD": "your-value",
"PRIORS_MAX_SPEND_USD": "your-value",
"PRIORS_MAX_BORROW_USD": "your-value",
"PRIORS_MAX_SPEND_DAY_USD": "your-value",
"PRIORS_MAX_BORROW_DAY_USD": "your-value",
"PRIORS_PAY_HOSTS": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
PRIORS_KEY_FILE envPRIORS_AGENT_ID envPRIORS_MAX_PRICE_USD envPRIORS_MAX_SPEND_USD envPRIORS_MAX_BORROW_USD envPRIORS_MAX_SPEND_DAY_USD envPRIORS_MAX_BORROW_DAY_USD envPRIORS_PAY_HOSTS env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 priors-agents 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:PRIORS_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.18.2)于昨天进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Happo
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Review Happo's visual and accessibility diffs: inspect comparisons, accept or reject, report flakes.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
An MCP server that gives an AI assistant (Claude Desktop, Claude Code, or any MCP client) a USDG wallet on Robinhood Chain: pay x402-priced APIs, check balances, read any agent's Priors credit record, and borrow from and repay the agent's own Priors line, and keep its spare USDG saved in a Morpho vault until it needs it.
No install and no key: https://mcp.priors.trade/mcp (Streamable HTTP) answers the read-only questions (an agent's record and score, a backer's record, the pool's figures, recent loans, the facilitator's services) from the same public data as priors.trade. It holds no key and cannot send a transaction.
claude mcp add --transport http priors https://mcp.priors.trade/mcp
or, in any client that takes a remote server: { "mcpServers": { "priors": { "url": "https://mcp.priors.trade/mcp" } } }.
Show the agent's record in its README with the badge (its score and loans repaid, red once it has defaulted), its own id for ; Copy badge on priors.trade/agent?id= gives the line with the id filled in:
[](https://priors.trade/agent?id=<id>)
This package is the other half: a local server with the agent's wallet behind it, for paying, borrowing and repaying.
| tool | what it does | needs the key | |
|---|---|---|---|
pay_url(url, method?, body?, max_price_usd?, max_borrow_usd?, use_savings?) | fetch an https URL, pay its x402 402 in USDG if the price is ≤ max_price_usd (default $0.10); once the 402 names the price, if the wallet is short it first takes the difference out of savings (unless use_savings: false), and borrows the gap only if max_borrow_usd is given. Refuses private and local addresses, never follows a redirect, answers within 45 s, and never signs a second payment for a purchase (the same method, URL and body) that is still pending, until its validBefore plus 60 s (a new call resends the same one, also after a restart, in a new session or from another session of the same wallet: see PRIORS_STATE_DIR) | yes | |
wallet_balance(address?) | USDG and gas ETH of the wallet (or any address) | no (with address) | |
credit_status(agent_id?) | line, drawn, available, backer, record, score, open loans and due dates; on a stock line, the stock tokens behind it, and available capped by what the stock vault lets it draw. (0.12.1) available, and a stock line's "can be drawn now", are 0 with the reason when every loan would be refused: a default marked on the owner's account (any line), or a stock line whose agent changed hands, defaulted or is frozen | no (with agent_id) | |
stock_assets(symbol?) | the stock tokens the Priors stock vault accepts: live Chainlink price, whether it lends against each now (or why not: a sharp price move, a multiplier change, a paused or blocked token), loan-to-value | no | |
stock_position(agent_id?) | the stock tokens behind an agent's stock line: amount, what the vault values them at, loan-to-value, what the line can draw now, any lending hold | no (with agent_id) | |
borrow(amount_usd, days, dry_run?) | borrow USDG from the line into the wallet; both amounts required; dry_run quotes the fee. (0.10.2) Needs the wallet to be the agent's owner or its declared ERC-8004 wallet, the same rule as repay. A borrow sent whose answer is lost is counted and said to be possibly open (check credit_status); (0.12.0) so is one the node refused for "insufficient funds" while it holds the signed borrow (a copy sent again after an HTTP 429). (0.12.1) On a line SeatVaultV5 backs, a term over 10 days is refused before anything is sent | yes | |
| `repay(loan_id? \ | all, use_savings?)` | repay one of the agent's own loans, or all of them earliest due first; another agent's loan is refused, and (0.8.1) so is a loan opened while someone else held the agent; (0.10.2) a wallet that is neither the agent's owner nor its declared ERC-8004 wallet (a pool delegate the owner named) repays nothing — and, symmetrically, borrows nothing, so no loan is drawn that this server would then refuse to repay: the owner declares the agent's key with priors-mcp link-wallet. If the wallet is short of what is due, it first takes the difference out of savings (unless use_savings: false). From 0.8.0 its answer ends with share facts for each loan repaid (amount, on time or late, the record's page; also as structured content); the server never posts | yes |
savings(address?) | what the wallet (or any address) has saved in the savings vault, how much can come out right now, and the USDG in the wallet | no (with address) | |
save(amount_usd) | move spare USDG from the wallet into the savings vault, where it earns the vault's rate (at most PRIORS_MAX_SAVE_USD per call, PRIORS_MAX_SAVE_TOTAL_USD per run); needs ETH for gas | yes | |
| `unsave(amount_usd? \ | all)` | take USDG back out of savings into the wallet: a normal withdrawal, and when that is not enough, the rest from the vault's other markets in the same transaction (only where that costs no penalty); refused before any transaction when even that cannot pay it; needs ETH for gas | yes |
autopay_on(cap_usd?, use_savings?, late?, budget_usd?) | turn on Autopay: the wallet approves AutoRepay for a budget (4 x the limit per loan, never more: budget_usd can only set less) and enrolls, so each loan is repaid from the wallet (then its savings, if chosen) in the 6 hours before it is due, with no call per loan, while the wallet holds enough. It makes an on-time repayment more likely; it is not a promise. Default limit: the line plus a 30-day fee, at most PRIORS_MAX_AUTOPAY_USD; call again to approve more. Works once AutoRepay is deployed; needs ETH for gas | yes | |
autopay_off(clear_budget?) | turn Autopay off (and with clear_budget, set the approvals to 0) | yes | |
score_of(agent_id) | any agent's on-chain score (0 to 1000) and repayment record, plus its Priors Score v2 and trust rung when published | no | |
find_services(query?) | services registered with the Priors facilitator that accept USDG (GET /merchants): the ones Priors approved, and the ones under review whose own endpoint passed the facilitator's 402 check, marked so; hidden or unchecked ones are not listed | no | |
pt_quote(side, amount, slippage_bps?) | quote buying PT-USDG with USDG, selling it before maturity or redeeming it after: what comes out at the oracle's spot rate, the minimum a trade would name, the days to maturity and the fixed APY to maturity | no | |
pt_position(address?) | the wallet's (or any address's) PT-USDG: balance, what it is worth now, what it pays at maturity, and whether the Priors stock vault takes PT-USDG behind a line yet | no (with address) | |
pt_buy(amount_usdg, slippage_bps?, min_out_pt?, dry_run?) | buy PT-USDG with the wallet's USDG through Pendle's router (at most PRIORS_MAX_PT_USD per call, PRIORS_MAX_PT_TOTAL_USD per run), keeping back what payments signed and not settled yet still need; min_out_pt (pt_quote's "at least", the quote the user agreed to): a fresh quote under it is refused before anything is signed, and the swap names the larger of it and the fresh quote's own minimum; dry_run lists the calls; needs ETH for gas | yes | |
| `pt_sell(amount_pt \ | "all", slippage_bps?, min_out_usdg?, dry_run?)` | sell the wallet's PT-USDG for USDG at the market, before maturity; min_out_usdg holds the sale to the quote the user agreed to, as min_out_pt does a buy; needs ETH for gas | yes |
| `pt_redeem(amount_pt \ | "all", slippage_bps?, dry_run?)` | redeem the wallet's PT-USDG for USDG 1:1, from maturity (2027-03-25) on; needs ETH for gas | yes |
pt_buy_and_deposit(amount_usdg, agent_id?, include_held?, slippage_bps?, dry_run?) | only with PRIORS_PT_ONESTEP=on (below): buy PT-USDG with the wallet's USDG and deposit it, with the PT-USDG the wallet already holds (unless include_held is false), behind the agent's line on the Priors stock vault, which opens the line, in one call: four transactions (the exact USDG approval, the buy with its minimum out, the exact PT-USDG approval to the vault, the vault's open with this wallet's pool consent). The wallet must own the agent, and the agent must have no open stock line; checked before the first is signed. pt_buy's caps apply; dry_run lists the calls; needs ETH for gas | yes | |
fund_base(amount_usd, max_borrow_usd?) | only with Base on (below): move USDG to USDC in the same address on Base through Across, keeping back what Autopay and signed payments need, borrowing the gap only with max_borrow_usd; needs ETH for gas | yes | |
| `return_to_robinhood(amount_usd \ | "all")` | only with Base on: move USDC from the Base float back to USDG on Robinhood Chain through Relay, one signature and no gas on Base; keeps back what signed Base payments need | yes |
pay_gateway(service_id, input?, seller_url?, max_price_usd?, max_borrow_usd?, use_savings?) | (since 0.10.0) only with PRIORS_GATEWAY=on (below): buy one call from a seller in Vantis' Keyring catalog with one USDG payment on Robinhood Chain through Keyring's gateway, which pays the seller and relays its answer; pay_url's limits and its one payment per purchase apply | yes | |
join() | (since 0.11.0) only with PRIORS_JOIN=on: register an ERC-8004 identity on Robinhood Chain for the wallet when it owns none (one transaction, its gas in the wallet's ETH; too little is refused before anything is signed) and answer its id and its routes to a first line; a wallet that owns one gets its id and nothing is sent; a registration whose answer is lost is never sent twice | yes | |
first_line(agent_id?) | (since 0.12.0) only with PRIORS_JOIN=on: take the treasury's first line by invite for the identity the wallet owns, when it has no Priors record (after join), with no clone or Telegram: post the invite's 5 USDG bond from the wallet (USDG's approve, then InviteBond's deposit; it comes back by InviteBond's release, and a default forfeits it), get the invite from Priors' invite bot with one signature that proves ownership (only the bot's own start-page text, rebuilt here byte for byte, is signed), then sign the pool consent and redeem it (treasury v4's firstLine). Refused before anything is signed when the wallet does not own the identity, the identity already has a record (its state is the answer), the wallet lacks the ETH or the USDG, the bond would pass PRIORS_MAX_BOND_TOTAL_USD or PRIORS_MAX_SPEND_DAY_USD, or the bot says no invite is open now (its reason, with line_options' routes). A transaction whose answer is lost answers TX_UNCONFIRMED, and a second call never posts a second bond; needs ETH for gas | yes | |
line_key_status(agent_id?) | only with PRIORS_LINE_KEY=on (below): the agent's spending key on LineKey: whether one is set and live (or stale: the agent changed hands; expired; not the line's delegate: each pays nothing), its operator and whether that is this wallet, its caps per payment and per trailing period, its expiry, each payment's loan term and most fee, the payees with their own caps and what each can be paid now, what was paid in the period and when room frees up, and the pool's smallest loan (5 USDG) | no (with agent_id) |
| line_key_spend(payee, amount_usdg, ref?, agent_id?, dry_run?) | only with PRIORS_LINE_KEY=on: pay a payee the agent's owner listed on the key, from the agent's line, as a loan of the agent: the pool pays the payee directly, never through this wallet, which must be the key's operator. A ref (a job or an invoice: up to 31 bytes of text, or 32 in hex) is paid once per payee. Refused before anything is signed when the key's check refuses (each reason in words), the amount is under the pool's smallest loan or over its largest, the line refuses it in a simulation (no room, its backer's rule, a fee above the key's mo
只显示了开头部分;其余内容请在仓库中阅读