Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Art QR codes via a hosted service: generate, vary, list and retarget scannable picture QR codes.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"qrpaint": {
"command": "npx",
"args": [
"-y",
"@reneturcios/qrpaint",
"mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add qrpaint -- npx -y @reneturcios/qrpaint mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"qrpaint": {
"command": "npx",
"args": [
"-y",
"@reneturcios/qrpaint",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"qrpaint": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/qrpaint",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント CloudCorpRecords で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは3 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, HotCodePush
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A QR code that is also a picture: a lighthouse at sunset, a café awning, your own photograph — with a scannable code painted into it. qrpaint is a thin forwarding client for the hosted QRX service. It serves nine tools locally and passes every call, unchanged, to the service, which paints the picture, checks that it still scans, and hands back a code with its own short link.
Because the painting happens on the hosted service, this package holds no rendering logic of its own. What it does hold is the contract: the exact tool list and schemas from the service's public server card, the session handshake each call travels over, and the rule that nothing is ever sent until an API key is present.
QRX_API_KEY (required for tool calls) — your QRX API key, sent to the hosted endpoint on every request as Authorization: Bearer . Without it, the server still starts and lists its tools, but every call fails with QRX_API_KEY is not set and no request is made.QRX_MCP_URL (optional) — the hosted MCP endpoint. Defaults to https://qrx.codes/mcp.generate_qr_code — start a new art code from a prompt (what the picture should show) and a destination link, with an optional style from list_styles. Answers at once with the code's id while the picture is painted.generate_qr_code_from_image — weave a code into a picture you already have, passed once as an attached image file, a public imageUrl, or imageBase64, plus the destination.vary_qr_code — a new code based on an existing code's id, with a change to its picture ("make it night time"). The original is untouched and the new code opens the same destination.get_qr_code — a code's status, finished image and short link by id; wait (0–25 seconds, default 25) lets it hold for a code that is still being painted.list_qr_codes — your codes, newest first, paged with limit (1–100, default 20) and cursor.change_qr_code_destination — retarget an existing link code to a new destination; printed copies follow at once.get_account — the connected account's plan and how much of today's code allowance remains.get_profile — which QRX account is connected.list_styles — the looks you can pass as style to generate_qr_code.A typical flow is generate_qr_code (or generate_qr_code_from_image), then get_qr_code with the returned id until its status is succeeded — usually under a minute. Codes count against your QRX allowance; get_account shows what is left.
Each tool call opens a fresh session with the hosted endpoint: an initialize request (protocol version 2025-03-26), the returned session id carried into a notifications/initialized note, then the tools/call request with your arguments exactly as given. Responses arrive as plain JSON or as server-sent events; both are read. The remote result comes back as JSON text. A remote error surfaces with the remote message, a non-2xx reply fails with qrx error: HTTP , and an unreachable endpoint fails with qrx unreachable. Calls are never retried — a retry could paint (and charge) a second code. The handshake is a reconstruction of the standard Streamable HTTP session flow; the endpoint, the Bearer auth and the missing-key behaviour are the original package's documented design.
There is no local argument validation beyond the missing-key rule: the schemas above are served verbatim for your MCP client to validate against, and the service itself is the authority on every call.
Each tool is a subcommand taking one JSON argument string:
export QRX_API_KEY="<your key>"
npx @reneturcios/qrpaint generate_qr_code '{"prompt":"a lighthouse on a cliff at sunset","destination":"https://example.com/menu"}' npx @reneturcios/qrpaint get_qr_code '{"id":"abc123"}' npx @reneturcios/qrpaint list_qr_codes '{"limit":10}' npx @reneturcios/qrpaint vary_qr_code '{"id":"abc123","change":"make it night time"}' npx @reneturcios/qrpaint change_qr_code_destination '{"id":"abc123","destination":"https://example.com/new-menu"}' npx @reneturcios/qrpaint get_account '{}' npx @reneturcios/qrpaint list_styles '{}' npx @reneturcios/qrpaint --version
Output is the remote result as JSON text. Exit codes: 0 on success, 1 on an error result (including a missing-key, remote or upstream failure), 2 on a usage error.
npx -y @reneturcios/qrpaint mcp
MCP client config (provide the key through the client's environment):
{
"mcpServers": { "qrpaint": { "command": "npx", "args": ["-y", "@reneturcios/qrpaint", "mcp"], "env": { "QRX_API_KEY": " " } } } }
docker run -i -e QRX_API_KEY="<your key>" ghcr.io/cloudcorprecords/qrpaint
docker run --rm -e QRX_API_KEY=" " ghcr.io/cloudcorprecords/qrpaint list_styles '{}'
npm install
npm run build # tsc -> dist/ npm test # tsx --test test/*.test.ts (fake fetch only, no network) npm run dev # run the CLI from source
MIT — Copyright (c) 2026 Rene Turcios