Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Zero-secret MCP gateway for AI agents: risk-scored, audited calls with human-in-the-loop approval.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
AuthorizationAls geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Führe das in deinem Terminal aus
claude mcp add --transport http gateway https://api.identark.io/v1/mcp/rpc --header 'Authorization: your-value'Trag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"gateway": {
"url": "https://api.identark.io/v1/mcp/rpc",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"gateway": {
"type": "http",
"url": "https://api.identark.io/v1/mcp/rpc",
"headers": {
"Authorization": "your-value"
}
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Diese Adresse braucht einen Schlüssel in einem Header der Anfrage, und das Menü zum Hinzufügen von Connectors kann ihn nicht setzen. Nutze stattdessen Claude Code, Cursor oder VS Code.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Authorization geheim erforderlich HTTP headerDiese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Die Tool-Liste dieses Servers haben wir noch nicht gelesen; wir prüfen die Endpunkte reihum.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 6. Nov. 2026
Der Registry-Name wurde über die Domain identark.io bestätigt (die Registry prüft, wem die Domain gehört)
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir prüfen die Endpunkte reihum
Noch nicht geprüft; wir lesen die Tool-Liste, wenn wir den Endpunkt prüfen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Das musst du eintragen: Authorization
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.1.0) kam vor 4 Monaten in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, Apify MCP Server
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
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.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
The AgentGateway Protocol — secure, scalable AI agent execution infrastructure.
When an AI agent can execute code, call APIs, or access files, it runs in a process. That process has an environment. That environment typically contains everything that can cause serious damage: LLM API keys, database credentials, AWS tokens.
The naive solution — run your agent on the same backend as your REST API — creates two problems at once:
identark solves both.
The SDK implements the AgentGateway Protocol — a clean interface between your agent logic and the outside world. Two implementations ship out of the box:
| Gateway | When to use | Credentials | History |
|---|---|---|---|
DirectGateway | Local development, CI evals | Your API key | In-memory |
ControlPlaneGateway | Production on IdentArk | Zero — none in the agent | Control plane DB |
Your agent code is identical in both environments. The switch is two lines.
pip install identark[openai]
import asyncio
from openai import AsyncOpenAI from identark import DirectGateway, Message, Role
async def main(): gateway = DirectGateway( llm_client=AsyncOpenAI(), # Your API key — not in the agent loop model="gpt-4o", )
response = await gateway.invoke_llm( new_messages=[Message(role=Role.USER, content="Hello, IdentArk!")] )
print(response.message.content) print(f"Cost: ${response.cost_usd:.6f}")
asyncio.run(main())
Change two lines. Your agent logic is untouched.
# Before (local)
from identark import DirectGateway gateway = DirectGateway(llm_client=AsyncOpenAI(), model="gpt-4o")
from identark import ControlPlaneGateway gateway = ControlPlaneGateway() # auto-detects env vars inside a IdentArk sandbox
The agent asks the control plane to act; the provider key (Stripe, Paystack, GitHub or AWS) stays in IdentArk. Grants, budgets and human approval apply before anything executes, and a reused idempotency key never acts twice.
request = await gateway.request_capability(
"payments.payment_link.create", "paystack", {"amount_minor": 1_500_000, "currency": "NGN", "customer_email": "buyer@example.com", "reference": "order-1001"}, idempotency_key="order-1001-link", )
execution = await gateway.get_capability_execution(request["request_id"])
# Core SDK only
pip install identark
pip install identark[openai]
pip install identark[anthropic]
pip install identark[gemini]
pip install identark[mistral]
pip install identark[all]
Requirements: Python 3.10+
Using TypeScript? The parity SDK ships as the zero-runtime-dependency identark npm package, with the same AgentGateway contract and structured credential sessions.
IdentArk is designed from the ground up to work with any LLM provider, including those that keep your data inside the UK or EU. The AgentGateway Protocol decouples your agent logic from the inference provider — switching providers requires changing one line.
from openai import AsyncOpenAI
from identark import DirectGateway
gateway = DirectGateway( llm_client=AsyncOpenAI( base_url="http://localhost:11434/v1", api_key="ollama", ), model="llama3.2", provider="local", # forces $0 cost tracking; inference stays on your machine )
Install Ollama: brew install ollama && ollama pull llama3.2 && ollama serve
from openai import AsyncOpenAI
from identark import DirectGateway
gateway = DirectGateway( llm_client=AsyncOpenAI( base_url="https://api.mistral.ai/v1", api_key="your-mistral-api-key", ), model="mistral-small-latest", # auto-detected as "mistral" provider )
Mistral AI is a French company. All inference runs in EU data centres, subject to EU data protection law (GDPR). Use this when UK/EU data governance requirements prohibit sending inference traffic to US-based cloud providers.
See examples/ for complete runnable scripts.
Any class implementing these four async methods is a valid gateway:
class AgentGateway(Protocol):
async def invoke_llm(self, new_messages, tools=None, tool_choice="auto") -> LLMResponse: ... async def persist_messages(self, messages) -> None: ... async def request_file_url(self, file_path, method="PUT") -> PresignedURL: ... async def get_session_cost(self) -> float: ...
Write your agent against the protocol. The implementation — local or production — is a runtime detail.
ControlPlaneGateway holds no API keys, database credentials, or cloud tokensinvoke_llm call returns cost_usd; get_session_cost() returns the running totalDirectGateway out of the boxpy.typed marker; works with mypy strict modefrom identark.testing import MockGateway
from identark.models import LLMResponse, Message, Role
async def test_my_agent(): mock = MockGateway() mock.queue_response(LLMResponse( message=Message(role=Role.ASSISTANT, content="The answer is 42."), cost_usd=0.001, model="mock", finish_reason="stop", ))
result = await my_agent(gateway=mock)
assert mock.invoke_llm_call_count == 1 assert mock.total_messages_sent == 1
| Provider | Data residency | DirectGateway | GeminiGateway | ControlPlaneGateway |
|---|---|---|---|---|
| OpenAI (gpt-4o, gpt-4o-mini, …) | US | ✓ | — | ✓ |
| Anthropic (Claude models) | US | ✓ | — | ✓ |
| Google Gemini | Varies | ✓* | ✓ | Roadmap |
| Mistral AI | Varies | ✓ | — | ✓ |
| Kimi / Moonshot | Varies | ✓* | — | ✓ |
| Azure OpenAI | Configured Azure region | ✓* | — | ✓ |
| AWS Bedrock | Configured AWS region | — | — | ✓ |
| OpenRouter | Provider-dependent | ✓* | — | ✓ |
| Ollama | Local 🏠 | ✓ | — | Not a hosted route |
| Any OpenAI-compatible endpoint | Varies | ✓ | — | ✓ (custom endpoint) |
*Via an OpenAI-compatible client/base URL. Use GeminiGateway for native Gemini SDK features.
from identark.exceptions import CostCapExceededError, RateLimitError, IdentArkError
try: response = await gateway.invoke_llm(new_messages=[...]) except CostCapExceededError as e: print(f"Cost cap of ${e.cap_usd} reached. Spent: ${e.consumed_usd}") except RateLimitError as e: await asyncio.sleep(e.retry_after_seconds) except IdentArkError as e:
raise
Full exception hierarchy: IdentArkError > GatewayError > ControlPlaneError > AuthenticationError | CostCapExceededError | SessionNotFoundError
┌─────────────────────────────────────┐
│ Your Agent Code │ │ (depends only on AgentGateway) │ └──────────────┬──────────────────────┘ │ ┌──────────▼──────────┐ │ AgentGateway │ ← Protocol (interface) │ Protocol │ └──────┬────────┬──────┘ │ │ ┌────────▼─┐ ┌───▼──────────────┐ │ Direct │ │ ControlPlane │ │ Gateway │ │ Gateway │ │ │ │ │ │ Local / │ │ Production │ │ Evals │ │ (zero secrets) │ └──────────┘ └────────┬─────────┘ │ HTTP ┌────────▼─────────┐ │ IdentArk │ │ Control Plane │ │ (holds creds) │ └──────────────────┘
Contributions are welcome. Please open an issue before submitting significant changes.
git clone https://github.com/identark/identark.git
cd identark pip install -e ".[dev]" pre-commit install pytest tests/unit/
See CONTRIBUTING.md for full guidelines.
IdentArkChatModel)IdentArkLLM)invoke_llm_stream)IdentArkNode, IdentArkStreamNode)identark-cli for one-command control plane deploymentThe IdentArk SDK is licensed under the MIT License — free for any use, including commercial and closed-source projects. See LICENSE.
The IdentArk control plane (hosted service) is proprietary. The SDK works with any AgentGateway backend, including fully self-hosted ones.
*Built on the control plane pattern described in How We Built Secure, Scalable Agent Sandbox Infrastructure.*