Imported from catwhisperingninja/cat-dexscreener (
AGENTS.md). Install upstream withnpx skills add catwhisperingninja/cat-dexscreener. Copyright stays with the author.
Repository Guidelines
Project Structure & Module Organization
Core TypeScript lives in src/: index.ts wires the MCP server, services/ wraps DexScreener HTTP flows, types/ defines shared interfaces, and tests/ contains integration specs that compile into build/tests/. Docs sit in docs/, setup helpers in scripts/, and container assets (Dockerfile, docker-compose.yml) stay at the repo root. build/ is generated by npm run build; treat it as disposable output.
Build, Test, and Development Commands
npm install— sync dependencies frompackage-lock.json.npm run setup— runscripts/setup-claude.jsto register the server locally.npm run dev— start@smithery/cli devfor hot-reloaded tool exercise.npm run build— compile TypeScript viatscintobuild/.npm start— executenode build/index.jswith your current env vars.npm test— rebuild, then runnode build/tests/dexscreener.test.js.
Coding Style & Naming Conventions
Match the two-space indentation, single quotes, and const-first declarations used in src/index.ts. Use camelCase for functions/variables, PascalCase for classes and types, and UPPER_SNAKE_CASE for global constants (BASE_URL, rate limits). Keep HTTP plumbing and retries inside service helpers, surface errors through successResponse/errorResponse, and write short comments only when logic (rate limiting, validation) is subtle. Prefer async/await, explicit return types, and TypeScript interfaces over inline object literals for shared shapes.
Testing Guidelines
Store new specs in src/tests/ with the *.test.ts suffix so they compile alongside dexscreener.test.ts. npm test already runs a full build, so failing tests usually indicate either type drift or API contract issues—fix both before rerunning. Favor deterministic tests by stubbing axios or injecting mock rate-limiters, and assert both the happy-path tool payload and the standardized error text.
Commit & Pull Request Guidelines
Git history shows concise, imperative subjects (“Implement comprehensive fix plan...”) with no trailing punctuation; keep summaries under ~72 characters and explain details in the body when needed. Pull requests should outline the change, enumerate verification commands (e.g., npm test), link relevant issues, and call out user-visible deltas such as new tools or environment variables so MCP clients can update their manifests promptly.
Security & Configuration Tips
SMITHERY_API_KEY must be supplied at runtime—load it through .env, Docker Compose env_file, or Kubernetes secrets rather than hard-coding defaults. Exclude .env files from commits, strip secrets from logs/tests, and prefer shell injection (SMITHERY_API_KEY=xxx npm run dev) when validating new endpoints. If documentation or samples mention credentials, redact or replace them with obvious placeholders.