Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
RevRec schedules, renewals, credits, usage pricing. Can save contracts and renewals as drafts.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
Authorization비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
터미널에서 이 명령어를 실행하세요
claude mcp add --transport http defrr https://defrr.com/v1/mcp --header 'Authorization: your-value'실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"defrr": {
"url": "https://defrr.com/v1/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"defrr": {
"type": "http",
"url": "https://defrr.com/v1/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
Authorization 비밀 필수 HTTP header이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 도메인 defrr.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: Authorization
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.3.0)은 10일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, debuff
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Revenue recognition (RevRec) schedules, waterfalls, renewals, credits, cancellations and usage pricing for contracts, worked out by defrr's engine. Connect it to Claude Code and ask in plain English, or call it from your own code.
The calculation tools store nothing, and nothing you send to them is logged. If you want, you can also switch on saving to your defrr organization (see below): contracts and renewals are saved as drafts a person approves, and usage products can be set up. That is off by default and set per key.
claude mcp add --transport http defrr https://defrr.com/v1/mcp \
--header "Authorization: Bearer dfr_live_YOUR_KEY"
/mcp. defrr should show 9 tools for a key that only calculates, or 18 or 23 for a key that can also save contracts (see below).These calculate and store nothing. They work for every key.
| Tool | What it does | Credits |
|---|---|---|
defrr_create_contract | New contract: terms in, month-by-month schedule out. Saves nothing | 1 |
defrr_create_waterfall | Up to 50 contracts at once: each contract's billing, revenue and deferred balance by month, and the total | 1 per contract |
defrr_process_renewal | Renewals: the price change, the billing entry, the revised schedule, and what to post by month. A renewal processed after it started has its catch-up posted in the first open month | 1 per renewal |
defrr_usage_billing | What usage costs under flat, volume, prepaid-credit or fixed-fee-plus-overage pricing, month by month. Prepaid overage is flagged; a fixed fee's overage is priced and returned apart from revenue. Give a fixed-fee line a startDate and dated usage and its cycles follow the contract's anniversary: the fee is booked in the month each cycle starts and the overage in the month it ends. Stateless: your usage is calculated and returned, never stored | 1 per line |
defrr_reprice_renewal | Credit for a renewal priced too high | 2 |
defrr_reprice_contract | Credit for an original term priced too high | 2 |
defrr_cancel_renewal | Cancel the latest renewal | 2 |
defrr_cancel_contract | Cancel a whole contract | 2 |
defrr_get_credit_balance | Check your credits | Free |
A call that fails is refunded.
By default the tools above only calculate: the schedule comes back to you and nothing is kept. If you want contracts and renewals recorded in your defrr organization, create a key with Save contracts in Defrr ticked on your developer account. If you don't have a defrr workspace yet, the page sets up a small one for you (company name, base currency, how revenue is recognised and, if you like, the month your books are locked through). A key without that option can only calculate.
| Tool | What it does | Needs | Credits |
|---|---|---|---|
defrr_save_contract | Saves a contract as a draft and works out its schedule | the save option | 1 (a repeat is free) |
defrr_list_drafts | Lists the drafts waiting for approval, or already decided | the save option | Free |
defrr_get_workspace | Shows the organization, its base currency and recognition model, its locked period, how many drafts are waiting, and when the key last connected | the save option | Free |
defrr_approve_draft | Makes a draft a live contract | the approve option | Free |
defrr_reject_draft | Discards a draft (it is kept as rejected) | the approve option | Free |
defrr_save_renewal | Saves a renewal for a contract already in the workspace as a draft: the contract is not changed until the renewal is approved. Works for contracts whose terms can be read as a schedule, and refuses a renewal that starts in a closed period | a save or approve key | 1 (a repeat is free) |
defrr_list_renewal_drafts | Lists renewal drafts waiting for approval, or already decided | a save or approve key | Free |
defrr_approve_renewal_draft | Adds a draft renewal to its contract as a new last term and recalculates its schedules | the approve option | Free |
defrr_reject_renewal_draft | Discards a draft renewal (it is kept as rejected) | the approve option | Free |
defrr_find_contracts | Finds a customer's contracts in the workspace by name | a save or approve key | Free |
defrr_get_contract | Reads one contract and returns its terms as a schedule the calculation tools take. Says what is in the way when a contract has features the calculators don't model | a save or approve key | Free |
defrr_list_usage_products | Lists the usage products already set up in the workspace | a save or approve key | Free |
defrr_preview_usage_product | Shows what sample customers would pay under a usage product (pay as you go, prepaid credits or fixed fee plus overage) before it exists. Saves nothing | a save or approve key | Free |
defrr_create_usage_product | Creates that usage product in the workspace (a new product only; existing ones are edited in defrr) | the approve option | Free |
A saved contract is a draft. It isn't live, and no report reads it, until it is approved: in defrr under Contracts, Draft contracts, or by an agent whose key also has the approve option. Leave the approve option off for an agent you want a person to check. If a draft has revenue in months you have closed (your locked period in Organization details), or in months that have already ended, defrr says so before it is approved.
Repeats are safe. Sending the same agreement again returns the draft already saved and costs nothing, while that draft is waiting or approved. If it was rejected, or its contract has since been deleted, the same terms save as a new draft. Send an idempotencyKey to save a separate deal with identical terms.
A saved renewal is a draft too. When a customer renews, the agent finds the contract (defrr_find_contracts, then defrr_get_contract) and saves the renewal with defrr_save_renewal: the contract's id, the renewal's end date and the renewal term's total price. The contract does not change until the renewal is approved in defrr under Contracts, Draft renewals, or with defrr_approve_renewal_draft if the key may approve. Approving adds the renewal as a new last term and recalculates the contract's schedules. It only works on a contract whose terms can be read as a schedule (defrr_get_contract says why when it can't, for example monthly billing, a discount or a foreign currency), only after the contract's last end date, and it refuses a renewal that starts in a closed period: process that one in the app under Edit renewals.
What the agent is told. When a session starts it learns which organization it is connected to, the last locked period, and when the key last connected. Only a person can change the locked period, in defrr under Organization details.
In Claude Code, start a new session and type:
/mcp__defrr__new-contract
It asks for anything missing (customer, product, each term's dates and price, how revenue is recognised), reads the terms back for you to confirm, then saves a draft. You can put what you already know after the command. Other MCP clients list the same prompt as new-contract on the defrr server, in their own menu. Or just ask in plain English: "Create a contract for Acme Pty Ltd, Pro Plan, 1 Jan 2027 to 31 Dec 2027 at $12,000".
A workspace set up from the developer account page opens a few pages in the defrr app: the Dashboard, View all contracts, Draft contracts, Draft renewals, Usage products, the customer profile, and Organization details (the basic details, recognition model, base currency and locked period). The rest are subscription features and are shown greyed out.
It also has an Ask defrr assistant, a button at the bottom right of every page. It uses these same tools and your credits, and can also prepare the cancellation of a contract, or of its latest renewal: it shows the figures on a card and nothing changes until you press Confirm. It cannot approve drafts.
A new contract (calculate only):
Use defrr to create a contract: original term 1 Jan 2026 to 31 Dec 2026 at $12,000,
then a renewal from 1 Jan 2027 to 31 Dec 2027 at $18,000. End dates are included.
Recognise it smooth. Show me the terms and the month-by-month schedule.
A renewal:
Use defrr to process a renewal, recognised smooth with end dates included. The contract ran
1 Jan 2026 to 31 Dec 2026 at $12,000 and renews to 31 Dec 2027 at $18,000. Our books are
closed through March 2027. Show the price change, the billing entry, any catch-up, and what
to post by month.
Usage:
Use defrr to price usage for two customers. Acme is on volume pricing: the first 100,000 units
a month at $0.002, then $0.001 a unit above that. They used 250,000 units in Jan 2026 and
80,000 in Feb 2026. Globex has prepaid credit: 100,000 units at $0.002 each. They used 70,000
units in Jan 2026 and 60,000 in Feb 2026. Show each month's revenue, the total by month, and
any overage.
Saving a renewal (needs a key with the save option):
Acme Pty Ltd renewed their Pro Plan to 31 Dec 2028 for $14,000. Find their contract and save the
renewal as a draft. Tell me which contract you used.
Saving a contract (needs a key with the save option):
Create a contract in defrr for Acme Pty Ltd, Pro Plan: 1 Jan 2027 to 31 Dec 2027 at $12,000,
exact recognition, end date included. Tell me which organization it was saved to.
Any MCP client that supports Streamable HTTP and custom headers can connect. Send your key either as Authorization: Bearer dfr_live_YOUR_KEY or as X-API-Key: dfr_live_YOUR_KEY (for tools that don't let you set Authorization). Never put a key in the web address.
This repository is laid out as a Cursor plugin: the defrr connection (mcp.json, and the same file as .mcp.json for directories that look for that name), a rule that tells the agent when to use defrr (rules/defrr-revops.mdc), and a new-contract command that steps you through saving a contract (commands/new-contract.md).
The connection reads your key from an environment variable called DEFRR_API_KEY, so the key never goes into a file. Create a key at https://defrr.com/developers/account, then set the variable once:
launchctl setenv DEFRR_API_KEY dfr_live_YOUR_KEY
Then quit Cursor completely (Cmd+Q) and open it again from the Dock or Applications folder, not by typing a command in Terminal. Cursor reads the variable when it starts, so reloading the window is not enough. The setting lasts until you restart your Mac: run the command again after a restart, or use the file-based setup below.
DEFRR_API_KEY, then quit and reopen Cursor.Then check Cursor's MCP settings: defrr should be ready and list its tools (9 for a key that only calculates, 18 or 23 for a key that can save contracts).
To use the plugin before it is in Cursor's marketplace, copy this folder to ~/.cursor/plugins/local/defrr/ and reload Cursor.
If you would rather keep the key in a file, or Cursor can't see the variable, it shows defrr as failed, often with Unexpected token '<', "<!DOCTYPE"... is not valid JSON in its MCP log. That message means the request reached defrr without a valid key. Add the server yourself in ~/.cursor/mcp.json (or Cursor Settings, MCP):
{
"mcpServers": { "defrr": { "type": "http", "url": "https://defrr.com/v1/mcp", "headers": { "X-API-Key": "dfr_live_YOUR_KEY" } } } }
Keep this file out of version control, and if you use the plugin as well, t
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요