85trust / 100

CompletionKit

by completionkit.com in AI models & inference

MCP serverPassing, checked 14 min ago

Prompt evals over MCP: run a prompt on your dataset, score each output 1-5 with an LLM judge.

https://completionkit.com/mcp

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
517 ms typical, 517 ms slowest 5%
Last check
14 min ago
Next check
in 5 h

How to call it

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "completionkit": {
      "type": "http",
      "url": "https://completionkit.com/mcp"
    }
  }
}

54 tools

  • prompts_list

    List all prompts

  • prompts_get

    Get a prompt by ID

  • prompts_create

    Create a prompt

  • prompts_update

    Update a prompt. If the prompt already has runs, this creates a new DRAFT version (current=false) rather than editing in place or publishing — promote it with prompts_publish — so an agent's edits don't go live without a gate. If it has no runs, it is updated in place.

  • prompts_delete

    Delete a prompt

  • prompts_publish

    Publish a prompt version, making it the current version

  • prompts_suggest_improvement

    Suggest an improved version of a prompt, grounded in a run's test results and judge feedback. Analyzes the run's responses, scores, and reviews, then returns reasoning plus a rewritten template (preserving {{variables}}) and persists it as a Suggestion. Requires a run that has a

  • runs_list

    List all runs

  • runs_get

    Get a run by ID, including "metric_averages": a per-metric breakdown with each metric's average score (or pass rate for checks), how many rows it graded, and how many scored low. Use this to find the metric dragging a prompt down without listing responses.

  • runs_create

    Create a run. Omit prompt_id and provide output_column to score existing outputs by grading a pre-existing dataset column instead of generating new ones.

  • runs_update

    Update a run

  • runs_delete

    Delete a run

  • runs_generate

    Start a run. Required for every run, including score-only runs (no prompt): generates responses with the prompt when there is one, otherwise copies the graded dataset column and grades it.

  • runs_regrade

    Re-grade a run's existing responses with its currently attached metrics, without regenerating. Use after attaching or editing metrics on an already-generated run.

  • runs_rerun

    Create and start a fresh copy of a run with the same prompt, dataset, metrics, and settings. Use when the judge changed and you want a clean run instead of mixing versions.

  • runs_retry_failures

    Re-run only the failed responses of a run, optionally limited to specific response ids via "only".

  • responses_list

    List responses for a run, in row order. Returns {total, limit, offset, returned, responses}. Defaults to 50 rows because full payloads are large: use "fields" to drop the bodies, "min_score"/"max_score" to isolate low scorers, and sort "score_asc" to read the worst rows first. Fo

  • responses_get

    Get a specific response

  • datasets_list

    List all datasets

  • datasets_get

    Get a dataset by ID

  • datasets_create

    Create a dataset with CSV data. First row is the header. Two column names are recognized specially: "expected_output" is each row's answer key (ground truth) given to the judge and to checks that compare against the row's expected value, and "actual_output" is a pre-made output t

  • datasets_update

    Update a dataset

  • datasets_delete

    Delete a dataset

  • datasets_create_from_url

    Create a dataset by downloading CSV from a URL instead of inlining it. Use this for large datasets: pass a public http(s) URL and the server fetches the CSV directly, so the data never has to pass through the tool-call arguments. The URL is SSRF-checked and the download is capped

  • metrics_list

    List all metrics

  • metrics_get

    Get a metric by ID

  • metrics_create

    Create a metric with evaluation criteria. For a deterministic check set metric_type:"check" and check_config. Per-kind required keys: value (contains/not_contains/equals), pattern (regex), json_path+expected (json_path_equals), min and/or max (length_bounds); valid_json takes no

  • metrics_update

    Update a metric. For a deterministic check set metric_type:"check" and check_config. Per-kind required keys: value (contains/not_contains/equals), pattern (regex), json_path+expected (json_path_equals), min and/or max (length_bounds); valid_json takes no extra keys. target_path i

  • metrics_delete

    Delete a metric

  • metrics_suggest_variants

    Ask the model to rewrite the metric's judge instruction in N variants targeted at the recent disagreements. Each variant is saved as a draft MetricVersion with source="suggestion". Returns the persisted drafts. Stripe-metering hooks fire via ActiveSupport::Notifications under com

  • metric_groups_list

    List all metric groups

  • metric_groups_get

    Get a metric group by ID

  • metric_groups_create

    Create a metric group

  • metric_groups_update

    Update a metric group

  • metric_groups_delete

    Delete a metric group

  • metric_versions_list

    List every MetricVersion (drafts + published) for a metric, newest first. Each row carries version_number, state, source, current flag, and timestamps.

  • metric_versions_publish

    Publish a MetricVersion as the live version of its metric. Works for both 'draft → published' and 'revert to an older published version → current'. Transactionally flips current, demotes peers, and writes the version's instruction + rubric_bands back onto the metric so the judge

  • metric_versions_dismiss

    Destroy a draft MetricVersion (use for either source: 'edit' or source: 'suggestion'). Published versions are refused — to demote a published version, publish a different one as current instead.

  • provider_credentials_list

    List all provider credentials (API keys are not exposed)

  • provider_credentials_get

    Get a provider credential by ID (API key is not exposed)

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTime
14 min agoPassed200640 ms
8 h agoPassed200370 ms
16 h agoPassed200517 ms