ai. plith/ plith
by plith.ai · remote · no sign-in to list tools · v1.0.0 · published by ai.plith
AI agent infrastructure: dedup, cost prediction, validation, governance, failure intelligence.
15 tools: 12 change things and 3 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things12Claude Code: ask: see these tools
- Only reads3Claude Code: allow: see these tools
4 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http plith https://plith.ai/api/mcpFindings
Matches of fixed checks, with the text they matched.
- Warnburnrate_track
The server marks "burnrate_track" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "log": a word for reading.
The server marks "burnrate_optimize" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "get": a word for reading.
The server marks "qualitygate_validate" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "qualitygate_validate" says "validate": a word for reading.
- Warnpitfalldb_query
The server marks "pitfalldb_query" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "pitfalldb_query" says "query": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
15 tools
Changes things 12Claude Code: ask
burnrate_estimateBefore executing a multi-step agent plan, estimate the total LLM cost.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Before executing a multi-step agent plan, estimate the total LLM cost. Returns per-step breakdown and optimization suggestions. If the estimate exceeds your budget, pipe the same plan into burnrate_optimize. Costs 1 credit.
Annotations the server declares
- title: Estimate LLM cost for a plan
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
burnrate_optimizeGet a cheaper equivalent plan by substituting models with lower-cost alternatives.1 finding
Why it is in this group
- The description's first verb is "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "burnrate_optimize" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "get": a word for reading.
Description, as the server wrote it Get a cheaper equivalent plan by substituting models with lower-cost alternatives. Call after burnrate_estimate if the estimated cost exceeds your budget. Returns the optimized plan with substituted models, new per-step costs, total savings, and whether the target_budget is met. Optionally set target_budget to constrain the optimization. Costs 1 credit.
Annotations the server declares
- title: Optimize plan for lower cost
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
burnrate_trackLog the actual cost of an LLM call after execution.1 finding
Why it is in this group
- The description's first verb is "log": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "burnrate_track" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "log": a word for reading.
Description, as the server wrote it Log the actual cost of an LLM call after execution. Call this after every LLM request to build calibration data that improves burnrate_estimate accuracy over time. Free — no credits charged. Returns the recorded cost entry with computed margin versus the prior estimate when one exists for this model and token range.
Annotations the server declares
- title: Record actual LLM spend
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
dedupq_checkBefore executing any LLM task, check if an identical or semantically similar task has already been completed.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Before executing any LLM task, check if an identical or semantically similar task has already been completed. Returns cached result on hit, saving one LLM call. On a miss, execute your task and call dedupq_complete to cache the result for future hits. Costs 1 credit.
Annotations the server declares
- title: Check for duplicate tasks
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
dedupq_completeAfter executing a task, store the result so future identical or similar tasks return a cache hit via dedupq_check.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it After executing a task, store the result so future identical or similar tasks return a cache hit via dedupq_check. Costs 2 credits.
Annotations the server declares
- title: Store completed task result
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
guardrail_checkEvaluate a proposed agent action against your governance policies.No findings
Why it is in this group
- The description's first verb is "evaluate": a word for a change.
Description, as the server wrote it Evaluate a proposed agent action against your governance policies. Returns allow or deny with the matched policy reason. Requires at least one active policy created via guardrail_create_policy. Deterministic rule evaluation — no LLM. Costs 1 credit.
Annotations the server declares
- title: Check action against policies
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
guardrail_create_policyCreate a persistent governance policy that guardrail_check evaluates on every subsequent call.No findings
Why it is in this group
- The name "guardrail_create_policy" says "create": a word for a change.
Description, as the server wrote it Create a persistent governance policy that guardrail_check evaluates on every subsequent call. Define rules using and/or/not operators over action types, resource patterns, and budget thresholds. Call this before using guardrail_check — checks require at least one active policy. Policies persist until explicitly deleted. Duplicate policy names return an error. Returns the created policy with its ID and active status.
Annotations the server declares
- title: Create governance policy
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
pitfalldb_queryCheck for known failure patterns before executing a task type.1 finding
Why it is in this group
- The name "pitfalldb_query" says "query": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "pitfalldb_query" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "pitfalldb_query" says "query": a word for reading.
Description, as the server wrote it Check for known failure patterns before executing a task type. Returns pitfalls with severity, fix suggestions, and confidence scores. After your agent runs, submit failures via pitfalldb_report so others benefit. Costs 2 credits.
Annotations the server declares
- title: Query known failure patterns
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
pitfalldb_reportReport an agent failure.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Report an agent failure. PII-scrubbed before storage. Linked to existing pitfalls if similar. Free — no credits charged.
Annotations the server declares
- title: Report an agent failure
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
qualitygate_validateAfter your agent generates output, validate it against your rules before shipping.1 finding
Why it is in this group
- The name "qualitygate_validate" says "validate": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "qualitygate_validate" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "qualitygate_validate" says "validate": a word for reading.
Description, as the server wrote it After your agent generates output, validate it against your rules before shipping. Runs deterministic checks (regex, JSON schema, syntax) plus optional LLM-powered tone and factual analysis. Returns a structured verdict (pass, warn, or fail) with a 0-100 score and per-check issue details. Use qualitygate_trends to spot recurring failure patterns over time. Variable cost: 1 credit per deterministic check, 8 credits per LLM check.
Annotations the server declares
- title: Validate agent output
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
rigor_executeExecute a structured workflow end-to-end.No findings
Why it is in this group
- The name "rigor_execute" says "execute": a word for a change.
Description, as the server wrote it Execute a structured workflow end-to-end. Call rigor_plan first (free) to preview the step sequence and cost estimate before committing credits. Classifies the task, selects the optimal tool sequence, and executes each step with the right LLM model. Returns a complete deliverable — solution designs, competitive analyses, governance documents, and more. Supports SSE streaming for real-time progress, webhook callback, or polling. For atomic work — classification, scoring, ranking, entity extraction, query parsing — set preferences.execution to 'direct' and declare preferences.output_contract to get validated JSON records from a single call, routed to the cheapest model that holds the schema.
Annotations the server declares
- title: Execute a Rigor workflow
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
rigor_planBefore executing a complex task, get a structured workflow plan with per-step cost estimates.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Before executing a complex task, get a structured workflow plan with per-step cost estimates. Classifies your task, selects the optimal framework sequence, and returns the full plan without executing anything. The response's allowed_modes tells you whether this plan is eligible for direct execution. Free — no credits charged.
Annotations the server declares
- title: Plan a Rigor workflow
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
Only reads 3Claude Code: allow
burnrate_budgetGet today's tracked LLM spend, per-model breakdown, projection, and budget alerts.No findings
Why it is in this group
- The description's first verb is "get": a word for reading.
Description, as the server wrote it Get today's tracked LLM spend, per-model breakdown, projection, and budget alerts. Free — no credits charged.
Annotations the server declares
- title: Get daily spend and budget
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
rigor_statusCheck the status of a running or completed Rigor workflow.No findings
Why it is in this group
- The name "rigor_status" says "status": a word for reading.
Description, as the server wrote it Check the status of a running or completed Rigor workflow. Returns progress, step results, and the full deliverable when complete. Use after rigor_execute with polling delivery to retrieve results.
Annotations the server declares
- title: Check workflow status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
rigor_workflowsList and search Rigor workflows for your organization, with filtering and pagination.No findings
Why it is in this group
- The description's first verb is "list": a word for reading.
Description, as the server wrote it List and search Rigor workflows for your organization, with filtering and pagination. Returns status, progress, capacity usage, and available actions per workflow. Use to monitor workflow state, understand concurrent limit usage, identify stuck or completed workflows, and — via q — find prior work on a subject before commissioning it again. Pair a q hit with rigor_status to read that workflow's deliverable.
Annotations the server declares
- title: List Rigor workflows
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http plith https://plith.ai/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__plith__burnrate_budget",
"mcp__plith__rigor_status",
"mcp__plith__rigor_workflows"
],
"ask": [
"mcp__plith__dedupq_check",
"mcp__plith__dedupq_complete",
"mcp__plith__burnrate_estimate",
"mcp__plith__burnrate_track",
"mcp__plith__burnrate_optimize",
"mcp__plith__qualitygate_validate",
"mcp__plith__guardrail_check",
"mcp__plith__guardrail_create_policy",
"mcp__plith__pitfalldb_query",
"mcp__plith__pitfalldb_report",
"mcp__plith__rigor_plan",
"mcp__plith__rigor_execute"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as plith. Review it before you use it.