Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Responsible-AI guardrails for agents: scoring with policy, injection & PII detection, DPDP.
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 …”.
Works in Claude on the web, desktop and mobile:
https://mcp.responsibleailabs.ai/mcpRun this in your terminal
claude mcp add --transport http rail-score https://mcp.responsibleailabs.ai/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"rail-score": {
"url": "https://mcp.responsibleailabs.ai/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": {
"rail-score": {
"type": "http",
"url": "https://mcp.responsibleailabs.ai/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.
ChatGPT connects only to servers on the internet:
https://mcp.responsibleailabs.ai/mcpMenu names can differ slightly by plan and over time.
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.
We have not read this server’s tool list yet; we check endpoints in rotation.
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 7, 2026
The registry name was verified against the domain responsibleailabs.ai (the registry checks domain ownership)
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
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 in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.1.1) reached the registry 5 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Claude Checkpoint MCP
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.
MCP server that checkpoints Claude Code session context to survive crashes and token limits
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.
Add a responsible-AI safety layer to any agent in one URL.
A remote, hosted Model Context Protocol server that exposes RAIL Score's evaluation, agent-guardrail, and India DPDP compliance capabilities to any MCP client — Claude, ChatGPT, Cursor, Copilot, Replit Agent, LangGraph, CrewAI, or a custom stack — with zero SDK integration.
https://mcp.responsibleailabs.ai/mcp
The server is a thin, hardened gateway in front of the existing REST API at api.responsibleailabs.ai/railscore/v1/. It reimplements no scoring logic: it validates the caller, shapes requests and responses for agent ergonomics, and forwards to the engine. Credits, tenancy, and rate limits are identical via MCP and REST.
You need a RAIL API key (rail_...) from the dashboard.
Claude Code
claude mcp add --transport http rail https://mcp.responsibleailabs.ai/mcp \
--header "Authorization: Bearer ${RAIL_API_KEY}"
Cursor / Windsurf (.cursor/mcp.json)
{
"mcpServers": { "rail": { "url": "https://mcp.responsibleailabs.ai/mcp", "headers": { "Authorization": "Bearer rail_YOUR_KEY" } } } }
Claude.ai / Desktop — Settings → Connectors → Add custom connector → URL https://mcp.responsibleailabs.ai/mcp, then paste your rail_ key.
More clients (OpenAI Responses API, LangGraph, Replit) are documented at docs.responsibleailabs.ai/mcp.
Nine tools, all rail_-prefixed. Descriptions state cost, latency, and when not to use a tool, because agents select tools from descriptions alone.
| Tool | Purpose | Credits |
|---|---|---|
rail_evaluate | Score content across the 8 RAIL dimensions (optional policy enforcement) | 1.0 basic / 3.0 deep |
rail_check_compliance | Check against gdpr, ccpa, hipaa, eu_ai_act, india_dpdp, india_ai_gov | 5–10 |
rail_detect_injection | Detect prompt injection in untrusted text | 0.5 |
rail_evaluate_tool_call | Allow/warn/block a tool call before it runs | 1.5–3.0 |
rail_scan_tool_result | Scan a tool's output for PII + injection, return redacted text | 0.5–1.0 |
rail_safe_regenerate | Iteratively regenerate content until it passes (slow) | 1–9 |
rail_dpdp_scan | Scan for Indian personal data under the DPDP Act 2023 | 0.5 |
rail_dpdp_gate | Real-time DPDP processing gate (allow/block/require_action) | 0.3 |
rail_dpdp_compliance | DPDP workflow: emit, require, evidence, session, timers | varies |
Three read-only resources (free, zero credits): rail://framework/dimensions, rail://account/capabilities, and rail://framework/policy-schema (the JSON Schema for the policy parameter).
rail_evaluate accepts an optional policy of per-dimension threshold rules and returns a policy_outcome. A rule fires when a dimension scores below its threshold; action is the most severe fired action (block > flag > warn > allow), mirroring the rail-score-sdk Policy/Rule shape.
{ "rules": [
{ "dimension": "safety", "threshold": 7.0, "action": "block" }, { "dimension": "fairness", "threshold": 6.0, "action": "flag" } ] }
Precedence: if the API key's application has a dashboard policy enforced, that takes precedence (policy_outcome.source: "application"); otherwise the request policy is applied in-gateway (source: "request"). No extra credits.
The canonical use is to wrap an agent's reasoning end to end:
rail_detect_injection on untrusted input before acting on itrail_evaluate_tool_call before executing any tool call (block = hard stop)rail_scan_tool_result on the tool's output (prefer the redacted text)rail_evaluate (deep) on the draft answer, or rail_safe_regenerate to fix itrail_dpdp_scan (mask) on anything leaving the boundary in India deploymentsA safety product that is itself unsafe is a credibility failure. The launch blockers (enforced and regression-tested):
rail_ key *is* the customer's RAIL credential, so it is forwarded upstream to preserve per-tenant credits and isolation.See tests/test_no_reflection.py and tests/test_pii_masking.py — these run as a hard CI gate.
/mcp endpoint (SSE is sunset).stateless_http=True, json_response=True — scales horizontally behind a normal load balancer; aligns with the MCP 2026-07-28 stateless core.rail_ key via Authorization: Bearer rail_... or X-API-Key: rail_... (the latter is gateway-friendly — no Bearer prefix), validated once against POST /verify (cached 5 min) by auth.RailKeyMiddleware, then bound to the request context.GET /.well-known/mcp/server-card.json (public) lets registries that scan behind an auth wall (e.g. Smithery) enumerate the tools without a key.TokenVerifier.rail_client.py thin httpx client to api.responsibleailabs.ai (forwards key, propagates X-Request-ID)
auth.py RailKeyMiddleware: validate rail_ keys, bind tenant request_context.py per-request ContextVars (key, tenant, request id) server.py FastMCP app: 9 tools + 3 resources + landing (/) + /health + server-card server.json official MCP registry manifest (ai.responsibleailabs/rail-score)
python -m venv .venv && source .venv/bin/activate
pip install -r requirements-dev.txt ruff check . && pytest # unit + safety regression tests RAIL_API_BASE=https://api.responsibleailabs.ai python server.py # serves on :8080
Protocol smoke test against a running server (needs a real key):
npx @modelcontextprotocol/inspector --cli \
http://localhost:8080/mcp --method tools/list \ --header "Authorization: Bearer ${RAIL_API_KEY}"
| Env var | Default | Purpose |
|---|---|---|
RAIL_API_BASE | https://api.responsibleailabs.ai | Upstream REST API |
MCP_PORT | 8080 | Bind port |
RAIL_UPSTREAM_TIMEOUT | 60 | Upstream call timeout (s) |
RAIL_KEY_CACHE_TTL | 300 | Validated-key cache TTL (s) |
Responsible AI Labs operates the hosted server at https://mcp.responsibleailabs.ai/mcp — for almost everyone, just connect to that URL; you do not need to run anything.
To self-host, build the image and run it anywhere that serves HTTP; point it at the public REST API with RAIL_API_BASE (its default). No secrets are required: the customer's RAIL key arrives on each request.
docker build -t rail-score-mcp .
docker run -p 8080:8080 -e RAIL_API_BASE=https://api.responsibleailabs.ai rail-score-mcp
Published to the official MCP registry as ai.responsibleailabs/rail-score via server.json and the mcp-publisher CLI (DNS-authenticated responsibleailabs.ai namespace); a tagged GitHub release runs the publish-registry job automatically.
Third-party directories (Smithery, Glama, PulseMCP, mcp.so) index the repository and the official registry independently. Each is claimed and refreshed separately rather than syncing automatically, so listings can lag a release.