프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Raposa Aval — human approval

제작자: agentlabbusiness버전 0.1.1i★ –i내 컴퓨터에서 실행
레지스트리 이름group.raposa/raposa-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Human approval for AI agents: a named person approves or rejects, silence is not consent.

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 기타
  • 입력해야 할 값: RAPOSA_API_KEY

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • PyPIPython의 uv 설치(uvx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "raposa": {
      "command": "uvx",
      "args": [
        "raposa-mcp"
      ],
      "env": {
        "RAPOSA_API_KEY": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add raposa --env RAPOSA_API_KEY=your-value -- uvx raposa-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "raposa": {
      "command": "uvx",
      "args": [
        "raposa-mcp"
      ],
      "env": {
        "RAPOSA_API_KEY": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "raposa": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "raposa-mcp"
      ],
      "env": {
        "RAPOSA_API_KEY": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • RAPOSA_API_KEY 비밀 필수 env
    Raposa Aval API key (free sandbox key at https://raposa.group/start/)

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 8일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 도메인 raposa.group 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 18513개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 18513개 중 31%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 18513개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Raposa Aval — human approval, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: RAPOSA_API_KEY

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.1.1)은 2개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Cape Winelands Visit Planner

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

제작자: formulahendry초기↓ 66/주★ 44014개월 전 업데이트

내 컴퓨터에서 실행

Remote Desktop Commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

제작자: desktop-commander성장 중★ 2113일 전 업데이트

클라우드에서 실행✓ desktopcommander.app

Cape Winelands Visit Planner

Cape Winelands wine farm finder and day-route planner

제작자: aiagenttools.co.za초기오늘 업데이트

클라우드에서 실행✓ aiagenttools.co.za

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

raposa-mcp

Raposa Aval is a human-approval MCP server by DC ESCRYPT (https://raposa.group). It gives an agent one honest capability: before a high-stakes action runs, a named human must explicitly approve it. The API is served from EU infrastructure; approvals are sealed in a hash-chained audit log that can be exported for an auditor.

https://dcescrypt.com · Documentation · Get a sandbox key

1 · Why fail-closed approval matters

request_human_approval(action, context, risk) returns:

{approved: true|false, decided_by, decided_at, comment, status, …}

approved is true only when an authorised human pressed Approve. Every other outcome — a rejection, an expiry, a timeout — returns approved: false. Silence is never consent:

OutcomeapprovedMeaning
approvedtrueA named human approved within the deadline
rejectedfalseA named human rejected — do not proceed
expiredfalseThe TTL elapsed with no decision — do not proceed; no decision will arrive for the id
timeoutfalseNobody answered within wait_sec — the request stays open until its TTL; check later with get_approval

The agent must branch on approved; the tool result never leaks a key or a secret. A decided approval is final: a second decision on the same id is refused with HTTP 409. Every decision lands in the hash-chained audit log (/v1/audit/verify, /v1/audit/export).

2 · Architecture

Agent ──tool call──▶ MCP server (raposa-mcp) ──HTTPS, Bearer RAPOSA_API_KEY──▶ Raposa Aval API

│ approval created (status: pending) │ human sees it: e-mail link · web console · Slack · Telegram │ agent ◀── polls get_approval / webhook callback ◀── decision (approve|reject)

  • The MCP server holds only the client API key. It reads RAPOSA_API_KEY from its environment and never includes it in tool inputs or outputs.
  • Approvals are scoped per API key: one customer can never read or decide another customer's requests — foreign ids answer 404 Approval not found, and only an operator key can decide.
  • Decisions carry the approver identity and a comment; re-deciding is refused.

3 · Getting an API key

  1. Register a free sandbox at https://raposa.group/start/ (100 approvals a month).
  2. An e-mail titled “Raposa — your sandbox key” arrives with a one-time claim link, valid 24 hours. The link shows the key once and cannot be reused; an expired or used link refuses with 410 gone.
  3. The claim link is itself the credential: whoever opens it first within 24 h owns the key. Treat that mail as a secret — do not forward it or paste the link into tickets and chats. If the link may have leaked before you opened it, write to contact@raposa.group: an unclaimed link self-expires in 24 h and a claimed key can be revoked and reissued from the account page or by support.
  4. Put the key into the MCP server’s environment (below).

No production data is needed for the sandbox; the same flow issues paid-plan keys automatically after checkout.

4 · Install (secure, step by step)

The server is a stdio MCP server, one command: uvx raposa-mcp (pin raposa-mcp==0.1.2 to freeze a published release).

4.1 The key never travels through a command line

Do not write RAPOSA_API_KEY= into a chat, a shell command, a screenshot or a repository. Two supported ways to bring the secret to the MCP process:

Secret-manager export (1Password CLI, any similar tool works the same way):

# ~/.zshrc or ~/.bash_profile — resolved at login from your own vault

export RAPOSA_API_KEY="$(op read 'op://Dev-API/ /key')"

The expansion happens inside the shell that starts your MCP client; the key never appears as a literal argument (it would otherwise show in ps, in the shell history and in crash logs).

Plain-environment alternative: keep the value in a file with restrictive permissions and source it from your shell profile. Whatever the source, the constant rule is: the MCP process must inherit the variable from its parent environment, not receive it as an argument.

4.2 Claude Code

Claude Code supports ${VAR} expansion in MCP configuration — the placeholder is stored in the config file, resolved from the environment when the server starts (MCP docs):

claude mcp add raposa -e RAPOSA_API_KEY='${RAPOSA_API_KEY}' -- uvx raposa-mcp

claude mcp get raposa # shows the ${...} reference — never the secret itself

Single quotes matter: without them the shell resolves the placeholder before Claude Code stores it. claude mcp get raposa is the check that no secret landed in the configuration.

4.3 Generic MCP stdio config (.mcp.json, other clients)
{

"mcpServers": { "raposa": { "command": "uvx", "args": ["raposa-mcp"], "env": { "RAPOSA_API_KEY": "${RAPOSA_API_KEY}" } } } }

4.4 Check it without spending the secret
# 1 · the stored placeholder is a reference, never the value:

claude mcp get raposa | grep -F '${RAPOSA_API_KEY}' # prints the line — good claude mcp get raposa | grep -F ' ' # prints nothing — good

2 · end to end: list the tools (the server only runs when it can read the key):

three tools — create_approval, get_approval, request_human_approval

3 · a controlled read of a non-existent id must answer a 404 "Approval not

found", never a missing-environment error — that proves the key arrived

5 · Tools reference

All three tools take exactly these arguments (limits enforced client- and server-side):

create_approval

Create an approval request and return its id immediately (no waiting). Use with a webhook_url, or poll with get_approval.

ParameterTypeRequiredNotes
actionstringyes≤ 200 chars
contextstringyes≤ 4000 chars
riskstringyeslow \medium \high
requested_bystringno≤ 200 chars, default mcp-agent
expires_in_secintegerno60–2592000 (default 86400 = 24 h)
webhook_urlstring (URL)nowhere the signed decision callback is POSTed

Returns {"id": "…", "status": "pending"}.

get_approval
ParameterTypeRequired
approval_idstring (UUID)yes

Returns the same shape for every terminal state:

{"id": "…", "status": "approved|rejected|expired|pending", "approved": true|false,

"decided_by": "…", "decided_at": "…", "comment": "…", "message": "…"}

approved is true only when status == "approved".

request_human_approval

Same parameters as create_approval (no webhook_url), plus:

ParameterTypeRequiredNotes
wait_secintegernohow long to poll (5 s cadence), default 600

On a human decision returns the same shape as get_approval. On the deadline it returns {"status": "timeout", "approved": false, "id": "…", "message": "Not approved — nobody answered in Ns. The request is still open; check later with get_approval."} — and it really stays open until its TTL: decide late via your console or get_approval later.

6 · Worked examples

Real outputs (sandbox, uvx raposa-mcp==0.1.2):

create_approval → returns immediately:

{"id": "79d647c1-…", "status": "pending"}

get_approval while pending:

{"id": "79d647c1-…", "status": "pending", "approved": false,

"decided_by": null, "comment": null, "message": "Still waiting for a human."}

a human approved (via e-mail link or console):

{"id": "79d647c1-…", "status": "approved", "approved": true,

"decided_by": " ", "decided_at": "2026-10-20T…", "comment": "owner mcp e2e approve", "message": "Approved by a human — proceed."}

a human rejected:

{"status": "rejected", "approved": false, "message": "Rejected by a human — do not proceed."}

TTL elapsed, nobody decided:

{"status": "expired", "approved": false,

"message": "Not approved — the request expired before anyone decided."}

request_human_approval with wait_sec=8 and nobody answering:

{"id": "ed2e963e-…", "status": "timeout", "approved": false, "decided_by": null,

"message": "Not approved — nobody answered in 8s. The request is still open; check later with get_approval."}

Error shapes you will actually see:

get_approval on a foreign or unknown id — existence is never confirmed to a foreign key:

Raposa API 404 on GET /v1/approvals/<id>: {"detail":"Approval not found"}

a decided approval does not flip: the second decision is refused by the API:

Raposa API 409 on POST /v1/approvals/<id>/decision

7 · Who holds which power

RoleCapabilityScope
client (the MCP key)create, read, poll, receive webhooks for its own approvalsexactly its own approvals; foreign ids are 404
operator (human decision path)decide, list, verify the audit chain, export the auditscoped to one customer or house-wide, by key configuration
ownerinternal plan: unlimited monthly approvals, key management for its own accountunlimited quota, not unlimited privileges: the same rate limits, isolation and audit apply

Nothing here makes an MCP client key an administrative credential. The administrative surface (operator console) is a separate, credentialed place — not reachable with an MCP key.

8 · MCP Rush hosted listing

The same server is published on MCP Rush hosted infrastructure: darius-ceponas/raposa-aval-human-approval-mcp — release 0.1.1, three tools, scanned and verified (trust score 96/100, grade A). The gateway is live and refuses calls that carry no buyer token.

Honest status: the hosted release answers, but an end-to-end gateway call with real buyer credentials has not been verified yet — the marketplace’s Access page (where a buyer mints the required gateway key) was unreachable at the time of writing, and the publisher has reported it to MCP Rush support. Until that lands, the direct uvx install in § 4 is the supported way; this README makes no gateway end-to-end claim.

9 · Troubleshooting

SymptomCauseFix
RAPOSA_API_KEY is not set. Get a free sandbox key at …the variable did not reach the MCP processexport it in the shell that starts the client; check claude mcp add used the ${VAR} placeholder, not an empty value
HTTP 401 Invalid API key on a direct API callkey revoked or mistypedre-read the value from your vault; rotate from the account page
404 Approval not found on the right idanother key’s approval, or the id is mis-typedapprovals are tenant-scoped; use the key that created it
429 … Rate limit exceeded (60/min for your plan)per-key per-minute rate limit (abuse guard, stays on every plan)honour Retry-After; batch agent work
409 on a second decisionthe approval already reached a terminal stateterminal decisions are final and immutable
timeout with nobody awakewait_sec elapsed at 5-second pollingthe request stays open until TTL; ask the human, then get_approval

| client hangs ~1 min on first call | cold start of a hosted/gateway serv

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기