Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Human approval gate for AI agents: risk-scored requests that only a person can approve
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
APPROVAL_QUEUE_STATE_DIR, APPROVAL_QUEUE_TTL_HOURS必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"approval-queue": {
"command": "npx",
"args": [
"-y",
"@opafex/mcp-approval-queue"
],
"env": {
"APPROVAL_QUEUE_STATE_DIR": "your-value",
"APPROVAL_QUEUE_TTL_HOURS": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add approval-queue --env APPROVAL_QUEUE_STATE_DIR=your-value --env APPROVAL_QUEUE_TTL_HOURS=your-value -- npx -y @opafex/mcp-approval-queue動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"approval-queue": {
"command": "npx",
"args": [
"-y",
"@opafex/mcp-approval-queue"
],
"env": {
"APPROVAL_QUEUE_STATE_DIR": "your-value",
"APPROVAL_QUEUE_TTL_HOURS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"approval-queue": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@opafex/mcp-approval-queue"
],
"env": {
"APPROVAL_QUEUE_STATE_DIR": "your-value",
"APPROVAL_QUEUE_TTL_HOURS": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
APPROVAL_QUEUE_STATE_DIR envAPPROVAL_QUEUE_TTL_HOURS envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント opafex で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは12 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Recta
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A human-in-the-loop approval gate for AI agents, as an MCP server.
The agent calls request_approval before doing something risky. The action is risk-scored, and unless a rule you set covers it, you decide — in a form your MCP client shows you (MCP elicitation), or from a terminal. The agent gets a proceed: true|false it can act on.
The agent can ask; only a human can approve. There is no approve, reject or add-rule tool for the model to call. An approval gate the gated agent can open is not a gate.
Requires Node.js 20+.
Add to your client's MCP config (for Claude Code, .mcp.json in your project root):
{
"mcpServers": { "approval-queue": { "command": "npx", "args": ["-y", "@opafex/mcp-approval-queue"] } } }
Then tell the agent when to use it, for example in your project instructions:
Before deleting data, sending email, spending money or deploying, call
request_approvaland only continue ifproceedis true.
bulk_delete_users is a delete wherever the word sits — plus params.estimatedCost. The agent may pass a category, but it can only raise the score, never lower it.check_status:bash npx @opafex/mcp-approval-queue pending npx @opafex/mcp-approval-queue approve appr_3f9c1a2b4d5e --reason "checked the recipient list" npx @opafex/mcp-approval-queue reject appr_3f9c1a2b4d5e
APPROVAL_QUEUE_TTL_HOURS) and can no longer be approved.After five human approvals of the same action with no rejection, the next form suggests *always approve*. Auto-approvals do not count towards that — the system agreeing with itself is not evidence.
| Tool | Description |
|---|---|
request_approval | Submit an action (action, optional params, context, category, wait). Returns status, proceed, risk, and what to do next. |
check_status | Re-read a request by id. |
list_pending | Requests still waiting for a human, newest first. |
list_rules | The auto-approval rules a human has set (read-only). |
status is one of pending, approved, rejected, auto_approved, expired. Proceed only when proceed is true.
| URI | Contents |
|---|---|
approval://stats | Counts by status and the average time a human took to decide |
approval://rules | Current auto-approval rules |
approval://history | Last 50 decisions |
mcp-approval-queue start the MCP server (stdio)
mcp-approval-queue pending list requests waiting for a decision mcp-approval-queue show one request in full mcp-approval-queue approve [--always] [--reason ] mcp-approval-queue reject [--reason ] mcp-approval-queue rules list rules mcp-approval-queue rules add --max-risk [--description ] mcp-approval-queue rules remove mcp-approval-queue history [limit]
Patterns are globs: * matches anything, ? one character, case-insensitive. A rule can never cover high or critical risk.
| Variable | Default | Description |
|---|---|---|
APPROVAL_QUEUE_STATE_DIR | ~/.opafex/approval-queue | Where state.json (requests, rules, history) lives. The server and the CLI must point at the same directory. |
APPROVAL_QUEUE_TTL_HOURS | 24 | Hours before an undecided request expires |
State is one JSON file, written atomically under a lock file, so the server and the CLI can run at the same time.
Be clear about this before relying on it:
state.json are a human channel only if the agent cannot run the command or write the file. Coding agents such as Claude Code usually can. In that setup rely on the elicitation channel, and deny the agent the CLI and the state directory in your client's permission settings — for Claude Code, deny Bash(npx @opafex/mcp-approval-queue approve:*), Bash(npx @opafex/mcp-approval-queue rules:*), and edits under ~/.opafex/.request_approval, and has to honour proceed: false. This is a protocol for a cooperative agent and a record of what was allowed, not a sandbox. Pair it with your client's own tool permissions for anything that must be enforced.import { ApprovalQueueService, StateStore, assessRisk } from '@opafex/mcp-approval-queue';
const queue = new ApprovalQueueService(new StateStore('/var/lib/my-app/approvals')); const { request } = await queue.requestApproval({ action: 'refund_order', params: { estimatedCost: 40 } });
npm install
npm run build npm test
MIT — see LICENSE.