Deterministic tools your agent can actually call.
17 small HTTP endpoints for AI builders and delivery teams. Almost none of them run a language model, so the same input returns the same output every time and a call costs about as much as the arithmetic it performs.
One call
Every endpoint is a POST with a JSON body. No query parameters, no path parameters, nothing to construct.
curl -sS https://api.quasslabs.com/v1/humanizer-score \
-H "Authorization: Bearer qlk_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Let us delve into this transformative paradigm."}'
You get back a score, the band it falls in, and the exact patterns that fired with their positions - not an opaque number.
Or no calls at all
Every endpoint here is also an MCP tool. Point Claude, Claude Code, or any MCP host at one URL and the whole toolset appears natively - no client code, no tool definitions to maintain, and nothing to redeploy when we ship a new endpoint.
claude mcp add --transport http quasslabs https://api.quasslabs.com/mcp \ --header "Authorization: Bearer qlk_YOUR_API_KEY"
Auth, rate limiting and credit metering behave exactly as they do over REST, and the gateway is not itself metered - going through MCP never costs more than calling directly. Connection details.
The 17 endpoints
Prices are per successful call. A rate-limited request is never billed, and anything that fails with a server error is refunded automatically.
Writing and prompts
/v1/humanizer-score1 creditDetect AI-writing tells in text
MCP:humanizer_score
/v1/humanize1 creditRewrite text to remove AI-writing tells
MCP:humanize
/v1/alignment-gate2 creditsRun an AI system prompt (and optional agent config) through a 45-criterion alignment/safety rubric
MCP:alignment_gate
Engineering decisions
/v1/model-advisor1 creditLLM selection + cost advisor
MCP:model_advisor
/v1/dependency-check1 creditDependency-manifest hygiene check
MCP:dependency_check
/v1/log-analyzer2 creditsAnalyze a log file
MCP:log_analyzer
/v1/log-audit-creator2 creditsGenerate a concrete audit-logging spec for an app
MCP:log_audit_creator
Delivery and QA
/v1/ticket-lint1 creditFull Jira-ticket quality linter (whole ticket, not just AC - use acceptance_criteria_validator for the deep AC pass)
MCP:ticket_lint
/v1/acceptance-criteria-validator1 creditQA advisor: validate acceptance criteria quality
MCP:acceptance_criteria_validator
/v1/coverage-check1 creditScope-completeness advisor
MCP:coverage_check
/v1/defect-triage1 creditBug-triage advisor
MCP:defect_triage
/v1/sprint-health1 creditSprint/delivery health advisor
MCP:sprint_health
/v1/worklog-guardrail1 creditWorklog/timesheet policy checker - run a batch of worklog entries through configurable guardrails BEFORE posting them to a time-tracking system
MCP:worklog_guardrail
Everything else
/v1/diagram-contrast1 creditDiagram quality QA
MCP:diagram_contrast
/v1/saas-metrics1 creditSaaS health advisor
MCP:saas_metrics
/v1/blm-land-lookup1 creditLook up Bureau of Land Management land status for a US coordinate: BLM ownership, jurisdiction, allowed activities (rockhounding, camping), permit requirements, and special designations (ACEC, Wilderness, WSA, NM/NCA)
MCP:blm_land_lookup
/v1/uploadsunmeteredGet a presigned S3 PUT URL to upload a file (policy doc, config, log, up to 5MB) that a file-ingesting endpoint then reads by upload_id
MCP:uploads
How billing works
Predictable
- Rate limits are checked before credits, so a
429costs nothing. - The decrement is atomic and conditional - if your balance is short you get
402and the endpoint does not run. - Server errors are refunded automatically.
Known gap
- There is currently no way to read your credit balance - no endpoint returns it and no header carries it.
- Today you discover exhaustion via
402 insufficient_credits. Treat it as an alert, not a retry.