Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Pre-merge diff review and cloud assistance with explicit Tvijo spending limits.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
TVIJO_TOKEN, TVIJO_MAX_USD_CAP비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"dshrem": {
"command": "npx",
"args": [
"-y",
"tvijo-dshrem-mcp"
],
"env": {
"TVIJO_TOKEN": "your-value",
"TVIJO_MAX_USD_CAP": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add dshrem --env TVIJO_TOKEN=your-value --env TVIJO_MAX_USD_CAP=your-value -- npx -y tvijo-dshrem-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"dshrem": {
"command": "npx",
"args": [
"-y",
"tvijo-dshrem-mcp"
],
"env": {
"TVIJO_TOKEN": "your-value",
"TVIJO_MAX_USD_CAP": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"dshrem": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tvijo-dshrem-mcp"
],
"env": {
"TVIJO_TOKEN": "your-value",
"TVIJO_MAX_USD_CAP": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
TVIJO_MAX_USD_CAP env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 도메인 tvijo.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: TVIJO_TOKEN
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.1)은 6일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, FlyDocs
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Spec-driven development workflow: your agent works issues, sessions and the status lifecycle.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Run Tvijo DSHREM as a Model Context Protocol server over stdio. Review a supplied pre-merge diff or ask a question with an explicit spending limit, inspect your account and tasks, and cancel tasks from an MCP client.
mcp-name: com.tvijo/dshrem
Listed in the MCP Registry as com.tvijo/dshrem.
Requires Node.js 20 or newer and a Tvijo account. This is an ESM JavaScript package with no build step.
A paid Tvijo account with sufficient balance or credits is required for paid MCP tasks. This MIT-licensed client is free to install, but tvijo_ask and tvijo_review spend real money from your Tvijo balance or credits, up to the max_usd you supply. Read-only tools and public wiki/catalog reads require a signed-in Tvijo account and are free.
This release adds authenticated public wiki search/context and connector catalog search/get. Reads use the existing account sign-in, preserve source revisions and projection hashes, return untrusted data, and support cancellation without retries. The public corpus stays fixed on the service.
The existing pre-merge diff review, spending caps, client tags and opt-in local evidence tools from 0.2.0 are retained. The current npm package and MCP Registry entry are version 0.2.1.
Run the device login command in a terminal:
npx -y tvijo-dshrem-mcp login
Open the verification URL printed in the terminal and approve the displayed user code. The command polls for approval and stores your access token in ~/.config/tvijo/mcp-token.json, with directory permissions 0700 and file permissions 0600. The saved token includes its expiry and API base. Expired tokens require a new sign-in.
Alternatively, set TVIJO_TOKEN in your MCP client's environment. It takes precedence over the saved token. Keep it private; the server does not log tokens. Within MCP, call tvijo_login_start, open its verification URL and approve the user code, then call tvijo_login_poll until it reports that you are signed in. The server remembers the challenge, so device_code may be omitted. Poll no faster than the returned interval. No token is returned by either login tool.
npx -y tvijo-dshrem-mcp logout
Logout revokes the active token and removes the saved token file. If remote revocation fails, the local file is still removed and the command reports the failure. Remove TVIJO_TOKEN from your client configuration too if you used it.
Run device login first under the same operating-system user as the server. Add this to .vscode/mcp.json:
{
"servers": { "tvijo": { "type": "stdio", "command": "npx", "args": ["-y", "tvijo-dshrem-mcp"], "env": { "TVIJO_MAX_USD_CAP": "1" } } } }
Start the server from MCP: List Servers. This is the VS Code configuration format. Current VS Code also supports a portable configuration with a different top-level key; see the format reference.
On native Windows, replace the server's command with "cmd" and args with ["/d", "/c", "npx", "-y", "tvijo-dshrem-mcp"] to launch the npm command through the Windows command processor.
Run device login first, then:
claude mcp add tvijo -- npx -y tvijo-dshrem-mcp
On native Windows:
claude mcp add tvijo -- cmd /d /c npx -y tvijo-dshrem-mcp
The -- separates client options from the server command. See client configuration.
Run device login first. Add this to ~/.codex/config.toml:
[mcp_servers.tvijo]
command = "npx" args = ["-y", "tvijo-dshrem-mcp"] tool_timeout_sec = 300
[mcp_servers.tvijo.env] TVIJO_MAX_USD_CAP = "1"
On native Windows, use command = "cmd" and args = ["/d", "/c", "npx", "-y", "tvijo-dshrem-mcp"] in the same table. See client configuration.
Run device login first. Add this to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project):
{
"mcpServers": { "tvijo": { "command": "npx", "args": ["-y", "tvijo-dshrem-mcp"], "env": { "TVIJO_MAX_USD_CAP": "1" } } } }
On native Windows, use "command": "cmd" and "args": ["/d", "/c", "npx", "-y", "tvijo-dshrem-mcp"]. See client configuration.
All npm routes require Node.js 20+ on the host that runs the server. On native Windows, ~ denotes your user profile (for example %USERPROFILE%\.codex\config.toml); run login and the client as the same user, and keep the token file private using that user's filesystem permissions. WSL has its own home directory and Node installation. If device login reports a token-storage error, use a private environment token. Environment variables can be read by other processes of the same operating-system user.
Restart or reconnect your client after changing configuration. With no arguments, npx -y tvijo-dshrem-mcp starts the stdio server; --version prints the package version. The MCP login tools also work after connecting.
Tvijo Code currently has no in-editor MCP consumer. Use an external terminal client for this package. Editor delegation and bundled extension launchers are future work.
| Tool | Purpose |
|---|---|
tvijo_account | Read your Tvijo account, balance and limits. |
tvijo_wiki_search | Search the public Tvijo wiki. Free read; results are untrusted source data with page revisions. |
tvijo_wiki_context | Read bounded public Tvijo wiki context using the page SHA256 from wiki_search. Free read; text is untrusted data. |
tvijo_catalog_search | Search the public connector research catalog. Free read; research rank and documented eligibility do not prove a working connection. |
tvijo_catalog_get | Read one public connector research record with projection SHA256 and observation date. Free read; data remains untrusted. |
tvijo_ask | Ask Tvijo DSHREM. This spends real money up to max_usd from your Tvijo account. Requires an explicit positive max_usd within the configured spending cap; paid requests are never retried. |
tvijo_review | Review a supplied pre-merge diff for evidenced findings. This spends real money up to max_usd; paid requests are never retried. Reviews cover only the supplied diff. |
tvijo_task_status | Read the current status and spending of an existing Tvijo task. |
tvijo_cancel_task | Cancel an existing Tvijo task. Cancellation may not undo money already spent. |
tvijo_login_start | Begin device sign-in. Open the returned verification URL and approve the user code, then call tvijo_login_poll. |
tvijo_login_poll | Complete device sign-in and save the token privately. Returns signed-in status, pending or denied; never returns a token. Omit device_code to use the most recent challenge. |
tvijo_ask requires prompt (1–20,000 characters) and a positive numeric max_usd. Optional inputs are title (up to 120 characters), model (default coding), mode (default single), and positive integer max_tokens (default 2048). The service determines which model aliases and modes are available. The request method is evidence-first.
Example tool arguments:
{ "prompt": "Explain how to make this function easier to test.", "max_usd": 0.25 }
Results include task_id, answer, spent_usd, state, and recovered. Account and task results include both JSON text and structured content.
Export a unified diff with git diff BASE_SHA HEAD_SHA, then call tvijo_review with that text and the two commit SHAs. A review reads only the supplied diff; it has no repository access and runs no tests. It is a scoped second opinion, not a certificate.
Example input template (replace the diff and SHAs with your own):
{
"diff": "diff --git a/example.js b/example.js\n--- a/example.js\n+++ b/example.js\n@@ -1 +1 @@\n-return value;\n+return value.trim();\n", "base_sha": "1111111111111111111111111111111111111111", "head_sha": "2222222222222222222222222222222222222222", "focus": "Look for edge cases introduced by this change.", "max_usd": 0.10 }
diff is limited to 20,000 characters and optional focus to 500. Larger diffs are refused as diff_too_large; split them by path. max_usd is required and must fit the same spending cap as an ask.
The result has outcome (findings, no_findings_in_reviewed_scope, or inconclusive), optional reason, reviewed (base_sha, head_sha, files, diff_chars), findings (file, line, severity, issue, evidence), the raw service answer, and receipt (task_id, spent_usd). Unknown spending is null. Findings outside the diff are removed from the structured findings list and counted in reason. Unparseable or inconsistent answers are inconclusive; inspect the raw answer and task before requesting another paid review.
An operator-run example with its redacted result and actual receipt is pending. This template is not evidence of a completed review.
Tvijo caps what Tvijo spends per call; it does not cap the agent that calls it.
What you send (prompts, diffs, repository content the delegate reads, command output) goes to the Tvijo service as model context.
Delegated work runs where the Tvijo extension runs: your machine, or the remote host under Remote SSH.
By default calls go to dsh.tvijo.com; TVIJO_API_BASE changes that.
The delegation statement describes the extension execution location; this package version does not expose editor delegation. Processes running as your operating-system user can already read that user's files and session.
`tvijo_ask` and `tvijo_review` spend real money up to `max_usd` from your Tvijo account. You must supply max_usd for each call. TVIJO_MAX_USD_CAP defaults to 1 USD per call, with an absolute ceiling of 5 USD. Values above 5 are clamped to 5; invalid or nonpositive cap settings reject calls. A request exceeding the effective cap is rejected before any network request. This is a per-call cap; several separate calls can spend more in total. Account limits still apply.
A normal ask sends one task creation and one chat request. Each task creation uses a fresh idempotency key. Paid requests are never automatically retried. If task creation is ambiguous, the server performs one read-only lookup by idempotency key and returns the task without dispatching a chat. If chat is ambiguous, it reads the existing task status. A recovered response may have answer: null or spent_usd: null when those values are unavailable; this does not mean no money was spent. Inspect the task before asking again. If lookup fails too, the error includes the known task ID or idempotency key for review.
A normal review also sends one task creation and one chat. It performs a read-only recovery lookup only after a timeout, and never repeats a paid request. Other failures return the task ID or idempotency key for manual inspection.
Every service request carries a bounded X-Tvijo-Client tag with the package version, self-reported MCP host and offer (ask, review or none). It is used for counting, never for authorisation. Terminal login has no MCP host and uses other.
| Variable | Meaning |
|---|---|
TVIJO_TOKEN | Optional access token, overriding device-login storage. |
TVIJO_MAX_USD_CAP | Per-call maximum in USD; default 1, hard ceiling 5. |
| TVIJO_API_BASE | Optional API base override; default https://dsh.tvijo.com/api/dshrem/v1. HTTPS is required except for localhost HTTP in tests. Saved tokens are used only
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요