{"protocol":"mcp","version":"2024-11-05","server":{"name":"plith","version":"1.0.0"},"tools":[{"name":"dedupq_check","description":"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.","annotations":{"title":"Check for duplicate tasks","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"content":{"type":"string","description":"The task content to check for duplicates. This is hashed and embedded for matching."},"task_id":{"type":"string","description":"Optional caller task ID for tracing and cross-referencing with BurnRate."},"hash_only":{"type":"boolean","description":"If true, skip vector similarity search and use exact hash matching only. Default: false."},"similarity_threshold":{"type":"number","description":"Cosine similarity threshold for semantic matching, 0.0 to 1.0. Default: 0.80."}},"required":["content"],"additionalProperties":false}},{"name":"dedupq_complete","description":"After executing a task, store the result so future identical or similar tasks return a cache hit.","annotations":{"title":"Store completed task result","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"content":{"type":"string","description":"Original task content. Used to compute hash and embedding for future matching."},"result":{"description":"The task result to cache. Can be any JSON value."},"task_id":{"type":"string","description":"Optional task ID. Used as the database row ID if provided."},"hash_only":{"type":"boolean","description":"If true, skip embedding generation. Default: false."}},"required":["content","result"],"additionalProperties":false}},{"name":"burnrate_estimate","description":"Before executing a multi-step agent plan, estimate the total LLM cost. Returns per-step breakdown and optimization suggestions.","annotations":{"title":"Estimate LLM cost for a plan","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"plan":{"type":"array","description":"Array of plan steps with provider, model, and token estimates.","items":{"type":"object","properties":{"step":{"type":"string","description":"Step identifier — string label or number."},"provider":{"type":"string","description":"LLM provider: anthropic, openai, google, etc."},"model":{"type":"string","description":"Model name: claude-sonnet-4-6, gpt-4o, etc."},"estimated_input_tokens":{"type":"number","description":"Estimated prompt token count."},"estimated_output_tokens":{"type":"number","description":"Estimated completion token count."},"cache_read_tokens":{"type":"number","description":"Optional. Cached prompt tokens for providers with prompt caching."},"search_calls":{"type":"number","description":"Optional. Number of grounding/search calls (e.g. Gemini Search)."}},"required":["step","provider","model","estimated_input_tokens","estimated_output_tokens"]}}},"required":["plan"],"additionalProperties":false}},{"name":"burnrate_track","description":"After an LLM call, record actual token usage. Cost computed server-side. Free — no credits charged.","annotations":{"title":"Record actual LLM spend","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"provider":{"type":"string","description":"LLM provider: anthropic, openai, etc."},"model":{"type":"string","description":"Model name: claude-sonnet-4-6, gpt-4o, etc."},"input_tokens":{"type":"number","description":"Actual prompt tokens used. Must be >= 0."},"output_tokens":{"type":"number","description":"Actual completion tokens used. Must be >= 0."},"task_id":{"type":"string","description":"Optional task ID for cross-referencing with DedupQ."},"cache_read_tokens":{"type":"number","description":"Optional. Cache-read tokens."}},"required":["provider","model","input_tokens","output_tokens"],"additionalProperties":false}},{"name":"burnrate_optimize","description":"Get a cheaper equivalent plan via model substitution. Optionally check if it fits a target budget.","annotations":{"title":"Optimize plan for lower cost","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"plan":{"type":"array","description":"Array of plan steps. Same schema as burnrate.estimate.","items":{"type":"object","properties":{"step":{"type":"string","description":"Step identifier — string label or number."},"provider":{"type":"string","description":"LLM provider."},"model":{"type":"string","description":"Model name."},"estimated_input_tokens":{"type":"number","description":"Estimated input tokens."},"estimated_output_tokens":{"type":"number","description":"Estimated output tokens."}},"required":["step","provider","model","estimated_input_tokens","estimated_output_tokens"]}},"target_budget":{"type":"number","description":"Optional. Target total cost in USD."}},"required":["plan"],"additionalProperties":false}},{"name":"burnrate_budget","description":"Get today's tracked LLM spend, per-model breakdown, projection, and budget alerts. Free — no credits charged.","annotations":{"title":"Get daily spend and budget","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"daily_limit":{"type":"number","description":"Optional. Daily budget in USD. Enables alerts."}},"additionalProperties":false}},{"name":"qualitygate_validate","description":"Validate agent output against your rules. Deterministic checks (regex, JSON schema, syntax) plus optional LLM-powered tone and factual analysis.","annotations":{"title":"Validate agent output","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"output":{"type":"string","description":"The agent output text to validate."},"directives":{"type":"array","description":"Directive objects. Types: must_include, must_not_include, must_match, must_not_match, must_contain, must_not_contain, min_length, max_length.","items":{"type":"object","properties":{"type":{"type":"string","description":"Directive type."},"value":{"type":"string","description":"Directive value — string pattern, regex, keyword array (as comma-separated string), or number (as string). Interpreted based on directive type."},"name":{"type":"string","description":"Optional directive name."}},"required":["type","value"]}},"schema":{"type":"object","description":"JSON Schema to validate output against."},"language":{"type":"string","description":"Code language for syntax check: json, python, javascript, typescript."},"check_types":{"type":"array","items":{"type":"string","enum":["directive_compliance","schema_validation","code_syntax","tone","factual_claims"]},"description":"Checks to run. Auto-inferred if omitted."},"override":{"type":"boolean","description":"Force pass. Requires override_reason."},"override_reason":{"type":"string","description":"Required when override is true."}},"required":["output"],"additionalProperties":false}},{"name":"qualitygate_trends","description":"Get daily pass/warn/fail counts and insights for validation history. Free — no credits charged.","annotations":{"title":"Get validation trends","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"days":{"type":"number","description":"Lookback window, 1-90. Default: 30."},"check_type":{"type":"string","description":"Optional filter by check type."}},"additionalProperties":false}},{"name":"guardrail_check","description":"Evaluate a proposed agent action against governance policies. Returns allow or deny. Deterministic rule evaluation — no LLM.","annotations":{"title":"Check action against policies","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"agent_id":{"type":"string","description":"Agent identifier."},"proposed_action":{"type":"object","description":"Action to evaluate. Must contain a 'type' field.","properties":{"type":{"type":"string","description":"Action type: http_request, delete_file, send_email, etc."}},"required":["type"]}},"required":["agent_id","proposed_action"],"additionalProperties":false}},{"name":"guardrail_create_policy","description":"Create a governance policy. Names must be unique per org. Free — no credits charged.","annotations":{"title":"Create governance policy","readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false},"inputSchema":{"type":"object","properties":{"name":{"type":"string","description":"Unique policy name."},"description":{"type":"string","description":"Optional policy description."},"rules":{"type":"array","description":"Rule objects. Operators: eq, starts_with, contains, gt, lt, and, or, not.","items":{"type":"object","properties":{"operator":{"type":"string","description":"Rule operator."},"field":{"type":"string","description":"Field path on proposed_action."},"value":{"type":"string","description":"Comparison value for the rule operator. String, number, or boolean (as string)."},"rules":{"type":"array","description":"Nested rules for compound operators."}},"required":["operator"]}},"action_types":{"type":"array","items":{"type":"string"},"description":"Optional. Restrict to action types."},"priority":{"type":"number","description":"Optional. Evaluation order. Default: 0."}},"required":["name","rules"],"additionalProperties":false}},{"name":"guardrail_list_policies","description":"List active governance policies, ordered by priority. Free — no credits charged.","annotations":{"title":"List governance policies","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"pitfalldb_query","description":"Check for known failure patterns before executing a task type. Returns pitfalls with severity, fix suggestions, and confidence scores.","annotations":{"title":"Query known failure patterns","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"task_type":{"type":"string","description":"Task category: code_generation, web_search, data_analysis, etc."},"task_description":{"type":"string","description":"Optional. Natural-language task description for semantic search."},"filters":{"type":"object","description":"Optional filters.","properties":{"language":{"type":"string","description":"Programming language."},"framework":{"type":"string","description":"Framework."},"provider":{"type":"string","description":"LLM provider."}}}},"required":["task_type"],"additionalProperties":false}},{"name":"pitfalldb_report","description":"Report an agent failure. PII-scrubbed before storage. Linked to existing pitfalls if similar. Free — no credits charged.","annotations":{"title":"Report an agent failure","readOnlyHint":false,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true},"inputSchema":{"type":"object","properties":{"task_type":{"type":"string","description":"Task category."},"task_description":{"type":"string","description":"Description of the failed task."},"failure":{"type":"object","description":"Failure details.","properties":{"error_type":{"type":"string","description":"Error category: tool_call_ignored, syntax_error, etc."},"error_message":{"type":"string","description":"Error message (PII-scrubbed)."},"root_cause":{"type":"string","description":"Root cause analysis (PII-scrubbed)."},"fix_applied":{"type":"string","description":"Fix applied (PII-scrubbed)."},"fix_worked":{"type":"boolean","description":"Whether the fix worked."},"language":{"type":"string","description":"Programming language."},"framework":{"type":"string","description":"Framework."},"provider":{"type":"string","description":"LLM provider."}}}},"required":["task_type","task_description","failure"],"additionalProperties":false}},{"name":"pitfalldb_stats","description":"Get aggregate statistics: total pitfalls, total reports, top task types, recent activity. Free — no credits charged.","annotations":{"title":"Get failure database statistics","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false}}]}