Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Wallet auth: send a wallet and conditions, get a signed boolean across 37 chains.
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.
INSUMER_API_KEY, INSUMER_PAYMENT_KEY, INSUMER_MAX_PAYMENT_USDCAls 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.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://api.insumermodel.com/mcpÖffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"insumer": {
"command": "npx",
"args": [
"-y",
"mcp-server-insumer"
],
"env": {
"INSUMER_API_KEY": "your-value",
"INSUMER_PAYMENT_KEY": "your-value",
"INSUMER_MAX_PAYMENT_USDC": "your-value"
}
}
}
}Führe das in deinem Terminal aus
claude mcp add --transport http insumer https://api.insumermodel.com/mcpclaude mcp add insumer --env INSUMER_API_KEY=your-value --env INSUMER_PAYMENT_KEY=your-value --env INSUMER_MAX_PAYMENT_USDC=your-value -- npx -y mcp-server-insumerTrag die leeren Werte ein, bevor du ihn startest.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"insumer": {
"url": "https://api.insumermodel.com/mcp"
}
}
}In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"insumer": {
"command": "npx",
"args": [
"-y",
"mcp-server-insumer"
],
"env": {
"INSUMER_API_KEY": "your-value",
"INSUMER_PAYMENT_KEY": "your-value",
"INSUMER_MAX_PAYMENT_USDC": "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": {
"insumer": {
"type": "http",
"url": "https://api.insumermodel.com/mcp"
}
}
}In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"insumer": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mcp-server-insumer"
],
"env": {
"INSUMER_API_KEY": "your-value",
"INSUMER_PAYMENT_KEY": "your-value",
"INSUMER_MAX_PAYMENT_USDC": "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.
ChatGPT verbindet sich nur mit Servern im Internet:
https://api.insumermodel.com/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
INSUMER_MAX_PAYMENT_USDC envDiese 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 Herausgeber (insumermodel.com) ist nicht der Repo-Inhaber (insumerapi); vielleicht hat jemand anderes ihn eingetragen
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 0 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: INSUMER_API_KEY, INSUMER_PAYMENT_KEY
Beides geht: Installiere ihn auf deinem Computer oder verbinde dich mit der Cloud-Version.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (1.23.1) kam vor 8 Tagen 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, LickityClick
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.
Create, edit and track LickityClick short links, campaigns and click stats from your AI assistant.
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.
MCP server for InsumerAPI: condition-based access infrastructure. Send a wallet and conditions, get a signed boolean across 37 chains. No balances exposed, no identity required. Every result is signed and checkable offline against the published keys, and on EVM chains an optional Merkle proof lets the verifier check the balance against the block header without trusting the API.
Enables AI agents (Claude Desktop, Cursor, Windsurf, and any MCP-compatible client) to add condition-based access to any workflow: verify on-chain conditions, discover merchants, generate signed discount codes, and onboard new merchants.
In production: AsterPay, a non-custodial payments orchestrator settling through licensed EU partners, uses InsumerAPI attestations in its live ERC-8183 agentic-commerce trust checks. Case study.
Also available as: LangChain (26 tools, PyPI) | ElizaOS (10 actions, npm) | OpenAI GPT (GPT Store) | insumer-verify (client-side verification, npm)
[Full AI Agent Verification API guide](https://insumermodel.com/ai-agent-verification-api/): covers all 37 chains, trust profiles, commerce protocols, and signature verification.
Add to your claude_desktop_config.json:
{
"mcpServers": { "insumer": { "command": "npx", "args": ["-y", "mcp-server-insumer"], "env": { "INSUMER_API_KEY": "insr_live_..." } } } }
Add to your MCP settings:
{
"insumer": { "command": "npx", "args": ["-y", "mcp-server-insumer"], "env": { "INSUMER_API_KEY": "insr_live_..." } } }
Three paths, all give you a working insr_live_... key in seconds with 10 free verifications plus 100 requests a day. One free key per email.
Option A: let your agent do it. Start the server without a key. Your AI agent can call the insumer_setup tool with your email to generate a free key instantly. Add it to your config and restart.
Option B: terminal.
curl -s -X POST https://api.insumermodel.com/v1/keys/create \
-H "Content-Type: application/json" \ -d '{"email": "you@example.com", "appName": "MCP Server", "tier": "free"}'
Option C: browser. Enter your email on insumermodel.com and the key appears inline.
Set it as INSUMER_API_KEY in your config.
Already have a key? Manage usage, top up, or upgrade at insumermodel.com/developers/account/.
Instead of a key, set INSUMER_PAYMENT_KEY to a throwaway Base wallet funded with a few dollars of USDC. Metered calls (insumer_attest, insumer_wallet_trust, insumer_batch_wallet_trust) are then paid inline via x402: the server requests a price, signs an EIP-3009 USDC authorization on Base, and retries. No signup, no credits, no dashboard.
{
"mcpServers": { "insumer": { "command": "npx", "args": ["-y", "mcp-server-insumer"], "env": { "INSUMER_PAYMENT_KEY": "0x " } } } }
0xee432065474D2C852700f74e3fD81e2Bcc16a3D4, or the address it quoted before 2026-10-19, 0xAd982CB19aCCa2923Df8F687C0614a7700255a23), only in USDC on Base, and never more than the cap: $3.00 per call by default, the price of the largest call today (a 10-wallet trust batch with Merkle proofs). Anything else is refused and nothing is signed. Set INSUMER_MAX_PAYMENT_USDC to change the cap, e.g. "0.25" if you only attest. The cheapest call is $0.05, so a cap below that refuses every paid call (the server warns at startup). A malformed value turns pay-per-call off rather than falling back to the default.INSUMER_API_KEY and INSUMER_PAYMENT_KEY are set, the key (credits) is used.The same server runs at `https://api.insumermodel.com/mcp` over MCP streamable HTTP, for clients that connect by URL: ChatGPT plugins and developer-mode connectors, claude.ai custom connectors, and hosted agent platforms that cannot run an npm package. Paste the URL; there is nothing to configure.
It is shared and anonymous, so it serves the ten tools that make sense without a caller identity (HOSTED_TOOLS: signing keys, attest, compliance templates, wallet trust and batch trust, the merchant and token directories, the free discount check, code validation), and the metered tools share one free daily allowance. Past it, a call is refused with a pointer here. For your own allowance, key and credit management, or the merchant tools, run the package locally with your key as above.
To host the server yourself, build it and run node build/http.js with INSUMER_API_KEY set (PORT, INSUMER_HOSTED_TOOLS and INSUMER_DAILY_CAP are optional), or embed it: createInsumerServer(options) from the package root returns a configured server for any transport.
When your agent calls insumer_attest, you get an ECDSA-signed attestation:
{
"ok": true, "data": { "attestation": { "id": "ATST-A7C3E1B2D4F56789", "pass": true, "results": [ { "condition": 0, "met": true, "label": "USDC >= 1000 on Ethereum", "type": "token_balance", "chainId": 1, "evaluatedCondition": { "chainId": 1, "contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", "operator": "gte", "threshold": "1000", "type": "token_balance" }, "conditionHash": "0x8a3b...", "blockNumber": "0x1799043", "blockTimestamp": "2026-03-26T20:04:23.000Z" } ], "passCount": 1, "failCount": 0, "attestedAt": "2026-02-28T12:34:57.000Z", "expiresAt": "2026-02-28T13:04:57.000Z" }, "sig": "NgA7BO8SAildiTrgIQY2UyXsBrySZknkP85pT2Zqv8Hq0KsCsB8DRFVMkXgnXtCXrbb726Is6k4LyyBYU+f/Pw==", "kid": "insumer-attest-v2", "pqSig": " ", "pqKid": "insumer-attest-pq1" }, "meta": { "version": "1.0", "timestamp": "2026-02-28T12:34:57.000Z", "creditsRemaining": 99, "creditsCharged": 1 } }
The sig is an ECDSA P-256 signature (base64, P1363 r||s, 88 characters). The kid identifies the key and selects the signed bytes: insumer-attest-v2 signs "insumer.attestation.v2\n" + canonical_json({v: 2, id, pass, results, attestedAt}) (keys sorted at every level); insumer-attest-v1 signs the bare JSON.stringify of {id, pass, results, attestedAt} in insertion order. Every attest and trust response is signed twice: ES256 and a post-quantum ML-DSA-65 signature, pqSig and pqKid (over the post-quantum domain tag plus the same classical preimage the kid selects; pqJwt beside jwt), added beside sig and kid without changing them. The conditionHash is a SHA-256 of the exact condition logic that was evaluated.
No balances. No amounts. Just a cryptographically signed true/false.
For XRPL conditions, results include ledgerIndex, ledgerHash (validated ledger hash), and trustLineState: { frozen: boolean } instead of blockNumber/blockTimestamp. Native XRP conditions include ledgerIndex and ledgerHash but not trustLineState. Frozen trust lines cause met: false.
Add format: "jwt" to the insumer_attest tool parameters to receive the attestation as a standard JWT bearer token:
{
"wallet": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045", "conditions": [ ... ], "format": "jwt" }
The response includes an additional jwt field containing an ES256-signed JWT, and beside it a pqJwt sibling (a compact JWS with alg ML-DSA-65 carrying the same claims, signed under insumer-attest-pq1). The jwt token is verifiable by any standard JWT library via the JWKS endpoint at GET /v1/jwks, which makes it compatible with Kong, Nginx, Cloudflare Access, AWS API Gateway, and other middleware that accepts JWT bearer tokens.
Your agent gets the attestation. Your application should verify it. Install insumer-verify (also on PyPI for Python: pip install insumer-verify, same checks, same 27 published test vectors):
npm install insumer-verify
import { verifyAttestation } from "insumer-verify";
// attestationResponse = the full API envelope {ok, data: {attestation, sig, kid, pqSig, pqKid}, meta} // Do NOT pass attestationResponse.data; the function expects the outer envelope const result = await verifyAttestation(attestationResponse, { jwksUrl: "https://insumermodel.com/.well-known/jwks.json", maxAge: 120, // reject if block data is older than 2 minutes });
if (result.valid) { // Signature verified, condition hashes match, not expired const pass = attestationResponse.data.attestation.pass; console.log(Attestation ${pass ? "passed" : "failed"} all conditions); } else { console.log("Verification failed:", result.checks); }
This reports five independent verdicts: ECDSA signature, condition hash integrity, block freshness, attestation expiry, and the post-quantum signature (insumer-verify 1.8.1+ reports it as verified, refuted, absent, or unverifiable). Zero runtime dependencies, uses Web Crypto API.
| Tool | Description |
|---|---|
insumer_setup | Generate a free API key instantly. Takes an email, returns an insr_live_... key with 10 free verifications plus 100 requests a day. No credit card required. |
| Tool | Description |
|---|---|
insumer_jwks | Get the JWKS: five entries over two keys. The ECDSA P-256 key under insumer-attest-v1, insumer-attest-v2, and insumer-trust-v2, followed by the ML-DSA-65 post-quantum key under two RFC 9964 AKP entries, insumer-attest-pq1 and insumer-trust-pq1. Match by the kid (or pqKid) on the response, never by position. |
`token_balance` thresholds are decimal strings. Pass
thresholdas"100", not100. Keys created from 2026-06-10 sign withkid: insumer-attest-v2, which preserves full precision and rejects a JSON number with a400. Theinsumer_attesttool accepts a number or string and coerces to the canonical string; olderinsumer-attest-v1keys accept either.
| Tool | Description |
|---|
| `in
Nur der Anfang wird gezeigt; den Rest findest du im Repo