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.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม 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": "ใส่ค่าของคุณ",
"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": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add priors --env PRIORS_KEY='ใส่ค่าของคุณ' --env PRIORS_KEY_FILE='ใส่ค่าของคุณ' --env PRIORS_AGENT_ID='ใส่ค่าของคุณ' --env PRIORS_MAX_PRICE_USD='ใส่ค่าของคุณ' --env PRIORS_MAX_SPEND_USD='ใส่ค่าของคุณ' --env PRIORS_MAX_BORROW_USD='ใส่ค่าของคุณ' --env PRIORS_MAX_SPEND_DAY_USD='ใส่ค่าของคุณ' --env PRIORS_MAX_BORROW_DAY_USD='ใส่ค่าของคุณ' --env PRIORS_PAY_HOSTS='ใส่ค่าของคุณ' -- npx -y @priors/mcpเติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"priors": {
"command": "npx",
"args": [
"-y",
"@priors/mcp"
],
"env": {
"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": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"priors": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@priors/mcp"
],
"env": {
"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": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
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ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub priors-agents ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: PRIORS_KEY
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.18.0) เข้า registry เมื่อวานซืน
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Node.js ในเครื่องด้วย
ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Master CSS
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
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.
Inspect Master CSS classes, generated CSS, and project stylesheets from your AI client.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ 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
ตัดมาแค่ช่วงต้น อ่านต่อใน repo