Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.Davmunrey/trazum

NPM · @TRAZUM/MCP · SCANNED SEP 21

Trazum as an MCP server: let an agent price and budget its own prompts before it sends them.

Available components

+3 this week 91 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security100
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 0 of 1 dependencies flagged as unhealthy. View diagnostics → Pass
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to Davmunrey/Trazum). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 2 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability63
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2042 tokens (~291/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 97% of tool parameters carry a description.Partial
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.Davmunrey/trazum MCP server?

io.github.Davmunrey/trazum runs locally as an npm package, launched with npx -y @trazum/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @trazum/mcp

# add to Claude Code
claude mcp add davmunrey-trazum -- npx -y @trazum/mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "davmunrey-trazum": {
      "command": "npx",
      "args": [
        "-y",
        "@trazum/mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "davmunrey-trazum": {
      "command": "npx",
      "args": [
        "-y",
        "@trazum/mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add davmunrey-trazum -- npx -y @trazum/mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "davmunrey-trazum": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@trazum/mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add davmunrey-trazum --command npx --arg -y --arg @trazum/mcp
# ~/.hermes/config.yaml
mcp_servers:
  davmunrey-trazum:
    command: "npx"
    args: ["-y", "@trazum/mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "davmunrey-trazum": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@trazum/mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add davmunrey-trazum -t stdio -c npx -a -y @trazum/mcp
// mcp.json
{
  "mcpServers": {
    "davmunrey-trazum": {
      "command": "npx",
      "args": [
        "-y",
        "@trazum/mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 19 Sept 26 +51
    • Injection markers: unverified → pass security
    • Known CVEs: unverified → pass security
    • Tool coverage: unverified → 100 functional
    • MCP protocol: unverified → pass functional
    • Stability: unverified → 0.80 functional
    • Dependency health: unverified → 1.00 functional
  • 18 Sept 26 −50
    • Stability: 0.73 → unverified security
    • Known CVEs: pass → unverified security
    • Tool safety: pass → unverified security
    • Dependency health: 1.00 → unverified functional
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Package version: 2.4.0 → 2.4.1 functional
  • 15 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 13 Sept 26 +38
    • Injection markers: unverified → pass security
    • Tool coverage: unverified → 100 functional
    • Stability: unverified → 0.60 functional
    • MCP protocol: unverified → pass functional
  • 12 Sept 26 −37
    • Stability: 0.53 → unverified security
    • Tool safety: pass → unverified security
    • Capabilities: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Package version: 2.3.0 → 2.4.0 functional
  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 21 Sept 2026 · Analysed npm/@trazum/mcp@2.4.1

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo Davmunrey/Trazum
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/Davmunrey/Trazum/.github/workflows/release.yml@refs/heads/main
Rekor log index 2884733169
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:62ce4f8562dc73dfea50b728d9561cb5fbd7f9400276d81d09bd6cd6f6c15235291dd6da0d8b9512653e91df145bd0d9a2daf0abcb08bd8844a0d8e7b

Background: How many MCP packages publish verified provenance →

Dependencies 1 package
Packages resolved 1
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 7 exposed · ~1,976 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_prompt ~145

Answers whether a prompt fits a maximum, and if not, whether optimising it would. maxTokens comes from the budgets block of trazum.config.json, matched against the prompt's path; read it yourself, since this server never opens a file. Without a budget somebody set there is nothing to check and this is not the tool to call. Offline and free: no model is called.

NameTypeReqDescription
levelstringsafe leaves meaning untouched; aggressive also rewords, and wants reading
maxTokensintegeryesThe budget. Required: a check with no maximum is not a check.
promptstringyesThe prompt text itself. This server never reads files.

No output schema declared.

No examples provided.

list_models ~31

Input and output price per million tokens, context window and cacheable minimum, for every model in the bundled catalogue.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

optimize_prompt ~133

Applies Trazum's deterministic rules to a prompt and returns the shorter text, the token counts either side, what the difference is worth per month, and any advisories. Offline and free: no model is called.

NameTypeReqDescription
avgOutputTokensinteger
callsPerMonthintegerUsed only to scale the figures
levelstringsafe leaves meaning untouched; aggressive also rewords, and wants reading
modelstringModel id used for pricing. Call list_models for what is known.
promptstringyesThe prompt text itself. This server never reads files.

No output schema declared.

No examples provided.

position ~216

States the month's measured position against every ceiling you pass: monthly budget, per-day limit, per-label limits. Measured from the log text alone, priced record by record, with the denominator on every figure — days measured against days elapsed. The distance line is division on the past, labelled as such, and absent under the seven-day floor, on an over, and on a zero rate: this tool never forecasts. Ceilings the log cannot measure are named with the reason instead of skipped. Pass the log text itself: this server never reads files, and session keys are never shown.

NameTypeReqDescription
limitsobjectThe limits policy from trazum.config.json — {"dayUsd": n, "sessionUsd": n, "byLabel": {"name": n}}. Validated like the config file itself.
logstringyesThe usage log text, one JSON object per line. Never a file path.
monthlyUsdnumberThe calendar-month budget, in dollars — spend.monthlyUsd from the config.

No output schema declared.

No examples provided.

profile_usage ~555

Reads a usage log — one JSON object per line, each with a "model" and the "usage" object the API returned — and says where the money went: the spend split, per label and per model, whether caching paid for itself, and which levers would actually move the bill. These are the provider's own billed token counts, not estimates. Pass the log text itself: this server never reads files. Add "label", "session" and "ts" fields to the records to unlock the per-workload findings, conversation growth, the period the log covers, and whether the cache TTL fits how fast the turns arrive; the session key is grouped by and never shown.

NameTypeReqDescription
labelstringProfile only the calls carrying this label — the drill-down once the full report named a suspect. A label matching nothing is an error naming the labels that exist.
logstringyesThe usage log text, one JSON object per line. Never a file path.
previous_logstringA previous usage log to compare against, as text — never a file path. Positive means the bill grew. Drivers of the change are named per label and per model, appeared and vanished workloads included;…
pricing_overlaystringThe same JSON document a --pricing overlay file holds, passed as text — never a file path. Adds models the bundled catalogue does not know and overrides prices for ones it does; every figure in the r…
sincestringProfile only calls at or after this moment: a UTC day (2026-08-14) or a full ISO 8601 timestamp. Calls with no "ts" cannot be placed and are excluded, counted out loud — never dropped silently.
untilstringProfile only calls up to this moment; a bare date includes that whole UTC day. A window matching nothing is an error naming what the log does cover.
what_ifstringPrice these exact calls on another model id. The same token counts at a different rate card — multiplication, not advice: it says nothing about whether that model could do the work. Calls larger than…

No output schema declared.

No examples provided.

prompt_writer ~253

Asks what a good prompt needs and assembles one from your answers. Call it with the answers you have; it returns the next question worth asking, what is still missing, and the prompt once the required answers are in. Nothing is generated — the questions are fixed and the words in the prompt are yours, so the same answers always produce the same text. An answer of null is a decline, which is an answer: it is recorded and the follow-up it would have opened is not asked. The draft carries what it costs (estimated, and it says so), whether it fits a budget you state, and what trazum optimize can still recover from it — which should be nothing. It does not claim the prompt is good: that is a judgement about text nobody has run.

NameTypeReqDescription
answersobjectyesWhat you know so far, keyed by question id. Start with {} to be asked the first one. A value of null declines that question. Unknown ids are refused rather than ignored.
avgOutputTokensintegerOutput tokens you expect back per call, for the same estimate.
callsPerMonthintegerCalls per month, for the cost estimate. Nothing is priced without it.

No output schema declared.

No examples provided.

spend_guard ~643

Call this before making a model call, when a budget exists and you do not know whether this call fits inside it. Answers yes, no, or cannot-tell. Where the numbers come from: the ceilings are in trazum.config.json in the working directory (spend.maxUsd, spend.monthlyUsd, the limits block), and the spend so far is in the usage log the host already writes. Read both yourself and pass the figures: this server never opens a file. Without a ceiling somebody set the answer is cannot-tell, never a yes nobody measured. A refusal carries the cheaper ways to make the same call (a smaller model the prompt still fits in, a batch window), each priced for this call and each naming what it assumes. The budget consumed is measured from real billed usage you pass in; the cost of your call is an estimate of something that has not happened, and the answer keeps the two apart and says which the verdict rests on. Nothing is called and nothing is spent to produce this answer.

NameTypeReqDescription
batchEligiblebooleanWhether this work can wait for a batch window. Only you know that, so batch alternatives are offered only when you say so.
consumedUsdnumberMeasured spend so far, in dollars — from a bill, never a guess. Omit it and the answer is cannot-tell rather than a yes nobody measured.
inputTokensintegeryesInput tokens the call would send, including anything cached.
labelstringThe workload this call belongs to, for the per-label ceiling.
limitUsdnumberThe budget this is judged against. Omit it and the answer is cannot-tell: this tool reports a position against a policy a human set, and never invents one.
limitsobjectThe limits policy from trazum.config.json — {"dayUsd": n, "sessionUsd": n, "byLabel": {"name": n}}, positive dollars. Judged by the same function the gateway and trazum serve use, so the three doors…
modelstringyesModel id the call would go to. Call list_models for what is known.
outputTokensintegerOutput tokens you expect back. Left at zero, the answer prices input only and says so by carrying the figure you gave.
positionobjectMeasured spend per scope, from your own usage log — never a guess. A scope you omit is unmeasured and its ceiling answers cannot-tell, not "under".
sessionstringThe conversation this call belongs to, for the per-session ceiling. Used to judge and never echoed back.
waivearrayThe waive list from trazum.config.json — [{"gate": "limits.sessionUsd", "reason": "...", "until": "YYYY-MM-DD"}]. A waived ceiling still reports its measurement, but a crossed one answers yes with th…

No output schema declared.

No examples provided.

Common questions

What is the io.github.Davmunrey/trazum MCP server?

io.github.Davmunrey/trazum is an MCP server listed in the public MCP registry as io.github.Davmunrey/trazum. Trazum as an MCP server: let an agent price and budget its own prompts before it sends them. This page covers its npm package (@trazum/mcp).

Is the io.github.Davmunrey/trazum MCP server safe to use?

io.github.Davmunrey/trazum scores 91 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.Davmunrey/trazum MCP server expose?

io.github.Davmunrey/trazum exposes 7 tools: spend_guard, check_prompt, optimize_prompt, profile_usage, position, and 2 more. Their descriptions and schemas cost roughly 1,976 tokens of context every time the server is loaded.

Is the io.github.Davmunrey/trazum MCP server still maintained?

io.github.Davmunrey/trazum is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.Davmunrey/trazum MCP server under?

io.github.Davmunrey/trazum declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.