Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Human-in-the-loop approval gateway for AI agents over MCP: request, decide, approve.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"agentgate": {
"command": "npx",
"args": [
"-y",
"@agentkitai/agentgate-mcp"
]
}
}
}Run this in your terminal
claude mcp add agentgate -- npx -y @agentkitai/agentgate-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"agentgate": {
"command": "npx",
"args": [
"-y",
"@agentkitai/agentgate-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"agentgate": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@agentkitai/agentgate-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 6, 2026
The registry name was verified with the GitHub account agentkitai, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.0.3) reached the registry 4 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, DiffCI
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Fail-closed, change-aware verification for AI coding agents with affected-test guidance.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
AgentGate
Human-in-the-loop approval system for AI agents.
Agents request. Policies decide. Humans approve.
Keep humans in control of what AI agents can do.
Your AI agent wants to send an email, delete a file, or deploy to production. Should it? AgentGate lets you define policies that auto-approve safe actions, auto-deny dangerous ones, and route everything else to a human — via dashboard, Slack, Discord, or email.
docker-compose up for the full stack# Self-host the full stack (server + dashboard + Postgres):
docker compose up
pnpm install && pnpm --filter @agentkitai/agentgate-server db:migrate && pnpm --filter @agentkitai/agentgate-server bootstrap && pnpm dev
Drop AgentGate into an MCP client (Claude Desktop / Cursor / VS Code) — point it at the gateway:
{ "mcpServers": { "agentgate": { "command": "npx", "args": ["@agentkitai/agentgate-mcp"] } } }
See all pending requests at a glance, color-coded by urgency so you know what needs attention first.
Review, approve, or deny requests — filter by status to focus on what matters.
Search through every decision with filters for event type, action, actor, and date range.
Drill into any request to see parameters, context, timeline, and audit trail — with one-click Approve/Deny buttons.
Manage API keys with fine-grained scopes, rate limits, and usage tracking. Create, edit, or revoke keys from the dashboard.
Configure webhook endpoints for real-time notifications. Add URLs, pick events, and let AgentGate handle retries automatically.
Sign in with your API key — create one via the CLI or ask your admin.
pnpm install
pnpm --filter @agentkitai/agentgate-server db:migrate
pnpm --filter @agentkitai/agentgate-server bootstrap
Save the API key - it's shown once only! Set it in your environment:
export AGENTGATE_API_KEY="agk_..."
# Start server (port 3000) and dashboard (port 5173)
pnpm dev
In a new terminal (with API key set):
export AGENTGATE_API_KEY="agk_..."
pnpm demo
Visit http://localhost:5173 to view and manage approval requests.
┌─────────────────────────────────────────────────────────────────┐
│ AI Agents │ │ (use @agentkitai/agentgate-sdk or MCP to request approvals) │ └───────────────────────────┬─────────────────────────────────────┘ │ HTTP API (authenticated) ▼ ┌─────────────────────────────────────────────────────────────────┐ │ AgentGate Server │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │ │ │ Policy Engine│ │ Request Store│ │ Audit Logger │ │ │ ├──────────────┤ ├──────────────┤ ├──────────────┤ │ │ │ API Keys │ │ Webhooks │ │ MCP Server │ │ │ └──────────────┘ └──────────────┘ └──────────────┘ │ └───────────────────────────┬─────────────────────────────────────┘ │ ┌─────────────┼─────────────┐ ▼ ▼ ▼ ┌────────────────┐ ┌────────────────┐ ┌────────────────┐ │ Web Dashboard │ │ Slack Bot │ │ Discord Bot │ │(React+Tailwind)│ │(approve in DM) │ │(approve in ch) │ └────────────────┘ └────────────────┘ └────────────────┘ │ │ │ └─────────────┼─────────────┘ ▼ ┌──────────┐ │ Humans │ └──────────┘
| Package | Description | Docs |
|---|---|---|
@agentkitai/agentgate-core | Types, schemas, policy engine | - |
@agentkitai/agentgate-server | Hono API server | - |
@agentkitai/agentgate-sdk | TypeScript SDK for agents | README |
@agentkitai/agentgate-cli | Command-line interface | - |
@agentkitai/agentgate-mcp | MCP server for Claude Desktop | - |
@agentkitai/agentgate-slack | Slack bot integration | README |
@agentkitai/agentgate-discord | Discord bot integration | README |
@agentkitai/agentgate-dashboard | React web dashboard | - |
import { AgentGateClient } from '@agentkitai/agentgate-sdk';
// Create client with API key const client = new AgentGateClient({ baseUrl: 'http://localhost:3000', apiKey: process.env.AGENTGATE_API_KEY, });
// Request approval const request = await client.request({ action: 'send_email', params: { to: 'customer@example.com', subject: 'Order shipped!', }, urgency: 'normal', });
// Wait for human decision const decided = await client.waitForDecision(request.id, { timeout: 60000, // 1 minute });
if (decided.status === 'approved') { // Execute the action await sendEmail(decided.params); } else { console.log('Action denied:', decided.decisionReason); }
AgentGate includes a command-line interface for managing approval requests.
# From the monorepo
pnpm --filter @agentkitai/agentgate-cli build
npm install -g @agentkitai/agentgate-cli
Configure the CLI with your server URL and API key:
# Set server URL
agentgate config set serverUrl http://localhost:3000
agentgate config set apiKey agk_your_api_key
agentgate config show
Configuration is stored in ~/.agentgate/config.json. You can also use environment variables:
export AGENTGATE_URL=http://localhost:3000
export AGENTGATE_API_KEY=agk_...
| Command | Description |
|---|---|
agentgate config show | Show current configuration |
agentgate config set | Set a configuration value |
agentgate request | Create a new approval request |
agentgate status | Get status of a request |
agentgate list | List approval requests |
agentgate approve | Approve a pending request |
agentgate deny | Deny a pending request |
# Create a request
agentgate request send_email \ --params '{"to": "user@example.com", "subject": "Hello"}' \ --urgency high
agentgate list --status pending
agentgate approve req_abc123 --reason "Looks good"
agentgate deny req_abc123 --reason "Not authorized"
agentgate list --json
AgentGate includes a Model Context Protocol (MCP) server for integration with Claude Desktop and other MCP-compatible clients.
Add to your claude_desktop_config.json:
{
"mcpServers": { "agentgate": { "command": "npx", "args": ["@agentkitai/agentgate-mcp"], "env": { "AGENTGATE_URL": "http://localhost:3000", "AGENTGATE_API_KEY": "agk_..." } } } }
| Tool | Description |
|---|---|
agentgate_request | Submit a new approval request |
agentgate_get | Get the status of an approval request by ID |
agentgate_list | List approval requests with optional filters |
agentgate_decide | Approve or deny a pending request |
agentgate_list_policies | List all policies ordered by priority |
agentgate_create_policy | Create a new policy with rules |
agentgate_update_policy | Replace an existing policy |
agentgate_delete_policy | Delete a policy by ID |
agentgate_list_audit_logs | List audit log entries with filters and pagination |
agentgate_get_audit_actors | Get unique actor values from audit logs |
AgentGate uses API keys for authentication. All API requests (except /health) require a valid API key.
| Scope | Description |
|---|---|
admin | Full access to all operations |
request:create | Create new approval requests |
request:read | Read approval requests |
request:decide | Approve or deny requests |
webhook:manage | Create/update/delete webhooks |
HTTP Header:
curl -H "Authorization: Bearer agk_..." http://localhost:3000/api/requests
SDK:
const client = new AgentGateClient({
baseUrl: 'http://localhost:3000', apiKey: process.env.AGENTGATE_API_KEY, });
// Via API (requires admin scope)
POST /api/api-keys { "name": "My Agent", "scopes": ["request:create", "request:read"] }
| Method | Endpoint | Description | Required Scope |
|---|
| POST | `/ap
Only the beginning is shown; read the rest in the repo