Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Runtime permission, approval, and audit layer for AI agent tool execution.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://api.oakallow.io/mcp터미널에서 이 명령어를 실행하세요
claude mcp add --transport http oakallow https://api.oakallow.io/mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"oakallow": {
"url": "https://api.oakallow.io/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"oakallow": {
"type": "http",
"url": "https://api.oakallow.io/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://api.oakallow.io/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 oakallow 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.1.0)은 13일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, 오늘냥이 (Oneul Nyangi)
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Real cat photos, diaries, profiles, age and food reference calculators, and breeds.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Runtime permission, approval, and audit governance for AI agent tool execution.
Oakallow is a hosted remote MCP server. It sits between an agent and the actions it wants to take, so that a specific action can be checked, gated behind human approval when it is risky, authorized with a single-use signed token, and recorded in an immutable audit log, at the moment of execution.
https://api.oakallow.io/mcp (Streamable HTTP)Oakallow injects a governance checkpoint into a workflow that may also use other connectors. An agent does its investigative work (for example, looking up an account through another connector), forms a recommendation, and calls Oakallow to request approval for the action. A human approver then decides in the Oakallow dashboard or mobile app, under enforced multi-factor authentication.
The connector is a requester and pass-through, not a decider:
| Tool | Purpose | Reads only |
|---|---|---|
list_my_tools | Enumerate the tools available to the signed-in user in the named org (org arg; see below) | yes |
check_permission | Ask whether a given tool call would be allowed, require approval, or be blocked (takes an org arg; see below) | yes* |
list_pending_approvals | List approval requests still awaiting a human decision | yes |
check_approval_status | Poll a pending approval request by reference number | yes |
\* check_permission returns a read-only verdict only. It does NOT create an approval or a reference. (The approval and its REF-… are created when you call the gated tool itself through oakallow.) It does have one side effect by design: checking an unregistered tool makes Oakallow auto-create a gated draft entry for it (with conservative, fail-closed defaults) so the eventual call is governed and the owner can triage it from the dashboard. This is intentional: an unknown tool is never silently trusted.
An Oakallow account can have more than one organization, and each org sets its own tools, permission rules, approvers, and alert paths. So an action must be checked against the right org, because that is what determines who gets asked to approve and under which rules.
check_permission and list_my_tools accept an optional `org` argument: the org's external id (e.g. org_oak_…). The rule:
org. The connector uses your only org.org naming the org the action targets. If you omit it, the call is refused with guidance rather than guessing the wrong org.You don't ask the connector to list your orgs; there is no org-enumeration tool. Instead, download the org-specific skill from that org's dashboard. Each org's skill carries its own org id and tells the agent to pass it. Install one skill per org you operate in; the agent reads the matching skill and passes the right org on every call.
The connector authorizes the org you pass against your signed-in identity: you can only target an org you can actually act in (you are its team owner/admin, or you are in that org's approver group). Passing an org you don't have access to is refused. The skill is a convenience, not a grant of access.
Alongside the four standard tools, tools/list returns the customer-defined tools your org has approved. Calling one of those through oakallow is how an approval gets created: there is no separate "request approval" tool. A direct tool accepts two optional arguments, plus org as above:
| Argument | Purpose |
|---|---|
reason | Short, non-sensitive summary of why the call is being made. This is what the human approver reads. Oakallow redacts SSN, card, email, phone, and address patterns before storing it. |
agent | An identifier for the calling agent (a name, code, or number). The org's governance report uses it to show which agent submitted each call instead of attributing everything to the signed-in account. Send the same value consistently. Ignored when the caller authenticates with an oak_agent_ token, whose own identity is used. |
The response is one of allowed (run the action on its own connector), requires_approval (an approval request was created and a REF-… is returned for polling with check_approval_status), or disabled (stop; the action is blocked by policy).
Every permission decision on an approved tool returns a signed decision receipt, whatever the verdict: allowed, requires_approval, and disabled are all signed the same way. The receipt is an HMAC-SHA256 signature over the decision, the tool, a hash of the call's parameters, the tenant, resource, method, and org, and it is stored so the decision can be re-verified later. A disabled receipt is the proof that oakallow blocked the action.
If a decision cannot be signed or recorded, the check fails closed: oakallow returns no verdict rather than one it cannot prove.
By default oakallow is a checkpoint beside your tools: it decides, and you execute. OakGuard lets an org register its own MCP servers with oakallow so that oakallow becomes the transport to them instead:
tools/list. Newly discovered tools land as drafts that require approval until an admin enables them.Servers are registered, paused, and revoked from the OakGuard tab in the dashboard.
oakallow exposes two read-only MCP resources. They are preflight signals an agent (or a client UI) can read before committing to route an action through oakallow. Both require the mcp:read scope, neither is a tool call, and neither is billed.
| Resource | Returns | Reads only |
|---|---|---|
oakallow://status | Liveness of the connector for the signed-in session: status, endpoint, server version, protocol version, and the granted scopes. A successful read is itself the proof the session is valid. No account identity or PII is returned. | yes |
oakallow://credits | Whether a governed call would currently be funded for the org this session resolves to, so an agent can fail fast before requesting an approval that could not be paid for. | yes |
oakallow://credits is scoped to the caller's own billing org and resolves it the same way a real tool call does, so a can_fund: true result genuinely means the eventual approval will be funded (including team-pool fallback). It returns only a can_fund boolean and the org's name and external id. It deliberately discloses no balance figures: dollar amounts are surfaced only to the team owner in the dashboard, never over the connector. If the session resolves to no org, or to more than one, it returns can_fund: false with a reason rather than guessing which org would be billed.
There is no anonymous access. An oakallow account is the prerequisite for connecting, and the endpoint accepts two credential types: interactive OAuth 2.1 (PKCE) for a human-driven client, or an oak_agent_ bearer token for an autonomous agent (see Autonomous agents below).
For the human-driven OAuth path, add https://api.oakallow.io/mcp as a custom connector in your MCP client (Claude, Claude Desktop, Cowork, ChatGPT, or any Streamable HTTP MCP host). You will be redirected to sign in to Oakallow and approve the requested scopes:
mcp:read: list tools, view pending approvals, check permissions, read activity.mcp:write: create approval requests and mint run tokens.You don't configure any of this by hand: an unauthenticated request returns 401 with a WWW-Authenticate header pointing to the endpoint's RFC 9728 protected-resource metadata (/.well-known/oauth-protected-resource), so a spec-compliant MCP client discovers the authorization server and runs the OAuth flow automatically.
See examples/ for a Claude Desktop config, an OAuth flow walkthrough, and an oak_agent_ token walkthrough. tools.json has the exact schemas of the standard tools.
oak_agent_ token)OAuth assumes a human can complete the interactive sign-in. An autonomous agent that runs on its own authenticates to the same https://api.oakallow.io/mcp endpoint with a pre-issued bearer token instead: Authorization: Bearer oak_agent_.... The endpoint checks for an oak_agent_ bearer before the OAuth provider, so no consent screen or interactive login is involved.
An agent identity is scoped to one organization, can submit and check permission requests but never approve, is rate-limited per identity, and is stored only as a SHA-256 hash (the raw token is shown once at creation). Provision one from the dashboard's Account → Agents page (owner/admin only). See oakallow.io/info/agents for the full model.
SKILL.md is an agent skill that documents when and how to use the oakallow tools: the request, approve, poll, and act workflow, how to phrase approval reasons, and what to do on allowed, requires_approval, or disabled verdicts. Point your agent at it to govern tool actions correctly.
PROMPT.md has short, copy-paste one-liners to drop into your agent's system prompt so it actually consults the skill. The skill is the procedure; a trigger prompt is what makes the agent look. Three options, from "gate every tool call" to "gate a customer-named set," plus an inline example pattern for a real request.
reason, and its agent id.REF-… to poll. Once a human approves under MFA, the action runs exactly once.For direct tools, Oakallow lives outside the execution path: it governs and records what was reported, and it does not run your tools or receive your tool parameters beyond a PII-scrubbed reason. For OakGuard gateway tools, it is the transport for approved calls but still keeps none of the payloads.
Outside MCP, the REST
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요