MCP Server for Z.AI - A Model Context Protocol server that provides AI capabilities
Model Finder is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Audits the models your repo uses, drafts evals from your prompts, ranks results, generates cheapest-first routing and sizes local models. Runs on your machine; nothing is sent to Indigloo.
Audits the models your repo uses, drafts evals from your prompts, ranks results, generates cheapest-first routing and sizes local models. Runs on your machine; nothing is sent to Indigloo.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user model-finder-mcp '--' uvx model-finder-mcp
# 2 — ask your agent for something these tools do
# modelfinder_audit_models, modelfinder_draft_eval_examples, modelfinder_create_eval_config and 7 more
Model Finder costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. This one runs on your machine: your client starts Model Finder as a process under your own user, with your files and your network, so the tool surface below is what it can do to your computer rather than to a server somewhere else. Its scan result is on the Security tab — read the surface before you approve it.
This is a public server: you run it yourself and this marketplace is not in the path. You need uv (docs.astral.sh/uv): uvx comes with it. Claude Code registers it in one command; --scope user makes it available in every project. The '--' is in quotes so that PowerShell passes it on.
claude mcp add --scope user model-finder-mcp '--' uvx model-finder-mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
Nothing is required, but it can take MODEL_FINDER_ROOT if you want to set it.
One config entry your client uses to start the process locally. A local server runs with your file system and your network, which is why it is priced without metering.
10 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List the AI model IDs (quoted literals) and AI SDKs a repository uses, with file:line locations, provider family, route hints (Bedrock, Vertex AI, Azure, OpenRouter), usage counts and whether each ID is hard-coded or an environment-variable default. Use first, to see which models a project depends on before comparing or replacing them; use modelfinder_draft_eval_examples to find test inputs instea
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | no | Directory inside the workspace, relative to the project root (e.g. "services/api"). Defaults to the project root. If a call fails because the project is unknown, pass the absolute path of the project |
| limit | integer | no | Items per page (1-200, default 50). |
| offset | integer | no | Items to skip; use next_offset from the previous page. |
| provider_family | string | no | Only models from this family, e.g. "anthropic". |
| hard_coded_only | boolean | no | Only IDs not read from configuration or environment. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Draft eval examples from the repository's prompt files and fixtures (prompts/, evals/, fixtures/, *.prompt.md, and JSON/JSONL with input, prompt or chat messages). Use after modelfinder_audit_models when the user has no examples yet. Drafts have empty checks: agree checks with the user, then pass them to modelfinder_create_eval_config. Read-only and local: no network calls, no files written. Drops
| Parameter | Type | Required | Notes |
|---|---|---|---|
| path | string | no | Directory inside the workspace, relative to the project root (e.g. "services/api"). Defaults to the project root. If a call fails because the project is unknown, pass the absolute path of the project |
| limit | integer | no | Items per page (1-200, default 30). |
| offset | integer | no | Items to skip; use next_offset from the previous page. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Build an eval config from candidate models, examples with checks, and settings, then validate it and screen the examples for personal data and secrets. Use once examples and checks are agreed; to check a config the user already has, use modelfinder_validate_eval_config instead. Read-only and local: no network calls, no files written. Returns the config for the user to save as JSON and run with eva
| Parameter | Type | Required | Notes |
|---|---|---|---|
| task | string | no | One-line description of what the model must do. |
| candidates | array | yes | 1-10 models to compare. |
| examples | array | yes | Inputs with the checks each reply must pass. |
| settings | object | no | max_output_tokens (default 1024), timeout_s (default 60), temperature, system (system prompt). |
| pass_threshold | number | no | Share of calls that must pass every check (0-1). |
| repeats | integer | no | Runs per example (3+ for noisy tasks). |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Check an existing eval config before a paid run: schema, no keys in the config, HTTPS endpoints, no template placeholders, valid checks. Use on a config the user wrote or edited; to build a new one use modelfinder_create_eval_config. Read-only and local: no network calls, no files written. Returns valid, problems, the number of API calls the run would make, required environment variable names, unp
| Parameter | Type | Required | Notes |
|---|---|---|---|
| config | object | yes | The eval config object (as saved for eval_models.py). |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Run deterministic checks (contains, not_contains, exact, regex, json_keys, max_chars) on one model reply and report which failed. Use it to design and debug eval checks or routing guards against a sample reply before spending money on a run; to score a whole eval run use modelfinder_rank_eval_results. Read-only and local: no network calls, no files written. Returns passed, failures (check and reas
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | The model reply to test. |
| checks | array | yes | Deterministic checks; all must pass. Types: contains, not_contains, exact (value, ignore_case?), regex (pattern), json_keys (keys), max_chars (value). Example: [{"type": "json_keys", "keys": ["categor |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Rank the models in a finished eval run (the results.json object written by eval_models.py) and recommend the cheapest one that met the pass threshold, ranked by cost per passing call. Use after an eval run; to test a single reply use modelfinder_check_output, and to turn the ranking into a fallback chain use modelfinder_generate_routing. Read-only and local: no network calls, no files written. Ret
| Parameter | Type | Required | Notes |
|---|---|---|---|
| results | object | yes | The full results.json object written by eval_models.py. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Turn a finished eval run (results.json object) into a cheapest-first routing.json, with quality guards and a personal-data policy, plus a LiteLLM proxy config whose fallbacks fire on API errors only (it does not enforce the quality guards or personal-data policy). Use after modelfinder_rank_eval_results when the user wants a fallback chain. Read-only and local: no network calls, no files written.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| results | object | yes | The full results.json object written by eval_models.py. |
| guards | array | no | Checks applied to every production reply; a failure escalates to the next model. |
| chain | array | no | Explicit model order (candidate ids), overriding cost order. |
| include_unknown_cost | boolean | no | Append passing models whose price is unknown. |
| pii_policy | string | no | block: never send prompts with personal data or secrets; warn: send and report; off: no check. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Estimate monthly token cost from requests per month, average tokens per request and USD-per-million prices, with optional cached-input share and pass rate (cost per accepted result, counting retries). Use for planning or to compare models before running an eval. Read-only and local: no network calls, no files written. Prices are not looked up: pass them from the provider's official pricing page. R
| Parameter | Type | Required | Notes |
|---|---|---|---|
| requests_per_month | number | yes | e.g. 100000 |
| input_tokens | number | yes | Average input tokens per request. |
| output_tokens | number | yes | Average output tokens per request (include reasoning tokens). |
| input_price_per_million | number | yes | USD per 1M input tokens. |
| output_price_per_million | number | yes | USD per 1M output tokens. |
| cached_fraction | number | no | Share of input tokens billed at the cached rate (0-1). |
| cached_input_price_per_million | number | no | Required when cached_fraction > 0. |
| pass_rate | number | no | Optional eval pass rate; failures are assumed retried. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Estimate the memory needed to run an open-weight model locally: weights at a given precision plus KV cache for a context length and concurrency (standard MHA/GQA attention only), with headroom against available memory. Use when choosing a local model or GPU. Give all four of layers, kv_heads, head_dim and context to include the KV cache; without them only weights are counted. Read-only and local:
| Parameter | Type | Required | Notes |
|---|---|---|---|
| params_b | number | yes | Total stored parameters in billions (for MoE, all experts). |
| bits | number | yes | Effective bits per weight: 16, 8, about 4.5 for common 4-bit formats. |
| overhead_pct | number | no | Allowance on top, in percent. |
| layers | integer | no | num_hidden_layers from the model config. |
| kv_heads | integer | no | num_key_value_heads (or num_attention_heads if absent). |
| head_dim | integer | no | head_dim, or hidden_size / num_attention_heads. |
| context | integer | no | Context tokens per sequence actually used. |
| concurrency | integer | no | Sequences served at once. |
| kv_bits | number | no | KV cache precision in bits. |
| available_gib | number | no | GPU or unified memory available, in GiB. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
Detect Aadhaar (Verhoeff checked), PAN, payment cards (Luhn checked), email addresses, UPI IDs, Indian mobile numbers and API or private keys in text. Use before sending prompts or eval examples to a provider; modelfinder_create_eval_config already runs this on its examples. Read-only and local: no network calls, no files written. Returns categories, counts and a clean flag, never the matched valu
| Parameter | Type | Required | Notes |
|---|---|---|---|
| text | string | yes | Text to scan, up to 1,000,000 characters. |
| response_format | string | no | markdown (default) for a readable summary, json for the full machine-readable result. |
- Every tool, no call limit
- No card, and mcprush charges nothing for it
- Source published under MIT
- Runs on your machine — nothing of it reaches our gateway
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Model Finder or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
| Term | Level | What it prices | Points |
|---|---|---|---|
| capability-exposure | minimal | capability blast radius (minimal) — client exposure if the model is manipulated | −0 |
| verification-discount | source | publisher verification (provenance) — cryptographic build provenance ties the artifact to its source | −0 |
| coverage-honesty | source | inspection depth (source) — how much of the target the scan could see | −0 |
What the scan could actually read
A grade is only as meaningful as its coverage, so the scanner publishes its own depth before it publishes its result.
No tools were enumerated, so prompt-injection, capability and toxic-flow analysis had no tool surface to inspect. To grade a package’s real runtime tools, scan the running server: --command "npx -y <package>".
Capability — what it could do if the model were manipulated
Tags derived from each tool’s schema and the implementation, not from what the tool calls itself. minimal is the level these add up to.
| Tool | Capability tags | Why the tag was assigned |
|---|---|---|
| No per-tool rows for this release — see the note below. | ||
Toxic-flow graph
The lethal trifecta, checked as a graph rather than as a checklist: untrusted input, a sensitive source and an external sink have to meet before there is a path worth worrying about.
The public result for this release does not print the flow graph, so there is nothing to show here. That is not the same as "no paths were found": what the scan did read is above, under coverage.
Supply chain and provenance
This is the first scan of this surface here, so there is nothing yet to compare it against.
Every result on this tab comes from one deterministic pass over the published package — offline, rule by rule, and auditable line by line above. Same methodology version, same bytes, same score.
Release history
Always latest — the install command names no version, so it installs the newest release when it runs; the current release on file is 1.3.6. Pin a release below and the command asks for exactly that one.
- Clearer tool guidance: each tool now says when to use it, and limits on PII detection and LiteLLM fallbacks are stated plainly.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Model Finder can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
As a developer, I find Model Finder MCP useful for auditing AI models in codebases, comparing model costs, and automating model selection based on evaluation results. It helps reduce API costs and simplifies AI model routing. A great tool for building cost-efficient AI applications!
Thanks