{"_id":"@mafdet/mcp","_rev":"8-aa3229d2973074a751c0641376e2e9a8","name":"@mafdet/mcp","dist-tags":{"latest":"1.4.32"},"versions":{"0.1.0":{"name":"@mafdet/mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@0.1.0","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"5bd021899024c933f7f2d2b8578bb91c9983e1ba","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-0.1.0.tgz","fileCount":21,"integrity":"sha512-iTw+Ctj4ENfINeLpYZ5hqApu2FLNhPGBRr98vv0d+XRTdbdkPseCNC9OnoXdaGlluii8jIUygePiRAc131Ay8A==","signatures":[{"sig":"MEYCIQCZn7gxrwY0mlzaANOrh5wGCxVkmYFYMNv2DwdgViE2cwIhALjsT9TpV1aj+sehvEvZW8F1Dk3V+j0J1V5QEPD7lsuv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26236},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0c99b618801bf3c4a98238830b260ee720bd5655","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.0_1784457393003_0.28859795224399387","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@mafdet/mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@0.1.1","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"6376ec480b3b321b02383e27d36fac1e9945109d","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-0.1.1.tgz","fileCount":21,"integrity":"sha512-ZaI7/9wsHxUP0pjNzPiWGHrcGIwubKLLVABXXJEV+sHAJlI/mW4IwNqL3V2xTcrmelWVZxdCyqVUq/f1BWsYyg==","signatures":[{"sig":"MEYCIQCEC/yooMVOX+7902zLBGpd6Yd73VxhgfOoMuArfMOYgQIhAOasLnZ8xipoLx5JxuRCy0kcLEMSWHm1m9y7kyQYzlRH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26775},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"0c99b618801bf3c4a98238830b260ee720bd5655","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.1_1784510757041_0.8646122507853191","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@mafdet/mcp","version":"0.1.2","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@0.1.2","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"726c24e0e800263cdce762685d11506407ddef95","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-0.1.2.tgz","fileCount":21,"integrity":"sha512-L3CYC2d4hL0ucAOMeSnJhcR5fip0363jmgik2ysnHi0pqwI0VCdGyV5HnAJW/PckntLS3IoLzLRM7OmMnS3Slg==","signatures":[{"sig":"MEQCIAQpeVmAet45lRFqHVvqPXKinwreATM3FvQkC9cRIpjeAiBPwv7PdlFgf1d5O5R95y+k7WWLpcnR84wwqZWZL56PpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27425},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8c851679da9343bc851805873ce5cdde611c04d9","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.2_1784516903691_0.16824661029238452","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@mafdet/mcp","version":"0.1.3","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@0.1.3","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"00dd86a495b25a56b1b06e498126fd4a9a4b1682","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-0.1.3.tgz","fileCount":15,"integrity":"sha512-sl2AD1d8ErwKi7W662c5cjfHb1CmneXCD/xpETOt+/XKHzihY6lQZdZmWVfayfJm6oDLX+gMWct3w4uii13Dkg==","signatures":[{"sig":"MEUCIDEBZpvkzdj2zBc2EEgm1FhTdXFu8kFbshcPMr46i14oAiEAgpvbR4KDfWK7yEpNe5F/svpJ8m+1A4hjCHrGxv9Gi80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":24549},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"8c851679da9343bc851805873ce5cdde611c04d9","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.3_1784517059866_0.32736627731385215","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@mafdet/mcp","version":"0.1.4","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@0.1.4","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"66615142277bde3f99d273ec56974750f6b45d52","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-0.1.4.tgz","fileCount":15,"integrity":"sha512-K3/ms5DImPGw6xxE8yp5j04ErxZNfSuGQ07xFk8zixioRVWct3LzLDi7crmW2Pu1nt3QU9fPJWuTeyCJ4kbDhA==","signatures":[{"sig":"MEUCIQColz4qTLaFxkbyWiP33M2ExrYfSCeZ8MazknUcgiyLvgIganxk2EfxYqT3peEgXQcMH8LmueLjNXDOCCVMGGWuBm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25642},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"35f76c2b42b9400182786c971c558ad15345fa04","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.4_1786934188956_0.4583966229572387","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@mafdet/mcp","version":"0.1.5","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@0.1.5","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"8963b7a89b5a6b146095670db9eca598eb7490cd","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-0.1.5.tgz","fileCount":15,"integrity":"sha512-o8gQdN5kd0v5cpLo9d/4imYUkqNozqOhYdZ9YJ/lXw1eQtaYZux+HKh/+GgCIaJjJxAJ4sJNByCAMyAIBOShnw==","signatures":[{"sig":"MEYCIQDc3DdJfrM5reT7acDv+46mHWg9qzK66zH4RUjEl2PDRAIhAK4SCq+R5fqckVXxy9vpbg6Be0VrBYZ+l75TgxKyQoxo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26231},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"238754d9fe6a42f3608f36286b98c840e547468b","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_0.1.5_1788102131003_0.03650367441746849","host":"s3://npm-registry-packages-npm-production"}},"1.4.18":{"name":"@mafdet/mcp","version":"1.4.18","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"author":{"name":"Mafdet AI"},"license":"MIT","_id":"@mafdet/mcp@1.4.18","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"bin":{"mafdet-mcp":"dist/index.js"},"dist":{"shasum":"6513d7e48b08b03d38baf92bb829fde06e42d961","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-1.4.18.tgz","fileCount":15,"integrity":"sha512-oMqDa6Ucks27FVID70ymUJoEgzd42EdkUa5fVwc6HaCIyvFxb8bTfJImJ5ELZCqdd3jNQKbgKYKu6VFDLwQ6mg==","signatures":[{"sig":"MEYCIQC5EWY4uQYlsAvDNLiZaO3XHfuUmaVqul+Pb4N89n2csAIhAKI5pLggd1btRey6p5gmX9cLRP/nToswwtwq+Ngfaq7W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":26232},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20"},"gitHead":"80f5543d80fe62ad998a039daa8a1b570bed184d","mcpName":"ai.mafdet/mcp","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","build":"tsc -p tsconfig.json","typecheck":"tsc --noEmit -p tsconfig.json"},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"_npmVersion":"11.12.1","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"zod":"^4.4.3","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"6.0.3","@types/node":"^20.19.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp_1.4.18_1788103004927_0.4641212975866509","host":"s3://npm-registry-packages-npm-production"}},"1.4.32":{"name":"@mafdet/mcp","version":"1.4.32","description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","type":"module","license":"MIT","author":{"name":"Mafdet AI"},"homepage":"https://www.mafdet.ai","bugs":{"email":"support@mafdet.ai"},"keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"bin":{"mafdet-mcp":"dist/index.js"},"main":"./dist/index.js","types":"./dist/index.d.ts","mcpName":"ai.mafdet/mcp","publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","lint":"prettier --check \"src/**/*.ts\" \"test/**/*.mjs\" package.json tsconfig.json","test":"pnpm run build && node --test \"test/**/*.test.mjs\"","typecheck":"tsc --noEmit -p tsconfig.json"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","zod":"^4.4.3"},"devDependencies":{"@types/node":"^20.19.0","typescript":"6.0.3"},"engines":{"node":">=20"},"gitHead":"f181f67d8534cfe755ebb2dc1d7296f78efb7b4e","_id":"@mafdet/mcp@1.4.32","_nodeVersion":"22.22.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-il1gxNgIEF6ks+buVSxAFBkZRPzEiFtQVLmBnr+5Bjbz4IlhBiDfVMeeReKLLfM9oaTqAX0gXtzoFPfgwLJ7qA==","shasum":"f67dcad9daef1007b85046d27f4a2ebc5eaff4fd","tarball":"https://registry.npmjs.org/@mafdet/mcp/-/mcp-1.4.32.tgz","fileCount":15,"unpackedSize":28361,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBnEzQExmJp/sekq7dHyuVFxkox2fsnkdxAsSRXmtjaTAiBhVex744xFkqiUShge5ImjODZKeZXk9TkaRO69tqzpNg=="}]},"_npmUser":{"name":"mafdetai","email":"ryan.chen@mafdet.ai"},"directories":{},"maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp_1.4.32_1788419051429_0.21521424470699957"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T10:36:32.752Z","modified":"2026-09-03T07:04:11.742Z","0.1.0":"2026-07-19T10:36:33.134Z","0.1.1":"2026-07-20T01:25:57.189Z","0.1.2":"2026-07-20T03:08:23.821Z","0.1.3":"2026-07-20T03:11:00.004Z","0.1.4":"2026-08-17T02:36:29.092Z","0.1.5":"2026-08-30T15:02:11.153Z","1.4.18":"2026-08-30T15:16:45.075Z","1.4.32":"2026-09-03T07:04:11.549Z"},"bugs":{"email":"support@mafdet.ai"},"author":{"name":"Mafdet AI"},"license":"MIT","homepage":"https://www.mafdet.ai","keywords":["mcp","model-context-protocol","mafdet","ai","llm","claude","cursor","codex","opencode"],"description":"Mafdet AI MCP server — read-only account tools (models, balance, usage, subscription, docs) for Claude Code, Cursor, Codex, OpenCode, and Claude Desktop.","maintainers":[{"name":"mafdetai","email":"ryan.chen@mafdet.ai"}],"readme":"# @mafdet/mcp\n\nA [Model Context Protocol](https://modelcontextprotocol.io) server that brings\n**read-only Mafdet AI account tools** into Claude Code, Claude Desktop, Cursor,\nCodex CLI, OpenCode, and any other MCP client.\n\nIt does **not** run model inference — you keep calling Mafdet AI models through\neach tool's normal OpenAI-compatible endpoint. This server only exposes\nread-only account and documentation helpers.\n\n## What Mafdet AI is\n\nMafdet AI is an OpenAI-compatible AI gateway: one API key and one base URL reach\nmodels from several providers, billed by usage. Any tool or SDK that speaks the\nOpenAI API works by pointing its base URL and key at Mafdet AI.\n\n- Base URL: `https://api.mafdet.ai/v1`\n- Endpoints: `/chat/completions`, `/embeddings`, `/audio/speech`\n- Providers: Google (Gemini), Kimi (Moonshot), Qwen, DeepSeek\n- 30 models as of August 2026. The catalogue changes, so the authoritative list\n  with current prices is [`models.json`](https://docs.mafdet.ai/models.json)\n- Docs: <https://docs.mafdet.ai>\n\n## Tools\n\n| Tool | Needs a key | What it does |\n| --- | --- | --- |\n| `list_models` | no | List Mafdet AI models with provider, tier, per-1M-token pricing, and a `[preview]` / `[beta]` marker for models the provider has not declared generally available |\n| `search_docs` | no | Search the Mafdet AI documentation (titles, URLs, summaries) |\n| `get_balance` | yes | Your organization's wallet: balance, bonus, frozen, available |\n| `get_usage_summary` | yes | Requests, tokens, and charge over the last N days (1–90) |\n| `get_subscription` | yes | Current plan, status, period, and Playground credit |\n\nThe account tools are **read-only** — there is no key management, recharge,\nrefund, subscription change, or any write operation.\n\n## Configuration\n\nSet these environment variables (all optional):\n\n- `MAFDET_API_KEY` — a Mafdet AI key **with the `account:read` scope**. Only the\n  account tools need it; `list_models` and `search_docs` work without a key.\n  Create a key with the scope in the Console (API Keys → \"Allow the local MCP\n  server to read this account\"). Prefer your client's secret/env configuration\n  over putting the key on a command line.\n- `MAFDET_BASE_URL` — defaults to `https://backend.mafdet.ai`. Only change it for\n  local/staging testing; it must be an `https://` URL.\n- `MAFDET_DOCS_URL` — defaults to `https://docs.mafdet.ai`.\n\n## Client setup\n\n### Claude Code\n\n```sh\nclaude mcp add mafdet --env MAFDET_API_KEY=sk-mafdet-live-... -- npx -y @mafdet/mcp\n```\n\n### Claude Desktop / Cursor / other MCP clients\n\nAdd to the client's MCP config (`claude_desktop_config.json`, Cursor MCP\nsettings, etc.):\n\n```json\n{\n  \"mcpServers\": {\n    \"mafdet\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@mafdet/mcp\"],\n      \"env\": { \"MAFDET_API_KEY\": \"sk-mafdet-live-...\" }\n    }\n  }\n}\n```\n\n### Codex CLI (`~/.codex/config.toml`)\n\n```toml\n[mcp_servers.mafdet]\ncommand = \"npx\"\nargs = [\"-y\", \"@mafdet/mcp\"]\nenv = { MAFDET_API_KEY = \"sk-mafdet-live-...\" }\n```\n\n### OpenCode (`opencode.json`)\n\n```json\n{\n  \"mcp\": {\n    \"mafdet\": {\n      \"type\": \"local\",\n      \"command\": [\"npx\", \"-y\", \"@mafdet/mcp\"],\n      \"environment\": { \"MAFDET_API_KEY\": \"sk-mafdet-live-...\" }\n    }\n  }\n}\n```\n\nOmit `MAFDET_API_KEY` to use only the public tools (`list_models`,\n`search_docs`).\n\n## Notes\n\n- Pin a major version (`@mafdet/mcp@0`) in automated setups to avoid surprise\n  upgrades.\n- The server writes only JSON-RPC to stdout; diagnostics go to stderr and never\n  include your key.\n- Requires Node.js 20+.\n","readmeFilename":"README.md"}