{"_id":"@apertis/mcp-server","_rev":"6-edffe04c8510bd7e073f5950982c9265","name":"@apertis/mcp-server","dist-tags":{"latest":"0.4.1"},"versions":{"0.1.0":{"name":"@apertis/mcp-server","version":"0.1.0","license":"MIT","_id":"@apertis/mcp-server@0.1.0","maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"bin":{"apertis-mcp":"dist/index.js"},"dist":{"shasum":"5893bc9c5ff7e088f185a2c02ae3eefe1487dcd6","tarball":"https://registry.npmjs.org/@apertis/mcp-server/-/mcp-server-0.1.0.tgz","fileCount":64,"integrity":"sha512-urbr2AWQwQUaw0XVG+IOweGcK4wgCaFfJQ8Aau5HEDoMJlreVlcQAGMhhE6KepZ2ES8plv4wFmFcfJp2RMM69g==","signatures":[{"sig":"MEYCIQDJRueMRVeh01FsQ+xnKQGovCxg3ArjU32huCAXsu6DowIhAJCAU6Yj7Rr3XjiT1IjUan9AzSug01m94TaDW7BrHant","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100736},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b142f977e4351af48944b9d1da5c7d35341305b6","scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"apertis","email":"hi@apertis.ai"},"_npmVersion":"10.9.2","description":"MCP server for managing Apertis AI API Gateway — models, keys, usage, and quota","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.0_1775812147372_0.6422393464491298","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@apertis/mcp-server","version":"0.1.1","license":"MIT","_id":"@apertis/mcp-server@0.1.1","maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"bin":{"apertis-mcp":"dist/index.js"},"dist":{"shasum":"e08e3413ef8329383d9e3482d464449a5f415474","tarball":"https://registry.npmjs.org/@apertis/mcp-server/-/mcp-server-0.1.1.tgz","fileCount":64,"integrity":"sha512-rpTX9qkUJLSjvza3476fDbzP7hlrcNPWyT9pMD49CDQVjBpBvMYZ3qoz6MvbjWjyV1UFQvr3i/Ftk7yzYFOuTA==","signatures":[{"sig":"MEQCIH5atb/92aiT/dNRDMz2fv9ASNNXWZxwbXadH+VH7pipAiAst1tNVySqqx2IdLQXcToDY3IZrcIxOGgBMS3bxeNFyQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100775},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b142f977e4351af48944b9d1da5c7d35341305b6","scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"apertis","email":"hi@apertis.ai"},"_npmVersion":"10.9.2","description":"MCP server for managing Apertis AI API Gateway — models, keys, usage, and quota","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.3.6","@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.1_1775812279466_0.5347692805226807","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@apertis/mcp-server","version":"0.1.2","license":"MIT","_id":"@apertis/mcp-server@0.1.2","maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"bin":{"apertis-mcp":"dist/index.js"},"dist":{"shasum":"4991ca7aab69639ddddba93aeafba004e60c110e","tarball":"https://registry.npmjs.org/@apertis/mcp-server/-/mcp-server-0.1.2.tgz","fileCount":64,"integrity":"sha512-XrgMKIMdtg7LJpPPsxEqbp88hGUx7fFuhCgL3dxJG7E/BqYrH97XnD5PX7+HqgQ5zqAwZkIOK6L6tVpfuNcGWg==","signatures":[{"sig":"MEUCIQC4crrkloXWBNGsDmlZwn6IonvmjioOMqkStoaQ4sC7YAIgVJm05KC2hxWjSraWhKiyBm6VhZzZwm2Kbq//Bl+LWMM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106289},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"929589a507b71f1fb15786f091fad6daa36c4320","scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"apertis","email":"hi@apertis.ai"},"_npmVersion":"10.9.2","description":"MCP server for managing Apertis AI API Gateway — models, keys, usage, and quota","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.3.6","@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.1.2_1775813338700_0.3593788682105836","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@apertis/mcp-server","version":"0.2.0","license":"MIT","_id":"@apertis/mcp-server@0.2.0","maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"bin":{"apertis-mcp":"dist/index.js"},"dist":{"shasum":"b326845ba908ed89e741dd96ce5aad2a46ab2a26","tarball":"https://registry.npmjs.org/@apertis/mcp-server/-/mcp-server-0.2.0.tgz","fileCount":64,"integrity":"sha512-HhsXNd43vkYkhTP3FDDZIn8a8DMlUZllSlLNt2TB8eT2yjlAxLE0L7oPNaXvzQty3bTCQ1t3pgmlSMg1MYtAyA==","signatures":[{"sig":"MEQCIEcXVpBPM+TKc+ToaojCdF3L5XPUHMM+5Z8E0SUwEtwZAiByvcaP6D4uJSdWefqqoU0MSqD1vXlcrbQwJJzDSh2w2w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106317},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ed6669b6081bad8adc36e868d7db6fd3828099f0","scripts":{"dev":"tsx src/index.ts","build":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"apertis","email":"hi@apertis.ai"},"_npmVersion":"10.9.2","description":"MCP server for managing Apertis AI API Gateway — models, keys, usage, and quota","directories":{},"_nodeVersion":"22.15.0","dependencies":{"zod":"^4.3.6","@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.2.0_1775814777363_0.2858802021199358","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@apertis/mcp-server","version":"0.4.0","license":"MIT","_id":"@apertis/mcp-server@0.4.0","maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"homepage":"https://github.com/apertis-ai/apertis-mcp#readme","bugs":{"url":"https://github.com/apertis-ai/apertis-mcp/issues"},"bin":{"apertis-mcp":"dist/index.js"},"dist":{"shasum":"7022546f66b003ab46793f2d968267b2e9734eef","tarball":"https://registry.npmjs.org/@apertis/mcp-server/-/mcp-server-0.4.0.tgz","fileCount":60,"integrity":"sha512-kgzeLYCDsoFW8LtvY7Vy15kklYDoaBFV77LOlmguBGo8ZzZUXc+rGnQmVjLCKA6vbVVUot6G+A6hIl4SXn92/g==","signatures":[{"sig":"MEYCIQDHE72IJMF1yKWYLwdZkFHa+Jm6A7OnG3hdsT5hbZMDkQIhAJJ1BvaIgyMuPAKXln29qYQA9CzZxnxQwzLSkBrfM7+6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apertis%2fmcp-server@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95126},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"c7c6098e37604426c74fc148269c05e0d5d6dc46","scripts":{"dev":"tsx src/index.ts","test":"node --import tsx --test test/*.test.ts","build":"tsc","pretest":"tsc","prepublishOnly":"npm run build"},"_npmUser":{"name":"apertis","email":"hi@apertis.ai"},"repository":{"url":"git+https://github.com/apertis-ai/apertis-mcp.git","type":"git"},"_npmVersion":"10.9.8","description":"MCP server for the Apertis AI API Gateway — models, keys, usage, quota, and the delegate coworker tool","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.3.6","@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"^2.0.0-alpha.2"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-server_0.4.0_1779332981684_0.9896137618379823","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@apertis/mcp-server","version":"0.4.1","description":"MCP server for the Apertis AI API Gateway — models, keys, usage, quota, and the delegate coworker tool","type":"module","repository":{"type":"git","url":"git+https://github.com/apertis-ai/apertis-mcp.git"},"homepage":"https://github.com/apertis-ai/apertis-mcp#readme","bin":{"apertis-mcp":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","pretest":"tsc","test":"node --import tsx --test test/*.test.ts","prepublishOnly":"npm run build"},"dependencies":{"@cfworker/json-schema":"^4.1.1","@modelcontextprotocol/server":"^2.0.0-alpha.2","zod":"^4.3.6"},"devDependencies":{"@types/node":"^22.0.0","tsx":"^4.0.0","typescript":"^5.7.0"},"engines":{"node":">=18.0.0"},"license":"MIT","_id":"@apertis/mcp-server@0.4.1","gitHead":"bcc3f2d615548071e5f3be75e4a45fef03d2c636","bugs":{"url":"https://github.com/apertis-ai/apertis-mcp/issues"},"_nodeVersion":"22.22.3","_npmVersion":"10.9.8","dist":{"integrity":"sha512-S+JakNIPeg2oRwniFtKvlY2MtJhUneMXV2OcOnfV/wHn4jp3CMv/CbjpVX9KbirixMhec73AUNgQkw3+JzXPTA==","shasum":"a1447c923e3395783cfdf2e8747624f17059bf16","tarball":"https://registry.npmjs.org/@apertis/mcp-server/-/mcp-server-0.4.1.tgz","fileCount":61,"unpackedSize":96575,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@apertis%2fmcp-server@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIHGn8glcGHzlCGlbAajKSkwyD3Q1r8HdzGL9gRyj923UAiAdbw2yS3e1FzRs1PHsTxUYN8E8bjpwPYqAWGX6neIC9w=="}]},"_npmUser":{"name":"apertis","email":"hi@apertis.ai"},"directories":{},"maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-server_0.4.1_1779335590753_0.2886533918658778"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-10T09:09:07.272Z","modified":"2026-05-21T03:53:11.311Z","0.1.0":"2026-04-10T09:09:07.515Z","0.1.1":"2026-04-10T09:11:19.615Z","0.1.2":"2026-04-10T09:28:58.833Z","0.2.0":"2026-04-10T09:52:57.494Z","0.4.0":"2026-05-21T03:09:41.824Z","0.4.1":"2026-05-21T03:53:10.919Z"},"bugs":{"url":"https://github.com/apertis-ai/apertis-mcp/issues"},"license":"MIT","homepage":"https://github.com/apertis-ai/apertis-mcp#readme","repository":{"type":"git","url":"git+https://github.com/apertis-ai/apertis-mcp.git"},"description":"MCP server for the Apertis AI API Gateway — models, keys, usage, quota, and the delegate coworker tool","maintainers":[{"name":"apertis","email":"hi@apertis.ai"}],"readme":"# Apertis MCP Server\n\nAn MCP server for managing your Apertis AI API Gateway account. Query models, check quota, manage API keys, and get intelligent model recommendations — all from Claude Code, OpenClaw, or any MCP-compatible AI agent.\n\n## Quick Start\n\n### Installation\n\n```bash\nnpm install @apertis/mcp-server\n```\n\n### Environment Setup\n\nSet your Apertis API key:\n\n```bash\nexport APERTIS_API_KEY=\"sk-...\"\nexport APERTIS_BASE_URL=\"https://api.apertis.ai\"  # Optional, defaults to api.apertis.ai\n```\n\n### Running\n\n```bash\napertis-mcp\n```\n\nOr with npm:\n\n```bash\nnpx @apertis/mcp-server\n```\n\n## Claude Code Integration\n\nAdd this to your `~/.claude/settings.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"apertis\": {\n      \"command\": \"npx\",\n      \"args\": [\"@apertis/mcp-server\"],\n      \"env\": {\n        \"APERTIS_API_KEY\": \"sk-your-key-here\"\n      }\n    }\n  }\n}\n```\n\n## OpenClaw Integration\n\nAdd this to your `openclaw.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"apertis\": {\n      \"command\": \"npx\",\n      \"args\": [\"@apertis/mcp-server\"],\n      \"env\": {\n        \"APERTIS_API_KEY\": \"sk-your-key-here\"\n      }\n    }\n  }\n}\n```\n\n## Available Tools\n\n| Tool | Description |\n|------|-------------|\n| `list_models` | List all available models with optional filtering (free/paid, capability) |\n| `get_model_info` | Get detailed info about a specific model (pricing, context, provider) |\n| `compare_models` | Side-by-side comparison of 2-5 models |\n| `check_quota` | Check your account balance, subscription status, and remaining quota |\n| `get_usage_stats` | Get usage statistics by model and time period (today/week/month) |\n| `list_api_keys` | List all your API keys with status and quota (keys are masked) |\n| `create_api_key` | Create a new API key with optional quota limit |\n| `suggest_model` | Freeform keyword-based model search over the full catalog |\n| `recommend_model` | Get the curated Apertis pick for a task type (`coding`, `long-context`, `fast-chat`, `reasoning`, `vision`) with live pricing |\n| `delegate` | Delegate bulk grunt work (bulk file reads, boilerplate, summarization) to a cheap intern model. Files are read by the coworker, so their content never enters your context — keeps your Claude usage limit intact |\n\n## Available Resources\n\n| Resource | Description |\n|----------|-------------|\n| `apertis://account` | Current account info, balance, and subscription status |\n| `apertis://models` | Full catalog of available models (cached 5 min) |\n| `apertis://usage/today` | Today's usage summary by model |\n\n## Examples\n\n### Check Your Quota\n\n```\nClaude: check my remaining quota\nMCP: Use the check_quota tool\n→ Shows your account balance, subscription plan, and quota\n```\n\n### Find a Model for Your Task\n\n```\nClaude: what model should I use for coding on a tight budget?\nMCP: Use recommend_model with task=\"coding\" and budget=\"low\"\n→ Returns the curated pick (e.g. deepseek-v3) with live pricing and alternatives\n```\n\nFor freeform keyword search over the full catalog (e.g. \"something good at translation\"), use `suggest_model` instead.\n\n### Compare Models\n\n```\nClaude: compare gpt-4o and claude-opus-4\nMCP: Use compare_models with models=[\"gpt-4o\", \"claude-opus-4\"]\n→ Side-by-side pricing, context window, and capability comparison\n```\n\n### Check Usage\n\n```\nClaude: how much have I used this week?\nMCP: Use get_usage_stats with period=\"week\"\n→ Shows total tokens/cost and breakdown by model\n```\n\n### Manage API Keys\n\n```\nClaude: list my API keys\nMCP: Use list_api_keys\n→ Shows all keys with status and quota (masked for security)\n\nClaude: create a new API key called \"my-app\" with 1M token quota\nMCP: Use create_api_key with name=\"my-app\" and quota=1000000\n→ Shows the new key once (save it immediately!)\n```\n\n### Delegate Grunt Work to a Coworker\n\nThe `delegate` tool gives Claude Code a cheap \"intern\". Claude stays the manager\non your Anthropic subscription and hands off high-volume, low-judgement work —\nbulk file reads, boilerplate, summarization — to a cheap model through Apertis.\nThe coworker reads files itself, so their bulk content never enters Claude's\ncontext, and the work runs on Apertis credit rather than your Claude usage limit.\n\n```\nClaude: summarize the errors in build.log\nMCP: Use delegate with instruction=\"Summarize the errors in <=10 bullets\"\n     and file_paths=[\"build.log\"]\n→ Returns a concise summary; the full log never enters Claude's context\n```\n\n`delegate` parameters: `instruction` (required), `file_paths` (optional — read\nlocally by the coworker), `content` (optional inline text), `model` (optional —\ndefaults to `deepseek-v4-flash`, override via `APERTIS_COWORKER_MODEL`).\n\nTo make Claude delegate automatically, paste the routing rules from\n[`coworker-rules.md`](./coworker-rules.md) into your project's `CLAUDE.md`.\n\n## Environment Variables\n\n- `APERTIS_API_KEY` (required): Your Apertis API key (starts with `sk-`)\n- `APERTIS_BASE_URL` (optional): API base URL, defaults to `https://api.apertis.ai`\n- `APERTIS_COWORKER_MODEL` (optional): Intern model for the `delegate` tool, defaults to `deepseek-v4-flash`\n\n## Security Notes\n\n- All API keys in tool output are masked (first 4 + last 4 characters)\n- When creating a new key, the full key is shown only once — save it immediately\n- The MCP server requires your API key in the environment — keep it secure\n- Use Claude Code environment variable expansion for credentials\n\n## Pricing Information\n\nAll pricing is displayed in USD per 1M tokens (standard unit). The server shows:\n\n- Input token price (cost per 1M input tokens)\n- Output token price (cost per 1M output tokens)\n- Optional cache read/write pricing (for supported models)\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build TypeScript\nnpm run build\n\n# Run in development\nnpm run dev\n\n# Run tests (builds first, then runs unit + integration tests)\nnpm test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}