RodexDB — your own database platform: per-app keys & tables on DynamoDB, one clean API + MCP for every coding agent. Serverless, TypeScript, $0 forever (AWS always-free + Cloudflare free tier).
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio counts 26 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
batch_get_item
-
batch_put_item
-
create_app
-
create_table
-
delete_app
-
delete_item
-
delete_table
-
force_delete_app
-
get_app
-
get_app_usage
-
get_instructions
-
get_item
-
get_platform_capacity
-
health
-
increment_item
-
list_apps
-
list_tables
-
put_item
-
query
-
recover_app
-
resume_app
-
rotate_app_key
-
set_platform_capacity
-
suspend_app
-
update_item
-
view_app_key
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 74
filesystem 4
- fs rakxdev-RodeX-3d24993/packages/rodexdb/build.mjs :7
import { mkdirSync, rmSync } from "node:fs"; - fs (weak) rakxdev-RodeX-3d24993/scripts/check-stale-strings.mjs :6
import { readdirSync, readFileSync, statSync } from "node:fs"; - fs (weak) rakxdev-RodeX-3d24993/scripts/generate-contract.mjs :13
import { readFileSync, writeFileSync, mkdirSync } from "node:fs"; - fs (weak) rakxdev-RodeX-3d24993/scripts/validate-contract.mjs :10
import { readFileSync } from "node:fs";
shell / exec 2
- shell (weak) rakxdev-RodeX-3d24993/packages/rodex-mcp/test/cli.test.ts :8
import { spawn, type ChildProcess } from "node:child_process"; - shell rakxdev-RodeX-3d24993/packages/rodexdb/build.mjs :6
import { execSync } from "node:child_process";
network 15
- net rakxdev-RodeX-3d24993/dashboard/src/api/client.ts :145
res = await fetch(BASE + path, { - net rakxdev-RodeX-3d24993/dashboard/src/pages/LandingPage.tsx :19
fetch(`${gatewayBase}/v1/health`) - net rakxdev-RodeX-3d24993/gateway/src/oauth.ts :88
const tokenRes = await fetch(GH_TOKEN, { - net rakxdev-RodeX-3d24993/gateway/src/rate-do.ts :16
async fetch(request: Request): Promise<Response> { - net rakxdev-RodeX-3d24993/gateway/src/rate.ts :105
const res = await stub.fetch("https://rl/", { - net rakxdev-RodeX-3d24993/gateway/src/storage-aws.ts :68
res = await this.aws.fetch(ENDPOINT, { - net (weak) rakxdev-RodeX-3d24993/gateway/test/admin.test.ts :30
const res = await handler.fetch( - net (weak) rakxdev-RodeX-3d24993/gateway/test/api.test.ts :2
* api.test.ts — full-stack integration via app.fetch() against MockStorage - net (weak) rakxdev-RodeX-3d24993/gateway/test/mcp.test.ts :32
const res = await handler.fetch( - net (weak) rakxdev-RodeX-3d24993/gateway/test/mcpkeys.test.ts :29
const res = await handler.fetch( - net (weak) rakxdev-RodeX-3d24993/gateway/test/rate.test.ts :100
const res = await do_.fetch(new Request("https://rl/", { - net rakxdev-RodeX-3d24993/packages/rodex-mcp/src/cli.ts :79
const res = await fetch(url, { - net (weak) rakxdev-RodeX-3d24993/packages/rodex-mcp/test/cli.test.ts :6
import { createServer, type Server } from "node:http"; - net rakxdev-RodeX-3d24993/packages/rodexdb/src/index.ts :179
const res = await fetch(`${this.url}${path}`, { - net (weak) rakxdev-RodeX-3d24993/packages/rodexdb/test/sdk.test.ts :8
import { createServer, type Server } from "node:http";
secrets 2
- secrets (weak) rakxdev-RodeX-3d24993/examples/sdk-bot.mjs :17
const apiKey = process.env.RODEX_API_KEY; - secrets rakxdev-RodeX-3d24993/packages/rodex-mcp/src/cli.ts :118
let key = process.env.RODEX_MCP_KEY ?? "";
tool registrations 26
- health rakxdev-RodeX-3d24993/gateway/src/mcp.ts :172
- get_instructions rakxdev-RodeX-3d24993/gateway/src/mcp.ts :189
- list_apps rakxdev-RodeX-3d24993/gateway/src/mcp.ts :198
- get_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :211
- get_app_usage rakxdev-RodeX-3d24993/gateway/src/mcp.ts :224
- list_tables rakxdev-RodeX-3d24993/gateway/src/mcp.ts :238
- get_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :252
- batch_get_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :269
- query rakxdev-RodeX-3d24993/gateway/src/mcp.ts :291
- get_platform_capacity rakxdev-RodeX-3d24993/gateway/src/mcp.ts :318
- set_platform_capacity rakxdev-RodeX-3d24993/gateway/src/mcp.ts :332
- create_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :348
- delete_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :369
- suspend_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :385
- resume_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :401
- recover_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :417
- force_delete_app rakxdev-RodeX-3d24993/gateway/src/mcp.ts :433
- rotate_app_key rakxdev-RodeX-3d24993/gateway/src/mcp.ts :450
- view_app_key rakxdev-RodeX-3d24993/gateway/src/mcp.ts :467
- create_table rakxdev-RodeX-3d24993/gateway/src/mcp.ts :498
- delete_table rakxdev-RodeX-3d24993/gateway/src/mcp.ts :515
- put_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :532
- batch_put_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :562
- increment_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :592
- update_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :619
- delete_item rakxdev-RodeX-3d24993/gateway/src/mcp.ts :648
declared dependencies 6
- @cloudflare/workers-types@^5.20260807.2
- @eslint/js@^10.0.1
- @types/node@^26.2.0
- eslint@^10.8.1
- typescript-eslint@^8.66.0
- vite@^8.2.1